diff --git a/Import/DarkSkin.cpp b/Import/DarkSkin.cpp index 832aaffb5..8dcab7608 100644 --- a/Import/DarkSkin.cpp +++ b/Import/DarkSkin.cpp @@ -61,12 +61,48 @@ Closures //------------------------------------------------------------------- - __vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::__vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4)->SetVisible(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_::__vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -75,12 +111,12 @@ Closures //------------------------------------------------------------------- - __vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitArrowTemplate()); @@ -89,12 +125,12 @@ Closures //------------------------------------------------------------------- - __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -107,12 +143,12 @@ Closures //------------------------------------------------------------------- - __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -125,12 +161,12 @@ Closures //------------------------------------------------------------------- - __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -143,12 +179,12 @@ Closures //------------------------------------------------------------------- - __vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7)->GetVisible(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -161,12 +197,12 @@ Closures //------------------------------------------------------------------- - __vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -179,12 +215,12 @@ Closures //------------------------------------------------------------------- - __vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -197,62 +233,62 @@ Closures //------------------------------------------------------------------- - __vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitterTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitterTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -265,12 +301,12 @@ Closures //------------------------------------------------------------------- - __vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -283,12 +319,12 @@ Closures //------------------------------------------------------------------- - __vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetVisible(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -301,12 +337,12 @@ Closures //------------------------------------------------------------------- - __vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::__vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetSelected(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -319,12 +355,12 @@ Closures //------------------------------------------------------------------- - __vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiListViewColumnHeaderTemplate* __vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiListViewColumnHeaderTemplate* __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiListViewColumnHeaderTemplate*>(new ::darkskin::ListViewColumnHeaderTemplate()); @@ -333,12 +369,12 @@ Closures //------------------------------------------------------------------- - __vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); @@ -347,12 +383,12 @@ Closures //------------------------------------------------------------------- - __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); @@ -361,12 +397,12 @@ Closures //------------------------------------------------------------------- - __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); @@ -375,58 +411,58 @@ Closures //------------------------------------------------------------------- - __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiRibbonGroupTemplate* __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiRibbonGroupTemplate*>(new ::darkskin::RibbonGroupTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::__vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::RadioButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiRibbonGroupTemplate* __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiRibbonGroupTemplate*>(new ::darkskin::RibbonGroupTemplate()); + return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::RadioButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::CheckBoxTemplate()); @@ -435,12 +471,12 @@ Closures //------------------------------------------------------------------- - __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); @@ -449,12 +485,12 @@ Closures //------------------------------------------------------------------- - __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); @@ -463,12 +499,12 @@ Closures //------------------------------------------------------------------- - __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); @@ -477,12 +513,12 @@ Closures //------------------------------------------------------------------- - __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::__vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -495,12 +531,12 @@ Closures //------------------------------------------------------------------- - __vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ExpandingDecoratorTemplate()); @@ -509,12 +545,12 @@ Closures //------------------------------------------------------------------- - __vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); @@ -523,12 +559,12 @@ Closures //------------------------------------------------------------------- - __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); @@ -537,58 +573,58 @@ Closures //------------------------------------------------------------------- - __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeSplitButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::__vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeSplitButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::__vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::__vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -601,12 +637,12 @@ Closures //------------------------------------------------------------------- - __vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::__vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::__vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetVisible(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -619,12 +655,12 @@ Closures //------------------------------------------------------------------- - __vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTextListTemplate* __vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiTextListTemplate* __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::TextListTemplate()); @@ -633,12 +669,12 @@ Closures //------------------------------------------------------------------- - __vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::DateButtonTemplate()); @@ -647,12 +683,12 @@ Closures //------------------------------------------------------------------- - __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiComboBoxTemplate* __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiComboBoxTemplate* __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiComboBoxTemplate*>(new ::darkskin::ComboBoxTemplate()); @@ -661,12 +697,12 @@ Closures //------------------------------------------------------------------- - __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->look)->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -679,12 +715,12 @@ Closures //------------------------------------------------------------------- - __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->look)->GetDate(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::DateTime>(__vwsn_value_); @@ -697,12 +733,12 @@ Closures //------------------------------------------------------------------- - __vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->look)->GetDateLocale(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Locale>(__vwsn_value_); @@ -715,62 +751,62 @@ Closures //------------------------------------------------------------------- - __vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->look)->GetCommands(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::controls::IDatePickerCommandExecutor*>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeDropdownButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->look)->SetCommands(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetDate(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::DateTime>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->look)->GetCommands(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::controls::IDatePickerCommandExecutor*>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->self)->SetDate(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->look)->SetCommands(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::__vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetDate(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::DateTime>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeDropdownButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->self)->SetDate(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->container)->GetAlignmentToParent(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Margin>(__vwsn_value_); @@ -783,12 +819,12 @@ Closures //------------------------------------------------------------------- - __vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetAlignmentToParent(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Margin>(__vwsn_value_); @@ -801,12 +837,12 @@ Closures //------------------------------------------------------------------- - __vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -819,12 +855,12 @@ Closures //------------------------------------------------------------------- - __vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::__vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -837,12 +873,12 @@ Closures //------------------------------------------------------------------- - __vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -855,12 +891,12 @@ Closures //------------------------------------------------------------------- - __vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -873,12 +909,12 @@ Closures //------------------------------------------------------------------- - __vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::__vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -891,12 +927,12 @@ Closures //------------------------------------------------------------------- - __vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -909,62 +945,62 @@ Closures //------------------------------------------------------------------- - __vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::__vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonLargeButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -977,12 +1013,12 @@ Closures //------------------------------------------------------------------- - __vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -995,12 +1031,12 @@ Closures //------------------------------------------------------------------- - __vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1013,12 +1049,12 @@ Closures //------------------------------------------------------------------- - __vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -1031,12 +1067,12 @@ Closures //------------------------------------------------------------------- - __vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1049,12 +1085,12 @@ Closures //------------------------------------------------------------------- - __vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::__vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1067,12 +1103,12 @@ Closures //------------------------------------------------------------------- - __vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1085,12 +1121,12 @@ Closures //------------------------------------------------------------------- - __vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1103,58 +1139,58 @@ Closures //------------------------------------------------------------------- - __vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetBorderColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallSplitButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_::__vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnctorthis_0) + __vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::__vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_::__vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallSplitButtonTemplate()); + return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); } } //------------------------------------------------------------------- - __vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollViewTemplate* __vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollViewTemplate* __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollViewTemplate*>(new ::darkskin::ScrollViewTemplate()); @@ -1163,12 +1199,12 @@ Closures //------------------------------------------------------------------- - __vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::ItemBackgroundTemplate()); @@ -1177,12 +1213,12 @@ Closures //------------------------------------------------------------------- - __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::RibbonToolstripHeaderTemplate()); @@ -1191,12 +1227,12 @@ Closures //------------------------------------------------------------------- - __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTextListTemplate* __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiTextListTemplate* __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::RibbonGalleryItemListTemplate()); @@ -1205,12 +1241,12 @@ Closures //------------------------------------------------------------------- - __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiRibbonToolstripMenuTemplate*>(new ::darkskin::RibbonToolstripMenuTemplate()); @@ -1219,12 +1255,12 @@ Closures //------------------------------------------------------------------- - __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::TopScrollButtonTemplate()); @@ -1233,12 +1269,12 @@ Closures //------------------------------------------------------------------- - __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::BottomScrollButtonTemplate()); @@ -1247,12 +1283,12 @@ Closures //------------------------------------------------------------------- - __vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::RibbonGalleryDropdownButtonTemplate()); @@ -1261,74 +1297,74 @@ Closures //------------------------------------------------------------------- - __vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallDropdownButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5)->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5)->SetEnabled(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5)->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallDropdownButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5)->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->NotifyScrollUp(); } //------------------------------------------------------------------- - __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8)->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -1341,36 +1377,36 @@ Closures //------------------------------------------------------------------- - __vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->NotifyScrollDown(); } //------------------------------------------------------------------- - __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::__vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->NotifyDropdown(); } //------------------------------------------------------------------- - __vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::__vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::__vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1383,12 +1419,12 @@ Closures //------------------------------------------------------------------- - __vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::__vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::__vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1401,12 +1437,12 @@ Closures //------------------------------------------------------------------- - __vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::RibbonGroupMenuTemplate()); @@ -1415,12 +1451,12 @@ Closures //------------------------------------------------------------------- - __vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::RibbonGroupExpandButtonTemplate()); @@ -1429,62 +1465,62 @@ Closures //------------------------------------------------------------------- - __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::RibbonSmallButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->GetVisible(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -1497,24 +1533,24 @@ Closures //------------------------------------------------------------------- - __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->NotifyExpandButtonClicked(); } //------------------------------------------------------------------- - __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::__vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { if (::vl::__vwsn::This(__vwsnthis_0->self)->GetCollapsed()) { @@ -1528,12 +1564,12 @@ Closures //------------------------------------------------------------------- - __vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -1546,12 +1582,12 @@ Closures //------------------------------------------------------------------- - __vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -1564,12 +1600,12 @@ Closures //------------------------------------------------------------------- - __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::__vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -1582,12 +1618,12 @@ Closures //------------------------------------------------------------------- - __vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -1596,12 +1632,12 @@ Closures //------------------------------------------------------------------- - __vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1614,62 +1650,62 @@ Closures //------------------------------------------------------------------- - __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiRibbonTabTemplate* __vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiRibbonTabTemplate*>(new ::darkskin::TabTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiRibbonTabTemplate* __vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return static_cast<::vl::presentation::templates::GuiRibbonTabTemplate*>(new ::darkskin::TabTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -1682,12 +1718,12 @@ Closures //------------------------------------------------------------------- - __vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -1700,12 +1736,12 @@ Closures //------------------------------------------------------------------- - __vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -1718,12 +1754,12 @@ Closures //------------------------------------------------------------------- - __vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1736,12 +1772,12 @@ Closures //------------------------------------------------------------------- - __vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::__vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -1754,12 +1790,12 @@ Closures //------------------------------------------------------------------- - __vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -1768,12 +1804,12 @@ Closures //------------------------------------------------------------------- - __vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1786,12 +1822,12 @@ Closures //------------------------------------------------------------------- - __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1804,76 +1840,76 @@ Closures //------------------------------------------------------------------- - __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::ProgressBarTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* __vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiRibbonToolstripMenuTemplate*>(new ::darkskin::RibbonToolstripMenuTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::ProgressBarTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* __vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiRibbonToolstripMenuTemplate*>(new ::darkskin::RibbonToolstripMenuTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -1886,12 +1922,12 @@ Closures //------------------------------------------------------------------- - __vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -1904,12 +1940,12 @@ Closures //------------------------------------------------------------------- - __vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1922,12 +1958,12 @@ Closures //------------------------------------------------------------------- - __vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -1940,12 +1976,12 @@ Closures //------------------------------------------------------------------- - __vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1958,12 +1994,12 @@ Closures //------------------------------------------------------------------- - __vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::__vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -1976,12 +2012,12 @@ Closures //------------------------------------------------------------------- - __vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -1990,12 +2026,12 @@ Closures //------------------------------------------------------------------- - __vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::RibbonSplitArrowTemplate()); @@ -2004,62 +2040,62 @@ Closures //------------------------------------------------------------------- - __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VTrackerTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VTrackerTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -2072,12 +2108,12 @@ Closures //------------------------------------------------------------------- - __vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -2090,12 +2126,12 @@ Closures //------------------------------------------------------------------- - __vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -2108,12 +2144,12 @@ Closures //------------------------------------------------------------------- - __vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2126,12 +2162,12 @@ Closures //------------------------------------------------------------------- - __vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2144,12 +2180,12 @@ Closures //------------------------------------------------------------------- - __vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::__vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetSelected(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -2162,12 +2198,12 @@ Closures //------------------------------------------------------------------- - __vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -2176,12 +2212,12 @@ Closures //------------------------------------------------------------------- - __vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2194,62 +2230,62 @@ Closures //------------------------------------------------------------------- - __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HTrackerTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HTrackerTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -2262,12 +2298,12 @@ Closures //------------------------------------------------------------------- - __vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -2280,12 +2316,12 @@ Closures //------------------------------------------------------------------- - __vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2298,12 +2334,12 @@ Closures //------------------------------------------------------------------- - __vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2316,12 +2352,12 @@ Closures //------------------------------------------------------------------- - __vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::__vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -2334,12 +2370,12 @@ Closures //------------------------------------------------------------------- - __vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -2348,12 +2384,12 @@ Closures //------------------------------------------------------------------- - __vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2366,12 +2402,12 @@ Closures //------------------------------------------------------------------- - __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2384,62 +2420,62 @@ Closures //------------------------------------------------------------------- - __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -2452,12 +2488,12 @@ Closures //------------------------------------------------------------------- - __vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2470,12 +2506,12 @@ Closures //------------------------------------------------------------------- - __vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2488,12 +2524,12 @@ Closures //------------------------------------------------------------------- - __vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -2506,12 +2542,12 @@ Closures //------------------------------------------------------------------- - __vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_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_); @@ -2524,12 +2560,12 @@ Closures //------------------------------------------------------------------- - __vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2542,12 +2578,12 @@ Closures //------------------------------------------------------------------- - __vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::__vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2560,12 +2596,12 @@ Closures //------------------------------------------------------------------- - __vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -2578,62 +2614,62 @@ Closures //------------------------------------------------------------------- - __vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetFrameIndex(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetFrameIndex(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetFrameIndex(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetFrameIndex(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2646,12 +2682,12 @@ Closures //------------------------------------------------------------------- - __vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2664,12 +2700,12 @@ Closures //------------------------------------------------------------------- - __vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::__vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -2682,12 +2718,12 @@ Closures //------------------------------------------------------------------- - __vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -2696,12 +2732,12 @@ Closures //------------------------------------------------------------------- - __vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitArrowTemplate()); @@ -2710,12 +2746,12 @@ Closures //------------------------------------------------------------------- - __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2728,12 +2764,12 @@ Closures //------------------------------------------------------------------- - __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2746,12 +2782,12 @@ Closures //------------------------------------------------------------------- - __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -2764,62 +2800,62 @@ Closures //------------------------------------------------------------------- - __vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiDateComboBoxTemplate* __vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiDateComboBoxTemplate*>(new ::darkskin::ComboBoxTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetFrameIndex(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDateComboBoxTemplate* __vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetFrameIndex(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiDateComboBoxTemplate*>(new ::darkskin::ComboBoxTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetFrameIndex(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2832,12 +2868,12 @@ Closures //------------------------------------------------------------------- - __vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2850,12 +2886,12 @@ Closures //------------------------------------------------------------------- - __vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -2868,12 +2904,12 @@ Closures //------------------------------------------------------------------- - __vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2886,12 +2922,12 @@ Closures //------------------------------------------------------------------- - __vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::__vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetSelected(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -2904,12 +2940,12 @@ Closures //------------------------------------------------------------------- - __vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::__vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::__vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -2922,12 +2958,12 @@ Closures //------------------------------------------------------------------- - __vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::__vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::__vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -2940,12 +2976,12 @@ Closures //------------------------------------------------------------------- - __vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::__vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::__vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -2958,62 +2994,62 @@ Closures //------------------------------------------------------------------- - __vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::__vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiDatePickerTemplate* __vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBorderColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiDatePickerTemplate*>(new ::darkskin::DatePickerTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_::__vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0) + __vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::__vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_::__vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDatePickerTemplate* __vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiDatePickerTemplate*>(new ::darkskin::DatePickerTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::LeftScrollButtonTemplate()); @@ -3022,12 +3058,12 @@ Closures //------------------------------------------------------------------- - __vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::RightScrollButtonTemplate()); @@ -3036,12 +3072,12 @@ Closures //------------------------------------------------------------------- - __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::HScrollHandleTemplate()); @@ -3050,12 +3086,12 @@ Closures //------------------------------------------------------------------- - __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3068,12 +3104,12 @@ Closures //------------------------------------------------------------------- - __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetWidthPageSize(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3086,12 +3122,12 @@ Closures //------------------------------------------------------------------- - __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::__vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetWidthRatio(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3104,12 +3140,12 @@ Closures //------------------------------------------------------------------- - __vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); @@ -3118,12 +3154,12 @@ Closures //------------------------------------------------------------------- - __vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3136,62 +3172,62 @@ Closures //------------------------------------------------------------------- - __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetWidthRatio(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::RadioButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->handle)->SetWidthRatio(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::__vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::__vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBackgroundColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetWidthRatio(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetBackgroundColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->handle)->SetWidthRatio(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::__vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::RadioButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::__vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::__vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3204,12 +3240,12 @@ Closures //------------------------------------------------------------------- - __vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_::__vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0) + __vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_::__vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->GetWidthPageSize(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3222,12 +3258,12 @@ Closures //------------------------------------------------------------------- - __vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::__vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::__vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3240,12 +3276,12 @@ Closures //------------------------------------------------------------------- - __vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::__vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::__vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3258,12 +3294,12 @@ Closures //------------------------------------------------------------------- - __vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::__vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::__vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); @@ -3272,12 +3308,12 @@ Closures //------------------------------------------------------------------- - __vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::__vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0) + __vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::__vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); @@ -3286,12 +3322,12 @@ Closures //------------------------------------------------------------------- - __vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::__vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::__vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3304,12 +3340,12 @@ Closures //------------------------------------------------------------------- - __vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::__vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::__vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3322,58 +3358,58 @@ Closures //------------------------------------------------------------------- - __vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_::__vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0) + __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::CheckBoxTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_::__vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::TopScrollButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSelectableButtonTemplate* __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiSelectableButtonTemplate*>(new ::darkskin::CheckBoxTemplate()); + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::TopScrollButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::BottomScrollButtonTemplate()); @@ -3382,12 +3418,12 @@ Closures //------------------------------------------------------------------- - __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::VScrollHandleTemplate()); @@ -3396,12 +3432,12 @@ Closures //------------------------------------------------------------------- - __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3414,12 +3450,12 @@ Closures //------------------------------------------------------------------- - __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetHeightPageSize(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3432,12 +3468,12 @@ Closures //------------------------------------------------------------------- - __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::__vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetHeightRatio(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3450,12 +3486,12 @@ Closures //------------------------------------------------------------------- - __vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); @@ -3464,12 +3500,12 @@ Closures //------------------------------------------------------------------- - __vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3482,12 +3518,12 @@ Closures //------------------------------------------------------------------- - __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::__vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->handle)->GetHeightRatio(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3500,62 +3536,62 @@ Closures //------------------------------------------------------------------- - __vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiButtonTemplate* __vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiButtonTemplate*>(new ::darkskin::ButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiButtonTemplate* __vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiButtonTemplate*>(new ::darkskin::ButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -3568,12 +3604,12 @@ Closures //------------------------------------------------------------------- - __vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3586,12 +3622,12 @@ Closures //------------------------------------------------------------------- - __vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -3604,12 +3640,12 @@ Closures //------------------------------------------------------------------- - __vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetHighlighted(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3622,12 +3658,12 @@ Closures //------------------------------------------------------------------- - __vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::__vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetTabFocused(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3640,12 +3676,12 @@ Closures //------------------------------------------------------------------- - __vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::TabHeaderButtonTemplate()); @@ -3654,12 +3690,12 @@ Closures //------------------------------------------------------------------- - __vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -3672,12 +3708,12 @@ Closures //------------------------------------------------------------------- - __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetAlt(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -3690,70 +3726,70 @@ Closures //------------------------------------------------------------------- - __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetSelected(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitterTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->SetSelected(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + ::vl::presentation::templates::GuiTextListTemplate* __vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->ShowTab(::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->CurrentTabPage)->GetOwnerTab())->GetPages()).Obj())->IndexOf(::vl::__vwsn::Box(__vwsnthis_0->CurrentTabPage)), true); + { + return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::RibbonGalleryItemListTemplate()); + } } //------------------------------------------------------------------- - __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetSelected(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitterTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->SetSelected(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::__vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTextListTemplate* __vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { - { - return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::RibbonGalleryItemListTemplate()); - } + ::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->self)->GetCommands())->ShowTab(::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(::vl::__vwsn::This(__vwsnthis_0->CurrentTabPage)->GetOwnerTab())->GetPages()).Obj())->IndexOf(::vl::__vwsn::Box(__vwsnthis_0->CurrentTabPage)), true); } //------------------------------------------------------------------- - __vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTemplate* __vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiTemplate* __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return !__vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::vl::presentation::controls::GuiTabPage>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) @@ -3766,12 +3802,12 @@ Closures //------------------------------------------------------------------- - __vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->header)->GetItemSource(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::reflection::description::IValueEnumerable>>(__vwsn_value_); @@ -3784,12 +3820,12 @@ Closures //------------------------------------------------------------------- - __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const + void __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const { auto flowItem = ::vl::__vwsn::This(__vwsnthis_0->header)->GetFlowItems()[::vl::__vwsn::This(arguments)->itemIndex]; auto item = ::vl::__vwsn::Ensure(::vl::__vwsn::RawPtrCast<::darkskin::TabHeaderTemplate>(::vl::__vwsn::This(flowItem)->Children()[static_cast<::vl::vint>(0)])); @@ -3799,24 +3835,24 @@ Closures //------------------------------------------------------------------- - __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const + void __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const { ::vl::__vwsn::This(__vwsnthis_0->self)->UpdateTabHeader(); } //------------------------------------------------------------------- - __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3829,12 +3865,12 @@ Closures //------------------------------------------------------------------- - __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetHighlighted(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -3847,24 +3883,24 @@ Closures //------------------------------------------------------------------- - __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::__vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { ::vl::__vwsn::This(__vwsnthis_0->self)->UpdateTabHeader(); } //------------------------------------------------------------------- - __vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); @@ -3873,58 +3909,58 @@ Closures //------------------------------------------------------------------- - __vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripSplitButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::__vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripSplitButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_::__vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_::__vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3937,12 +3973,12 @@ Closures //------------------------------------------------------------------- - __vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -3951,12 +3987,12 @@ Closures //------------------------------------------------------------------- - __vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -3969,12 +4005,12 @@ Closures //------------------------------------------------------------------- - __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -3987,12 +4023,12 @@ Closures //------------------------------------------------------------------- - __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4005,12 +4041,12 @@ Closures //------------------------------------------------------------------- - __vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::__vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -4023,12 +4059,12 @@ Closures //------------------------------------------------------------------- - __vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -4037,12 +4073,12 @@ Closures //------------------------------------------------------------------- - __vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4055,62 +4091,62 @@ Closures //------------------------------------------------------------------- - __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return; + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripDropdownButtonTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetEnabled(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripDropdownButtonTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -4123,12 +4159,12 @@ Closures //------------------------------------------------------------------- - __vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -4141,12 +4177,12 @@ Closures //------------------------------------------------------------------- - __vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4159,12 +4195,12 @@ Closures //------------------------------------------------------------------- - __vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -4177,12 +4213,12 @@ Closures //------------------------------------------------------------------- - __vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9.Obj())->GetText(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); @@ -4195,12 +4231,12 @@ Closures //------------------------------------------------------------------- - __vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_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_); @@ -4213,12 +4249,12 @@ Closures //------------------------------------------------------------------- - __vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_9.Obj())->GetFont(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); @@ -4231,12 +4267,12 @@ Closures //------------------------------------------------------------------- - __vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4249,12 +4285,26 @@ Closures //------------------------------------------------------------------- - __vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripButtonTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4267,12 +4317,12 @@ Closures //------------------------------------------------------------------- - __vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::__vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->GetVisible(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -4285,26 +4335,12 @@ Closures //------------------------------------------------------------------- - __vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) - :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) - { - } - - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const - { - { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::ToolstripButtonTemplate()); - } - } - - //------------------------------------------------------------------- - - __vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4317,12 +4353,12 @@ Closures //------------------------------------------------------------------- - __vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4335,12 +4371,12 @@ Closures //------------------------------------------------------------------- - __vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::__vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4353,12 +4389,12 @@ Closures //------------------------------------------------------------------- - __vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); @@ -4367,12 +4403,12 @@ Closures //------------------------------------------------------------------- - __vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4385,12 +4421,12 @@ Closures //------------------------------------------------------------------- - __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4403,12 +4439,12 @@ Closures //------------------------------------------------------------------- - __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -4421,12 +4457,12 @@ Closures //------------------------------------------------------------------- - __vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -4439,58 +4475,58 @@ Closures //------------------------------------------------------------------- - __vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFrameIndex(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFrameIndex(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::__vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFrameIndex(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFrameIndex(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripTemplate()); + return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); } } //------------------------------------------------------------------- - __vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4503,12 +4539,12 @@ Closures //------------------------------------------------------------------- - __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4521,12 +4557,12 @@ Closures //------------------------------------------------------------------- - __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -4539,12 +4575,12 @@ Closures //------------------------------------------------------------------- - __vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -4557,12 +4593,12 @@ Closures //------------------------------------------------------------------- - __vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -4575,12 +4611,12 @@ Closures //------------------------------------------------------------------- - __vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4593,12 +4629,12 @@ Closures //------------------------------------------------------------------- - __vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4611,12 +4647,12 @@ Closures //------------------------------------------------------------------- - __vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::__vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4629,54 +4665,54 @@ Closures //------------------------------------------------------------------- - __vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::MenuItemButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitArrowTemplate()); + return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); } } //------------------------------------------------------------------- - __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::MenuItemButtonTemplate()); + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripSplitArrowTemplate()); } } //------------------------------------------------------------------- - __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4689,12 +4725,12 @@ Closures //------------------------------------------------------------------- - __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4707,12 +4743,12 @@ Closures //------------------------------------------------------------------- - __vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetImage(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); @@ -4725,12 +4761,12 @@ Closures //------------------------------------------------------------------- - __vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetEnabled(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -4743,12 +4779,12 @@ Closures //------------------------------------------------------------------- - __vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFrameIndex(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); @@ -4761,12 +4797,12 @@ Closures //------------------------------------------------------------------- - __vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4779,12 +4815,12 @@ Closures //------------------------------------------------------------------- - __vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::__vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->buttonArrow)->GetSelected(); auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); @@ -4797,12 +4833,12 @@ Closures //------------------------------------------------------------------- - __vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiWindowTemplate* __vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiWindowTemplate* __vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiWindowTemplate*>(new ::darkskin::TooltipTemplate()); @@ -4811,26 +4847,26 @@ Closures //------------------------------------------------------------------- - __vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); + return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::MenuBarButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); @@ -4839,26 +4875,26 @@ Closures //------------------------------------------------------------------- - __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiToolstripButtonTemplate* __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiToolstripButtonTemplate*>(new ::darkskin::MenuBarButtonTemplate()); + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); } } //------------------------------------------------------------------- - __vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ButtonTemplate()); @@ -4867,12 +4903,12 @@ Closures //------------------------------------------------------------------- - __vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); @@ -4885,428 +4921,590 @@ Closures //------------------------------------------------------------------- - __vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->SetEnabled(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11)->GetAssociatedHitTestResult(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::INativeWindowListener::HitTestResult>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11)->SetAssociatedHitTestResult(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_12)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->GetEnabled(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11)->GetAssociatedHitTestResult(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::INativeWindowListener::HitTestResult>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->SetEnabled(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_11)->SetAssociatedHitTestResult(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_21.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_15)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_21.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_14)->GetAssociatedHitTestResult(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::INativeWindowListener::HitTestResult>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::MenuSplitterTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_14)->SetAssociatedHitTestResult(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->GetImage(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); - if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_21.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->SetImage(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_21.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_20)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::MenuSplitterTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_20)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->GetFrameIndex(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->SetFrameIndex(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_20)->GetMinSizeLimitation(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_20)->SetMinSizeLimitation(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_23.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_26.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_22)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_26.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_22)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_26.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_18)->GetEnabled(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_26.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_18)->SetEnabled(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->contentTable)->GetAlignmentToParent(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Margin>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_18)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetAlignmentToParent(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_18)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - if (::vl::__vwsn::This(__vwsnthis_0->self)->GetTitleBar()) - { - ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); - } - else + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_17)->GetAssociatedHitTestResult(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::INativeWindowListener::HitTestResult>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_17)->SetAssociatedHitTestResult(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::__vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const + void __vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto margin = ::vl::__vwsn::This(__vwsnthis_0->self)->GetCustomFramePadding(); - ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.top; return __vwsn_temp__; }()); - ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.bottom; return __vwsn_temp__; }()); - ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.left; return __vwsn_temp__; }()); - ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.right; return __vwsn_temp__; }()); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_29.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_29.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiControlTemplate* __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_29.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_29.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiControlTemplate* __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::darkskin::ToolstripTemplate()); } } //------------------------------------------------------------------- - __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTextListTemplate* __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_34.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) { - return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::TextListTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_34.Obj())->SetImage(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiRibbonGalleryListTemplate* __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_34.Obj())->GetFrameIndex(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::vint>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiRibbonGalleryListTemplate*>(new ::darkskin::RibbonGalleryTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_34.Obj())->SetFrameIndex(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiTreeViewTemplate* __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_31)->GetMinSizeLimitation(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiTreeViewTemplate*>(new ::darkskin::TreeViewTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_31)->SetMinSizeLimitation(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiListViewTemplate* __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_37.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiListViewTemplate*>(new ::darkskin::ListViewTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_37.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDocumentLabelTemplate* __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_37.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiDocumentLabelTemplate*>(new ::darkskin::DocumentTextBoxTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_37.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDocumentLabelTemplate* __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->contentTable)->GetAlignmentToParent(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Margin>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiDocumentLabelTemplate*>(new ::darkskin::DocumentLabelTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetAlignmentToParent(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDocumentViewerTemplate* __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { + if (::vl::__vwsn::This(__vwsnthis_0->self)->GetTitleBar()) { - return static_cast<::vl::presentation::templates::GuiDocumentViewerTemplate*>(new ::darkskin::DocumentViewerTemplate()); + ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + } + else + { + ::vl::__vwsn::This(__vwsnthis_0->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } } //------------------------------------------------------------------- - __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + __vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::__vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiSinglelineTextBoxTemplate* __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const { - { - return static_cast<::vl::presentation::templates::GuiSinglelineTextBoxTemplate*>(new ::darkskin::SinglelineTextBoxTemplate()); - } - } - - //------------------------------------------------------------------- + auto margin = ::vl::__vwsn::This(__vwsnthis_0->self)->GetCustomFramePadding(); + ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.top; return __vwsn_temp__; }()); + ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.bottom; return __vwsn_temp__; }()); + ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.left; return __vwsn_temp__; }()); + ::vl::__vwsn::This(__vwsnthis_0->frameTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = margin.right; return __vwsn_temp__; }()); + } + + //------------------------------------------------------------------- + + __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTextListTemplate* __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiTextListTemplate*>(new ::darkskin::TextListTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiRibbonGalleryListTemplate* __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiRibbonGalleryListTemplate*>(new ::darkskin::RibbonGalleryTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTreeViewTemplate* __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiTreeViewTemplate*>(new ::darkskin::TreeViewTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiListViewTemplate* __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiListViewTemplate*>(new ::darkskin::ListViewTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiDocumentLabelTemplate* __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiDocumentLabelTemplate*>(new ::darkskin::DocumentTextBoxTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiDocumentLabelTemplate* __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiDocumentLabelTemplate*>(new ::darkskin::DocumentLabelTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiDocumentViewerTemplate* __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiDocumentViewerTemplate*>(new ::darkskin::DocumentViewerTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiSinglelineTextBoxTemplate* __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiSinglelineTextBoxTemplate*>(new ::darkskin::SinglelineTextBoxTemplate()); + } + } + + //------------------------------------------------------------------- __vwsnf46_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf46_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) @@ -5456,26 +5654,22 @@ Closures ::vl::presentation::templates::GuiWindowTemplate* __vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiWindowTemplate*>(new ::darkskin::WindowTemplate()); + return static_cast<::vl::presentation::templates::GuiWindowTemplate*>(new ::darkskin::CustomFrameWindowTemplate()); } } //------------------------------------------------------------------- - __vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::__vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::__vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiWindowTemplate* __vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiWindowTemplate*>(new ::darkskin::SystemFrameWindowTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5487,13 +5681,13 @@ Closures void __vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5505,13 +5699,13 @@ Closures void __vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5523,13 +5717,13 @@ Closures void __vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -5555,13 +5749,13 @@ Closures void __vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- @@ -5573,31 +5767,31 @@ Closures void __vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::__vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::__vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- @@ -5609,13 +5803,13 @@ Closures void __vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5627,13 +5821,13 @@ Closures void __vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5645,13 +5839,13 @@ Closures void __vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5663,13 +5857,13 @@ Closures void __vwsnf66_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetBorderColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5681,13 +5875,13 @@ Closures void __vwsnf67_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -5699,13 +5893,13 @@ Closures void __vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -5717,13 +5911,13 @@ Closures void __vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- @@ -5742,38 +5936,38 @@ Closures //------------------------------------------------------------------- - __vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::__vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::__vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::__vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::__vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- @@ -5785,13 +5979,13 @@ Closures void __vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5803,13 +5997,13 @@ Closures void __vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5821,13 +6015,13 @@ Closures void __vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5839,13 +6033,13 @@ Closures void __vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -5857,13 +6051,13 @@ Closures void __vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -5875,45 +6069,49 @@ Closures void __vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_::__vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::__vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::__vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) + __vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::__vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_13.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- @@ -5932,16 +6130,20 @@ Closures //------------------------------------------------------------------- - __vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::__vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) + __vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_::__vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiScrollTemplate* __vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5951,43 +6153,43 @@ Closures { } - void __vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::VScrollTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::__vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::__vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiDatePickerTemplate* __vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + ::vl::presentation::templates::GuiScrollTemplate* __vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { { - return static_cast<::vl::presentation::templates::GuiDatePickerTemplate*>(new ::darkskin::DatePickerTemplate()); + return static_cast<::vl::presentation::templates::GuiScrollTemplate*>(new ::darkskin::HScrollTemplate()); } } //------------------------------------------------------------------- - __vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::__vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::__vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - ::vl::presentation::templates::GuiMenuTemplate* __vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + void __vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) { - return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); + return; } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -5997,15 +6199,11 @@ Closures { } - void __vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiDatePickerTemplate* __vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiDatePickerTemplate*>(new ::darkskin::DatePickerTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6015,15 +6213,11 @@ Closures { } - void __vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + ::vl::presentation::templates::GuiMenuTemplate* __vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); - if ((__vwsn_old_ == __vwsn_new_)) { - return; + return static_cast<::vl::presentation::templates::GuiMenuTemplate*>(new ::darkskin::ToolstripMenuTemplate()); } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6035,13 +6229,13 @@ Closures void __vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetText(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6053,13 +6247,13 @@ Closures void __vwsnf87_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6071,13 +6265,13 @@ Closures void __vwsnf88_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetText(__vwsn_new_); } //------------------------------------------------------------------- @@ -6089,13 +6283,13 @@ Closures void __vwsnf89_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6121,13 +6315,13 @@ Closures void __vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); } //------------------------------------------------------------------- @@ -6139,13 +6333,13 @@ Closures void __vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBackgroundColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetBackgroundColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -6157,49 +6351,49 @@ Closures void __vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBorderColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetBorderColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::__vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::__vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBackgroundColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBackgroundColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetBackgroundColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::__vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::__vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBorderColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetBorderColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6211,13 +6405,13 @@ Closures void __vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6229,13 +6423,13 @@ Closures void __vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetBackgroundColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetBackgroundColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_3.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6247,13 +6441,13 @@ Closures void __vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetBorderColor(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2)->GetVisible(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetBorderColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_2)->SetVisible(__vwsn_new_); } //------------------------------------------------------------------- @@ -6265,31 +6459,31 @@ Closures void __vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4)->GetVisible(); - auto __vwsn_new_ = ::vl::__vwsn::Unbox(__vwsn_value_); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetBackgroundColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4)->SetVisible(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetBackgroundColor(__vwsn_new_); } //------------------------------------------------------------------- - __vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_::__vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0) + __vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::__vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { } - void __vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + void __vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const { - auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetBorderColor(); auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); if ((__vwsn_old_ == __vwsn_new_)) { return; } - ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetBorderColor(__vwsn_new_); } //------------------------------------------------------------------- @@ -6312,14 +6506,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6328,13 +6524,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6357,11 +6560,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -6369,48 +6579,39 @@ Closures //------------------------------------------------------------------- - __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -6420,25 +6621,18 @@ Closures return false; } - bool __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -6451,17 +6645,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6475,11 +6667,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -6487,10 +6674,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6518,20 +6703,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(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>()); return true; } return false; @@ -6543,14 +6721,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6559,13 +6741,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6588,11 +6784,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(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>()); return true; } return false; @@ -6611,7 +6821,7 @@ Closures void __vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6626,7 +6836,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6649,7 +6859,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); @@ -6672,7 +6882,7 @@ Closures void __vwsnc105_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6687,7 +6897,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc105_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc105_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6710,7 +6920,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); @@ -6733,7 +6943,7 @@ Closures void __vwsnc106_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6748,7 +6958,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc106_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc106_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6771,7 +6981,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); @@ -6787,16 +6997,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6805,20 +7013,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6841,18 +7042,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -6864,14 +7058,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6880,13 +7076,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6909,11 +7112,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -6925,18 +7135,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -6945,27 +7151,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -6988,25 +7180,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(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>()); return true; } return false; @@ -7025,7 +7203,7 @@ Closures void __vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7040,7 +7218,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7063,7 +7241,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); @@ -7168,48 +7346,57 @@ Closures //------------------------------------------------------------------- - __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__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) + void __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -7219,7 +7406,7 @@ Closures return false; } - bool __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -7231,13 +7418,20 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeDropdownButtonTemplate*>(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>()); return true; } return false; @@ -7250,17 +7444,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7274,11 +7466,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -7286,10 +7473,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7317,20 +7502,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(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>()); return true; } return false; @@ -7342,14 +7520,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7358,13 +7540,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7387,11 +7583,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(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>()); return true; } return false; @@ -7410,7 +7620,7 @@ Closures void __vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7425,7 +7635,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7448,7 +7658,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); @@ -7471,7 +7681,7 @@ Closures void __vwsnc115_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7486,7 +7696,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc115_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc115_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7509,7 +7719,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); @@ -7525,16 +7735,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7543,20 +7751,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7579,18 +7780,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -7602,14 +7796,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7618,13 +7814,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7647,11 +7850,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -7670,7 +7880,7 @@ Closures void __vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7685,7 +7895,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7708,7 +7918,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); @@ -7720,48 +7930,39 @@ Closures //------------------------------------------------------------------- - __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -7771,25 +7972,18 @@ Closures return false; } - bool __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -7808,7 +8002,7 @@ Closures void __vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7823,7 +8017,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7846,7 +8040,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); @@ -7863,17 +8057,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7887,11 +8079,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -7899,10 +8086,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -7930,20 +8115,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(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>()); return true; } return false; @@ -7955,14 +8133,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -7971,13 +8153,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8000,11 +8196,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(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>()); return true; } return false; @@ -8023,7 +8233,7 @@ Closures void __vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8038,7 +8248,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8061,7 +8271,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); @@ -8084,7 +8294,7 @@ Closures void __vwsnc123_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8099,7 +8309,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc123_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc123_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8122,7 +8332,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); @@ -8145,7 +8355,7 @@ Closures void __vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8160,7 +8370,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8183,7 +8393,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); @@ -8199,16 +8409,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8217,20 +8425,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - bool __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8253,18 +8454,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -8276,14 +8470,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8292,13 +8488,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8321,11 +8524,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -8333,48 +8543,39 @@ Closures //------------------------------------------------------------------- - __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -8384,25 +8585,18 @@ Closures return false; } - bool __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -8415,17 +8609,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8439,11 +8631,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -8451,10 +8638,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8482,20 +8667,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(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>()); return true; } return false; @@ -8507,14 +8685,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8523,13 +8705,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8552,11 +8748,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(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>()); return true; } return false; @@ -8575,7 +8785,7 @@ Closures void __vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8590,7 +8800,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8613,7 +8823,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); @@ -8636,7 +8846,7 @@ Closures void __vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8651,7 +8861,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8674,7 +8884,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); @@ -8697,7 +8907,7 @@ Closures void __vwsnc131_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8712,7 +8922,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc131_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc131_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8735,7 +8945,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); @@ -8758,7 +8968,7 @@ Closures void __vwsnc132_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8773,7 +8983,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc132_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc132_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8796,7 +9006,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); @@ -8812,16 +9022,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8830,20 +9038,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8866,18 +9067,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -8889,14 +9083,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8905,13 +9101,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -8934,11 +9137,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -8950,18 +9160,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -8970,27 +9176,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9013,25 +9205,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(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>()); return true; } return false; @@ -9054,7 +9232,7 @@ Closures void __vwsnc136_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9225,39 +9403,57 @@ Closures //------------------------------------------------------------------- - __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__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) + void __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -9267,18 +9463,32 @@ Closures return false; } - bool __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallDropdownButtonTemplate*>(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>()); return true; } return false; @@ -9297,7 +9507,7 @@ Closures void __vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9312,7 +9522,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9335,7 +9545,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); @@ -9358,7 +9568,7 @@ Closures void __vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9373,7 +9583,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9396,7 +9606,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); @@ -9419,7 +9629,7 @@ Closures void __vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9434,7 +9644,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9457,7 +9667,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); @@ -9480,7 +9690,7 @@ Closures void __vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9495,7 +9705,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9518,7 +9728,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); @@ -9541,7 +9751,7 @@ Closures void __vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9556,7 +9766,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9579,7 +9789,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); @@ -9602,7 +9812,7 @@ Closures void __vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9617,7 +9827,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9640,7 +9850,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); @@ -9652,48 +9862,39 @@ Closures //------------------------------------------------------------------- - __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -9703,25 +9904,18 @@ Closures return false; } - bool __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallIconLabelTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -9734,17 +9928,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9758,11 +9950,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -9770,10 +9957,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9801,20 +9986,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(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>()); return true; } return false; @@ -9826,14 +10004,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9842,13 +10024,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9871,11 +10067,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(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>()); return true; } return false; @@ -9894,7 +10104,7 @@ Closures void __vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9909,7 +10119,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9932,7 +10142,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); @@ -9955,7 +10165,7 @@ Closures void __vwsnc148_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -9970,7 +10180,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc148_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc148_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -9993,7 +10203,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); @@ -10016,7 +10226,7 @@ Closures void __vwsnc149_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10031,7 +10241,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc149_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc149_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10054,7 +10264,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); @@ -10077,7 +10287,7 @@ Closures void __vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10092,7 +10302,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10115,7 +10325,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); @@ -10131,16 +10341,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10149,20 +10357,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10185,18 +10386,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10208,14 +10402,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10224,13 +10420,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10253,11 +10456,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10269,16 +10479,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10287,20 +10495,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10323,18 +10524,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10346,14 +10540,16 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10362,13 +10558,20 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10391,11 +10594,18 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10403,39 +10613,39 @@ Closures //------------------------------------------------------------------- - __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__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) + void __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -10445,17 +10655,17 @@ Closures return false; } - bool __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSmallSplitButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -10475,7 +10685,7 @@ Closures void __vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10490,7 +10700,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10513,7 +10723,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr)); @@ -10525,48 +10735,39 @@ Closures //------------------------------------------------------------------- - __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -10576,25 +10777,18 @@ Closures return false; } - bool __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonToolstripHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10679,48 +10873,48 @@ Closures //------------------------------------------------------------------- - __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0) + __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#9E9E9E") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#EFEBEF") : ::vl::WString::Unmanaged(L"#686868")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__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) + void __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -10730,7 +10924,7 @@ Closures return false; } - bool __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -10745,8 +10939,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -10756,48 +10950,48 @@ Closures //------------------------------------------------------------------- - __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#9E9E9E") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#EFEBEF") : ::vl::WString::Unmanaged(L"#686868")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__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) + void __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollHandleTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -10807,23 +11001,23 @@ Closures return false; } - bool __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollHandleTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -10833,48 +11027,39 @@ Closures //------------------------------------------------------------------- - __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#252526") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#3F3F46")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -10884,25 +11069,18 @@ Closures return false; } - bool __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -10923,7 +11101,7 @@ Closures void __vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPageSize()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -10944,8 +11122,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PageSizeChanged, ::vl::Func(this, &__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -10968,12 +11146,12 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PageSizeChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollTemplate*>(nullptr)); @@ -11000,7 +11178,7 @@ Closures void __vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); + auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPageSize()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -11021,7 +11199,7 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PageSizeChanged, ::vl::Func(this, &__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } @@ -11039,6 +11217,83 @@ Closures } bool __vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_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)->PageSizeChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::HScrollTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::HScrollTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HScrollTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11064,7 +11319,7 @@ Closures //------------------------------------------------------------------- - __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::HTrackerTemplate*>(nullptr); @@ -11075,37 +11330,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__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) + void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HTrackerTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HTrackerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11115,7 +11370,7 @@ Closures return false; } - bool __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11141,7 +11396,7 @@ Closures //------------------------------------------------------------------- - __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::HTrackerTemplate*>(nullptr); @@ -11152,37 +11407,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__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) + void __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HTrackerTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::HTrackerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11192,7 +11447,7 @@ Closures return false; } - bool __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11218,7 +11473,7 @@ Closures //------------------------------------------------------------------- - __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); @@ -11229,37 +11484,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__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) + void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11269,7 +11524,7 @@ Closures return false; } - bool __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11295,7 +11550,7 @@ Closures //------------------------------------------------------------------- - __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); @@ -11306,37 +11561,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__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) + void __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LeftScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11346,7 +11601,7 @@ Closures return false; } - bool __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11372,7 +11627,7 @@ Closures //------------------------------------------------------------------- - __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0) + __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ProgressBarTemplate*>(nullptr); @@ -11385,28 +11640,28 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = [&](auto a, auto b){ return (static_cast(a) / static_cast(((a > b) ? a : b))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition(), (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize() - ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetPageSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__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) + void __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { @@ -11414,15 +11669,15 @@ Closures (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ProgressBarTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ProgressBarTemplate*>(nullptr); } }()); (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ProgressBarTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->PageSizeChanged, ::vl::Func(this, &__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->PageSizeChanged, ::vl::Func(this, &__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11432,7 +11687,7 @@ Closures return false; } - bool __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11465,7 +11720,7 @@ Closures //------------------------------------------------------------------- - __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); @@ -11476,37 +11731,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__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) + void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11516,7 +11771,7 @@ Closures return false; } - bool __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11542,7 +11797,7 @@ Closures //------------------------------------------------------------------- - __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); @@ -11553,37 +11808,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__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) + void __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RightScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11593,7 +11848,7 @@ Closures return false; } - bool __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11619,48 +11874,48 @@ Closures //------------------------------------------------------------------- - __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#252526") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#3F3F46")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__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) + void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11670,7 +11925,7 @@ Closures return false; } - bool __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11685,8 +11940,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -11696,48 +11951,48 @@ Closures //------------------------------------------------------------------- - __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__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) + void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11747,7 +12002,7 @@ Closures return false; } - bool __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11762,8 +12017,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -11773,7 +12028,7 @@ Closures //------------------------------------------------------------------- - __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); @@ -11784,37 +12039,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__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) + void __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11824,7 +12079,7 @@ Closures return false; } - bool __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11850,7 +12105,7 @@ Closures //------------------------------------------------------------------- - __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0) + __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VScrollHandleTemplate*>(nullptr); @@ -11861,37 +12116,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#9E9E9E") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#EFEBEF") : ::vl::WString::Unmanaged(L"#686868")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__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) + void __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollHandleTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollHandleTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11901,7 +12156,7 @@ Closures return false; } - bool __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -11927,7 +12182,7 @@ Closures //------------------------------------------------------------------- - __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VScrollTemplate*>(nullptr); @@ -11938,37 +12193,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__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) + void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -11978,7 +12233,7 @@ Closures return false; } - bool __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12004,7 +12259,7 @@ Closures //------------------------------------------------------------------- - __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VScrollTemplate*>(nullptr); @@ -12015,37 +12270,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPageSize()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__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) + void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PageSizeChanged, ::vl::Func(this, &__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PageSizeChanged, ::vl::Func(this, &__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12055,7 +12310,7 @@ Closures return false; } - bool __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12081,7 +12336,7 @@ Closures //------------------------------------------------------------------- - __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) + __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VScrollTemplate*>(nullptr); @@ -12092,37 +12347,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__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) + void __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VScrollTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12132,7 +12387,7 @@ Closures return false; } - bool __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12158,7 +12413,7 @@ Closures //------------------------------------------------------------------- - __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VTrackerTemplate*>(nullptr); @@ -12169,37 +12424,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__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) + void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VTrackerTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VTrackerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12209,7 +12464,7 @@ Closures return false; } - bool __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12235,7 +12490,7 @@ Closures //------------------------------------------------------------------- - __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) + __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::VTrackerTemplate*>(nullptr); @@ -12246,37 +12501,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetPosition()) / static_cast(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTotalSize())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__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) + void __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VTrackerTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::VTrackerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->PositionChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TotalSizeChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12286,7 +12541,7 @@ Closures return false; } - bool __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12312,7 +12567,7 @@ Closures //------------------------------------------------------------------- - __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12327,33 +12582,33 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetHighlighted() ? (::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected() ? ::vl::WString::Unmanaged(L"#CC7ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#EA97EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#EA97EA") : ::vl::WString::Unmanaged(L"#604360")))) : (::vl::__vwsn::This(__vwsn_bind_cache_3)->GetSelected() ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1C97EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#434346"))))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0() + void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0() { this->__vwsn_bind_activator_(); } - void __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { @@ -12362,16 +12617,16 @@ Closures (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_3 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_3_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_3)->SelectedChanged, ::vl::Func(this, &__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_3_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_3)->SelectedChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12381,7 +12636,7 @@ Closures return false; } - bool __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12421,7 +12676,7 @@ Closures //------------------------------------------------------------------- - __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12432,37 +12687,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected() && ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTabFocused()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0() + void __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0() { this->__vwsn_bind_activator_(); } - bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TabFocusedChanged, ::vl::Func(this, &__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TabFocusedChanged, ::vl::Func(this, &__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12472,7 +12727,7 @@ Closures return false; } - bool __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12498,39 +12753,48 @@ Closures //------------------------------------------------------------------- - __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12540,18 +12804,25 @@ Closures return false; } - bool __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -12559,48 +12830,39 @@ Closures //------------------------------------------------------------------- - __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12610,25 +12872,18 @@ Closures return false; } - bool __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -12636,7 +12891,7 @@ Closures //------------------------------------------------------------------- - __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12647,37 +12902,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12687,7 +12942,7 @@ Closures return false; } - bool __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12713,7 +12968,7 @@ Closures //------------------------------------------------------------------- - __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12722,30 +12977,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12755,7 +13010,7 @@ Closures return false; } - bool __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12774,7 +13029,7 @@ Closures //------------------------------------------------------------------- - __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12785,13 +13040,13 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetHighlighted(); } catch(...){ return false; } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) { if (static_cast(__vwsn_bind_handler_1_0)) { @@ -12799,30 +13054,30 @@ Closures (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Unbox<::vl::presentation::controls::GuiRibbonTabPage*>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); this->__vwsn_bind_activator_(); } - void __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Unbox<::vl::presentation::controls::GuiRibbonTabPage*>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12832,7 +13087,7 @@ Closures return false; } - bool __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12858,7 +13113,7 @@ Closures //------------------------------------------------------------------- - __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); @@ -12869,13 +13124,13 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused(); } catch(...){ return false; } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) + void __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__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) { if (static_cast(__vwsn_bind_handler_1_0)) { @@ -12883,30 +13138,30 @@ Closures (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::Unbox<::vl::presentation::controls::GuiTabPage*>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()))->GetOwnerTab(); } catch(...){ return static_cast<::vl::presentation::controls::GuiTab*>(nullptr); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); this->__vwsn_bind_activator_(); } - void __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabHeaderButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::Unbox<::vl::presentation::controls::GuiTabPage*>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()))->GetOwnerTab(); } catch(...){ return static_cast<::vl::presentation::controls::GuiTab*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12916,7 +13171,7 @@ Closures return false; } - bool __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -12942,7 +13197,7 @@ Closures //------------------------------------------------------------------- - __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiTabPage*>(nullptr); @@ -12951,30 +13206,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__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) + void __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->CurrentTabPage; } catch(...){ return static_cast<::vl::presentation::controls::GuiTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -12984,7 +13239,7 @@ Closures return false; } - bool __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13003,7 +13258,7 @@ Closures //------------------------------------------------------------------- - __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiTabPage*>(nullptr); @@ -13012,30 +13267,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetAlt(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__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) + void __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->CurrentTabPage; } catch(...){ return static_cast<::vl::presentation::controls::GuiTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->AltChanged, ::vl::Func(this, &__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->AltChanged, ::vl::Func(this, &__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13045,7 +13300,7 @@ Closures return false; } - bool __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13064,7 +13319,7 @@ Closures //------------------------------------------------------------------- - __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::controls::GuiTab*>(nullptr); @@ -13073,30 +13328,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelectedPage() == __vwsnthis_0->CurrentTabPage); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__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) + void __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return ::vl::__vwsn::This(__vwsnthis_0->CurrentTabPage)->GetOwnerTab(); } catch(...){ return static_cast<::vl::presentation::controls::GuiTab*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedPageChanged, ::vl::Func(this, &__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedPageChanged, ::vl::Func(this, &__vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13106,7 +13361,7 @@ Closures return false; } - bool __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13125,7 +13380,7 @@ Closures //------------------------------------------------------------------- - __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr); @@ -13134,30 +13389,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::Ptr<::vl::reflection::description::IValueEnumerable>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetTabPages()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__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) + void __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TabPagesChanged, ::vl::Func(this, &__vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TabPagesChanged, ::vl::Func(this, &__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13167,7 +13422,7 @@ Closures return false; } - bool __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13186,7 +13441,7 @@ Closures //------------------------------------------------------------------- - __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr); @@ -13195,30 +13450,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetHighlighted() ? ::vl::WString::Unmanaged(L"#CC7ACC") : ::vl::WString::Unmanaged(L"#007ACC"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + void __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() { this->__vwsn_bind_activator_(); } - bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->HighlightedChanged, ::vl::Func(this, &__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->HighlightedChanged, ::vl::Func(this, &__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13228,7 +13483,7 @@ Closures return false; } - bool __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13247,55 +13502,48 @@ Closures //------------------------------------------------------------------- - __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) + __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetHighlighted(); } catch(...){ return false; } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__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) + void __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__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) { - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Ensure(::vl::__vwsn::RawPtrCast<::vl::presentation::controls::GuiRibbonTabPage>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelectedTabPage())); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); this->__vwsn_bind_activator_(); } - void __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Ensure(::vl::__vwsn::RawPtrCast<::vl::presentation::controls::GuiRibbonTabPage>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelectedTabPage())); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedTabPageChanged, ::vl::Func(this, &__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13305,23 +13553,23 @@ Closures return false; } - bool __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_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)->SelectedTabPageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -13331,39 +13579,55 @@ Closures //------------------------------------------------------------------- - __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetHighlighted(); } catch(...){ return false; } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__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) + void __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__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) + { + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Ensure(::vl::__vwsn::RawPtrCast<::vl::presentation::controls::GuiRibbonTabPage>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelectedTabPage())); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + this->__vwsn_bind_activator_(); + } + + void __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TabTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return ::vl::__vwsn::Ensure(::vl::__vwsn::RawPtrCast<::vl::presentation::controls::GuiRibbonTabPage>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelectedTabPage())); } catch(...){ return static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedTabPageChanged, ::vl::Func(this, &__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, ::vl::Func(this, &__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13373,18 +13637,25 @@ Closures return false; } - bool __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_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)->SelectedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedTabPageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->HighlightedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::TabTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::vl::presentation::controls::GuiRibbonTabPage*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -13392,7 +13663,7 @@ Closures //------------------------------------------------------------------- - __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MultilineTextBoxTemplate*>(nullptr); @@ -13403,37 +13674,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__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) + void __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MultilineTextBoxTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MultilineTextBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13443,7 +13714,7 @@ Closures return false; } - bool __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13469,7 +13740,7 @@ Closures //------------------------------------------------------------------- - __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::SinglelineTextBoxTemplate*>(nullptr); @@ -13480,37 +13751,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__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) + void __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::SinglelineTextBoxTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::SinglelineTextBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13520,7 +13791,7 @@ Closures return false; } - bool __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13546,7 +13817,7 @@ Closures //------------------------------------------------------------------- - __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); @@ -13559,28 +13830,28 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#1B1B1C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3D3D40") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__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) + void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { @@ -13588,15 +13859,15 @@ Closures (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13606,7 +13877,7 @@ Closures return false; } - bool __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13639,7 +13910,7 @@ Closures //------------------------------------------------------------------- - __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); @@ -13648,30 +13919,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__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) + void __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13681,7 +13952,7 @@ Closures return false; } - bool __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13700,7 +13971,7 @@ Closures //------------------------------------------------------------------- - __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); @@ -13709,30 +13980,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__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) + void __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13742,7 +14013,7 @@ Closures return false; } - bool __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13761,7 +14032,7 @@ Closures //------------------------------------------------------------------- - __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); @@ -13770,30 +14041,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__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) + void __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuBarButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13803,7 +14074,7 @@ Closures return false; } - bool __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13822,7 +14093,7 @@ Closures //------------------------------------------------------------------- - __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); @@ -13835,28 +14106,28 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#3D3D40") : (((state == ::vl::presentation::controls::ButtonState::Active) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#3D3D40") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__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) + void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { @@ -13864,15 +14135,15 @@ Closures (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -13882,7 +14153,7 @@ Closures return false; } - bool __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -13915,67 +14186,6 @@ Closures //------------------------------------------------------------------- - __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) - :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) - { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); - this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_opened_ = false; - this->__vwsn_bind_closed_ = false; - } - - void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() - { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); - ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); - } - - void __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() - { - if ((! __vwsn_bind_opened_)) - { - (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - return true; - } - return false; - } - - bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() - { - if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) - { - this->__vwsn_bind_activator_(); - return true; - } - return false; - } - - bool __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); - (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); - (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - return true; - } - return false; - } - - //------------------------------------------------------------------- - __vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { @@ -13987,7 +14197,7 @@ Closures void __vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14002,7 +14212,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14025,7 +14235,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14048,7 +14258,7 @@ Closures void __vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14063,7 +14273,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14086,7 +14296,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14109,7 +14319,7 @@ Closures void __vwsnc19_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14124,7 +14334,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc19_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc19_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14147,7 +14357,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); @@ -14247,7 +14457,7 @@ Closures void __vwsnc200_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14262,7 +14472,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc200_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc200_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14285,7 +14495,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14308,7 +14518,7 @@ Closures void __vwsnc201_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14323,7 +14533,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc201_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc201_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14346,7 +14556,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14369,7 +14579,7 @@ Closures void __vwsnc202_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14384,7 +14594,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc202_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc202_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14407,7 +14617,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14430,7 +14640,7 @@ Closures void __vwsnc203_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetShortcutText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14445,7 +14655,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ShortcutTextChanged, ::vl::Func(this, &__vwsnc203_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc203_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14468,7 +14678,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ShortcutTextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14491,7 +14701,7 @@ Closures void __vwsnc204_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetShortcutText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14506,7 +14716,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc204_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ShortcutTextChanged, ::vl::Func(this, &__vwsnc204_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14529,7 +14739,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ShortcutTextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14552,7 +14762,7 @@ Closures void __vwsnc205_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14567,7 +14777,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc205_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc205_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14590,7 +14800,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); @@ -14606,18 +14816,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Active) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14626,27 +14832,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14669,25 +14861,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::MenuItemButtonTemplate*>(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>()); return true; } return false; @@ -14792,14 +14970,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuExisting(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Active) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14808,13 +14990,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, ::vl::Func(this, &__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14837,11 +15033,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::MenuItemButtonTemplate*>(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>()); return true; } return false; @@ -14849,57 +15059,39 @@ Closures //------------------------------------------------------------------- - __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuExisting(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::MenuItemButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, ::vl::Func(this, &__vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -14909,32 +15101,18 @@ Closures return false; } - bool __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::MenuItemButtonTemplate*>(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>()); return true; } return false; @@ -14953,7 +15131,7 @@ Closures void __vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -14968,7 +15146,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -14991,7 +15169,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); @@ -15018,7 +15196,7 @@ Closures void __vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15189,48 +15367,57 @@ Closures //------------------------------------------------------------------- - __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__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) + void __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -15240,7 +15427,7 @@ Closures return false; } - bool __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -15252,13 +15439,20 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitArrowTemplate*>(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>()); return true; } return false; @@ -15271,17 +15465,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15295,22 +15487,15 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - bool __vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15338,20 +15523,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripButtonTemplate*>(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>()); return true; } return false; @@ -15363,14 +15541,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15379,13 +15561,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15408,11 +15604,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripButtonTemplate*>(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>()); return true; } return false; @@ -15431,7 +15641,7 @@ Closures void __vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15446,7 +15656,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15469,7 +15679,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); @@ -15492,7 +15702,7 @@ Closures void __vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15507,7 +15717,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15530,7 +15740,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); @@ -15542,48 +15752,39 @@ Closures //------------------------------------------------------------------- - __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -15593,25 +15794,18 @@ Closures return false; } - bool __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -15624,17 +15818,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15648,11 +15840,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -15660,10 +15847,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15691,20 +15876,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(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>()); return true; } return false; @@ -15716,14 +15894,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15732,13 +15914,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15761,11 +15957,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(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>()); return true; } return false; @@ -15784,7 +15994,7 @@ Closures void __vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15799,7 +16009,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15822,7 +16032,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); @@ -15845,7 +16055,7 @@ Closures void __vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15860,7 +16070,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15883,7 +16093,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); @@ -15906,7 +16116,7 @@ Closures void __vwsnc221_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15921,7 +16131,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc221_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc221_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -15944,7 +16154,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); @@ -15960,18 +16170,14 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -15980,27 +16186,13 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16023,25 +16215,11 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(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>()); return true; } return false; @@ -16064,7 +16242,7 @@ Closures void __vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16235,48 +16413,57 @@ Closures //------------------------------------------------------------------- - __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__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) + void __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -16286,7 +16473,7 @@ Closures return false; } - bool __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -16298,13 +16485,20 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(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>()); return true; } return false; @@ -16317,17 +16511,15 @@ Closures { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16341,11 +16533,6 @@ Closures this->__vwsn_bind_activator_(); } - void __vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - bool __vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) @@ -16353,10 +16540,8 @@ Closures (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16384,20 +16569,13 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(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>()); return true; } return false; @@ -16409,14 +16587,18 @@ Closures :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } void __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16425,13 +16607,27 @@ Closures this->__vwsn_bind_activator_(); } + void __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + bool __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16454,11 +16650,25 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(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>()); return true; } return false; @@ -16477,7 +16687,7 @@ Closures void __vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16492,7 +16702,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16515,7 +16725,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); @@ -16538,7 +16748,7 @@ Closures void __vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16553,7 +16763,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16576,7 +16786,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); @@ -16599,7 +16809,7 @@ Closures void __vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } @@ -16614,7 +16824,7 @@ Closures { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; @@ -16637,7 +16847,7 @@ Closures (__vwsn_bind_closed_ = true); if (static_cast(__vwsn_bind_handler_0_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); @@ -16651,6 +16861,67 @@ Closures __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); this->__vwsn_bind_cache_1 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); @@ -16660,37 +16931,37 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__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) + void __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -16700,7 +16971,7 @@ Closures return false; } - bool __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -16726,7 +16997,7 @@ Closures //------------------------------------------------------------------- - __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); @@ -16735,30 +17006,30 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__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) + void __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -16768,7 +17039,7 @@ Closures return false; } - bool __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -16787,13 +17058,13 @@ Closures //------------------------------------------------------------------- - __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_3 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_3 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -16802,51 +17073,51 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto margin){ return (((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetBorder()) || ((((margin.left + margin.top) + margin.right) + margin.bottom) == static_cast<::vl::vint>(0))) ? ::vl::WString::Unmanaged(L"#00000000") : ((::vl::__vwsn::This(__vwsn_bind_cache_2)->GetVisuallyEnabled() && ::vl::__vwsn::This(__vwsn_bind_cache_3)->GetActivated()) ? ::vl::WString::Unmanaged(L"#017ACC") : ::vl::WString::Unmanaged(L"#434346"))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetCustomFramePadding())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_3 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CustomFramePaddingChanged, ::vl::Func(this, &__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->BorderChanged, ::vl::Func(this, &__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_3_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_3)->ActivatedChanged, ::vl::Func(this, &__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_3 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CustomFramePaddingChanged, ::vl::Func(this, &__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->BorderChanged, ::vl::Func(this, &__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_3_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_3)->ActivatedChanged, ::vl::Func(this, &__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_3_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -16856,7 +17127,7 @@ Closures return false; } - bool __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -16881,10 +17152,10 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_3)->ActivatedChanged, __vwsn_bind_handler_3_0); (__vwsn_bind_handler_3_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_3 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_3 = static_cast<::darkskin::CustomFrameWindowTemplate*>(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>()); @@ -16896,39 +17167,39 @@ Closures //------------------------------------------------------------------- - __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -16938,17 +17209,17 @@ Closures return false; } - bool __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -16957,48 +17228,39 @@ Closures //------------------------------------------------------------------- - __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() || ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetMaximizedBox()); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17008,25 +17270,18 @@ Closures return false; } - bool __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17034,39 +17289,39 @@ Closures //------------------------------------------------------------------- - __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() ? ::vl::presentation::INativeWindowListener::HitTestResult::ButtonMinimum : ::vl::presentation::INativeWindowListener::HitTestResult::NoDecision); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17076,7 +17331,7 @@ Closures return false; } - bool __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -17086,7 +17341,7 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -17095,39 +17350,48 @@ Closures //------------------------------------------------------------------- - __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximized() ? ::vl::WString::Unmanaged(L" 1 ") : ::vl::WString::Unmanaged(L" 2 ")); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() || ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetMaximizedBox()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedChanged, ::vl::Func(this, &__vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17137,18 +17401,25 @@ Closures return false; } - bool __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->MaximizedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17156,39 +17427,39 @@ Closures //------------------------------------------------------------------- - __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximizedBox(); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() ? ::vl::presentation::INativeWindowListener::HitTestResult::ButtonMinimum : ::vl::presentation::INativeWindowListener::HitTestResult::NoDecision); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17198,17 +17469,17 @@ Closures return false; } - bool __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->MaximizedBoxChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -17217,48 +17488,39 @@ Closures //------------------------------------------------------------------- - __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() || ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetMaximizedBox()); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17268,25 +17530,18 @@ Closures return false; } - bool __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17294,39 +17549,39 @@ Closures //------------------------------------------------------------------- - __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximizedBox() ? ::vl::presentation::INativeWindowListener::HitTestResult::ButtonMaximum : ::vl::presentation::INativeWindowListener::HitTestResult::NoDecision); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RadioButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17336,17 +17591,17 @@ Closures return false; } - bool __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_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)->MaximizedBoxChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RadioButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -17355,48 +17610,39 @@ Closures //------------------------------------------------------------------- - __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17406,7 +17652,7 @@ Closures return false; } - bool __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -17416,15 +17662,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17432,48 +17671,39 @@ Closures //------------------------------------------------------------------- - __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) ? ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIcon().Obj())->GetImage() : ::vl::Ptr<::vl::presentation::INativeImage>()); + auto __vwsn_bind_activator_result_ = (! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximized()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, ::vl::Func(this, &__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedChanged, ::vl::Func(this, &__vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17483,25 +17713,18 @@ Closures return false; } - bool __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->IconChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17509,48 +17732,39 @@ Closures //------------------------------------------------------------------- - __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) ? ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIcon().Obj())->GetFrameIndex() : (- static_cast<::vl::vint>(1))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, ::vl::Func(this, &__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17560,25 +17774,18 @@ Closures return false; } - bool __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->IconChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17586,48 +17793,39 @@ Closures //------------------------------------------------------------------- - __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ((static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) && ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIconVisible()) ? ::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren : ::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::NoLimit); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconVisibleChanged, ::vl::Func(this, &__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17637,25 +17835,18 @@ Closures return false; } - bool __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->IconChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconVisibleChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17663,39 +17854,39 @@ Closures //------------------------------------------------------------------- - __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximized(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedChanged, ::vl::Func(this, &__vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17705,17 +17896,17 @@ Closures return false; } - bool __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -17724,48 +17915,39 @@ Closures //------------------------------------------------------------------- - __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled() && ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetActivated()) ? ::vl::WString::Unmanaged(L"#999999") : ::vl::WString::Unmanaged(L"#6D6D6D"))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximizedBox(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->ActivatedChanged, ::vl::Func(this, &__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17775,25 +17957,18 @@ Closures return false; } - bool __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->ActivatedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17801,39 +17976,48 @@ Closures //------------------------------------------------------------------- - __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0) + __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetCustomFramePadding(); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMinimizedBox() || ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetMaximizedBox()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__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) + void __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::WindowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CustomFramePaddingChanged, ::vl::Func(this, &__vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, ::vl::Func(this, &__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17843,18 +18027,25 @@ Closures return false; } - bool __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->CustomFramePaddingChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MinimizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::WindowTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->MaximizedBoxChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17862,48 +18053,39 @@ Closures //------------------------------------------------------------------- - __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) + __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetMaximizedBox() ? ::vl::presentation::INativeWindowListener::HitTestResult::ButtonMaximum : ::vl::presentation::INativeWindowListener::HitTestResult::NoDecision); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, ::vl::Func(this, &__vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17913,25 +18095,18 @@ Closures return false; } - bool __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->MaximizedBoxChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -17939,57 +18114,39 @@ Closures //------------------------------------------------------------------- - __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#2D2D30") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#3F3F46") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#333337")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -17999,32 +18156,18 @@ Closures return false; } - bool __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(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>()); return true; } return false; @@ -18032,48 +18175,39 @@ Closures //------------------------------------------------------------------- - __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18083,7 +18217,7 @@ Closures return false; } - bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -18093,15 +18227,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -18109,39 +18236,48 @@ Closures //------------------------------------------------------------------- - __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__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) + void __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18151,18 +18287,25 @@ Closures return false; } - bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentTextBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -18170,39 +18313,48 @@ Closures //------------------------------------------------------------------- - __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) ? ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIcon().Obj())->GetImage() : ::vl::Ptr<::vl::presentation::INativeImage>()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__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) + void __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, ::vl::Func(this, &__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18212,18 +18364,25 @@ Closures return false; } - bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -18231,39 +18390,48 @@ Closures //------------------------------------------------------------------- - __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = (static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) ? ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIcon().Obj())->GetFrameIndex() : (- static_cast<::vl::vint>(1))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__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) + void __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, ::vl::Func(this, &__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18273,18 +18441,25 @@ Closures return false; } - bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -18292,48 +18467,48 @@ Closures //------------------------------------------------------------------- - __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ((static_cast(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetIcon()) && ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetIconVisible()) ? ::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren : ::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::NoLimit); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__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) + void __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, ::vl::Func(this, &__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconVisibleChanged, ::vl::Func(this, &__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18343,23 +18518,23 @@ Closures return false; } - bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->IconChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->IconVisibleChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -18369,39 +18544,39 @@ Closures //------------------------------------------------------------------- - __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetTextVisible(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__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) + void __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextVisibleChanged, ::vl::Func(this, &__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18411,17 +18586,17 @@ Closures return false; } - bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->TextVisibleChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -18430,57 +18605,48 @@ Closures //------------------------------------------------------------------- - __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1F1F20") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled() && ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetActivated()) ? ::vl::WString::Unmanaged(L"#999999") : ::vl::WString::Unmanaged(L"#6D6D6D"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->ActivatedChanged, ::vl::Func(this, &__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18490,32 +18656,25 @@ Closures return false; } - bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->ActivatedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CustomFrameWindowTemplate*>(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>()); return true; } return false; @@ -18523,57 +18682,39 @@ Closures //------------------------------------------------------------------- - __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#2D2D30") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#3F3F46") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#434346")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetCustomFramePadding(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CustomFramePaddingChanged, ::vl::Func(this, &__vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18583,32 +18724,18 @@ Closures return false; } - bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CustomFramePaddingChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CustomFrameWindowTemplate*>(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>()); return true; } return false; @@ -18616,57 +18743,48 @@ Closures //------------------------------------------------------------------- - __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#999999") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DocumentViewerTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18676,32 +18794,25 @@ Closures return false; } - bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DocumentViewerTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::DocumentViewerTemplate*>(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>()); return true; } return false; @@ -18709,12 +18820,12 @@ Closures //------------------------------------------------------------------- - __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -18722,44 +18833,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ((! ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1"))))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#2D2D30") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#3F3F46") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#333337")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__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) + void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18769,7 +18880,7 @@ Closures return false; } - bool __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -18781,17 +18892,17 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_2_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, __vwsn_bind_handler_2_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(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>()); @@ -18802,48 +18913,48 @@ Closures //------------------------------------------------------------------- - __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__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) + void __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18853,23 +18964,23 @@ Closures return false; } - bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -18879,39 +18990,39 @@ Closures //------------------------------------------------------------------- - __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected()); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__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) + void __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -18921,17 +19032,17 @@ Closures return false; } - bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_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)->SelectedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -18940,57 +19051,39 @@ Closures //------------------------------------------------------------------- - __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ((! ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1"))))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19000,32 +19093,18 @@ Closures return false; } - bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(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>()); return true; } return false; @@ -19033,48 +19112,48 @@ Closures //------------------------------------------------------------------- - __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__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) + void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19084,7 +19163,7 @@ Closures return false; } - bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19099,8 +19178,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -19110,39 +19189,39 @@ Closures //------------------------------------------------------------------- - __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) + __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__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) + void __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19152,17 +19231,17 @@ Closures return false; } - bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_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)->SelectedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -19171,39 +19250,39 @@ Closures //------------------------------------------------------------------- - __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetTextVisible(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__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) + void __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextVisibleChanged, ::vl::Func(this, &__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19213,17 +19292,17 @@ Closures return false; } - bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_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)->FocusedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextVisibleChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -19232,12 +19311,12 @@ Closures //------------------------------------------------------------------- - __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0) + __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -19245,44 +19324,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected() || (state == ::vl::presentation::controls::ButtonState::Pressed)) ? ::vl::WString::Unmanaged(L"#3399FF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1F1F20") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__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) + void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19292,7 +19371,7 @@ Closures return false; } - bool __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19309,12 +19388,12 @@ Closures } if (static_cast(__vwsn_bind_handler_2_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(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>()); @@ -19325,12 +19404,12 @@ Closures //------------------------------------------------------------------- - __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -19338,44 +19417,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#3E3E40") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3E3E40") : ::vl::WString::Unmanaged(L"#252527")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#2D2D30") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#3F3F46") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#434346")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19385,7 +19464,7 @@ Closures return false; } - bool __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19405,9 +19484,9 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(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>()); @@ -19418,12 +19497,12 @@ Closures //------------------------------------------------------------------- - __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -19431,44 +19510,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#999999") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ComboBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19478,7 +19557,7 @@ Closures return false; } - bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19495,12 +19574,12 @@ Closures } if (static_cast(__vwsn_bind_handler_2_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ComboBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ComboBoxTemplate*>(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>()); @@ -19511,12 +19590,12 @@ Closures //------------------------------------------------------------------- - __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -19524,44 +19603,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ((! ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1"))))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19571,7 +19650,7 @@ Closures return false; } - bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19583,17 +19662,17 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_2_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(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>()); @@ -19604,39 +19683,48 @@ Closures //------------------------------------------------------------------- - __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSortingState() == ::vl::presentation::controls::ColumnSortingState::Ascending); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, ::vl::Func(this, &__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19646,18 +19734,25 @@ Closures return false; } - bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_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)->SortingStateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -19665,57 +19760,39 @@ Closures //------------------------------------------------------------------- - __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = (! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected()); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19725,32 +19802,18 @@ Closures return false; } - bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(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>()); return true; } return false; @@ -19758,12 +19821,12 @@ Closures //------------------------------------------------------------------- - __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -19771,44 +19834,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ((! ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1"))))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19818,7 +19881,7 @@ Closures return false; } - bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -19830,17 +19893,17 @@ Closures } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_2_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->VisuallyEnabledChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(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>()); @@ -19851,39 +19914,48 @@ Closures //------------------------------------------------------------------- - __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSortingState() == ::vl::presentation::controls::ColumnSortingState::Descending); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#0A75B9") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#0A75B9") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, ::vl::Func(this, &__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19893,18 +19965,25 @@ Closures return false; } - bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_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)->SortingStateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -19912,39 +19991,39 @@ Closures //------------------------------------------------------------------- - __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -19954,17 +20033,17 @@ Closures return false; } - bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -19973,48 +20052,39 @@ Closures //------------------------------------------------------------------- - __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20024,25 +20094,18 @@ Closures return false; } - bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ExpandingDecoratorTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -20050,39 +20113,57 @@ Closures //------------------------------------------------------------------- - __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected() || (state == ::vl::presentation::controls::ButtonState::Pressed)) ? ::vl::WString::Unmanaged(L"#3399FF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__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) + void __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20092,18 +20173,32 @@ Closures return false; } - bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ItemBackgroundTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ItemBackgroundTemplate*>(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>()); return true; } return false; @@ -20111,39 +20206,57 @@ Closures //------------------------------------------------------------------- - __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#3E3E40") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3E3E40") : ::vl::WString::Unmanaged(L"#252527")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20153,18 +20266,32 @@ Closures return false; } - bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(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>()); return true; } return false; @@ -20172,39 +20299,57 @@ Closures //------------------------------------------------------------------- - __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuExisting(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, ::vl::Func(this, &__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20214,18 +20359,32 @@ Closures return false; } - bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->SubMenuExistingChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(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>()); return true; } return false; @@ -20233,109 +20392,57 @@ Closures //------------------------------------------------------------------- - __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) + __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__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) + void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() - { - if ((! __vwsn_bind_opened_)) - { - (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - return true; - } - return false; - } - - bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() - { - if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) - { - this->__vwsn_bind_activator_(); - return true; - } - return false; - } - - bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); - (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); - (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - return true; - } - return false; - } - - //------------------------------------------------------------------- - - __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) - :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) - { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewTemplate*>(nullptr); - this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_opened_ = false; - this->__vwsn_bind_closed_ = false; - } - - void __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() - { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); - ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); - } - - void __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__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) + void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20345,25 +20452,32 @@ Closures return false; } - bool __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(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>()); return true; } return false; @@ -20371,48 +20485,39 @@ Closures //------------------------------------------------------------------- - __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) + __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::TextListTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::TextListTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSortingState() == ::vl::presentation::controls::ColumnSortingState::Ascending); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TextListTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TextListTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, ::vl::Func(this, &__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20422,25 +20527,18 @@ Closures return false; } - bool __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::TextListTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::TextListTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -20448,48 +20546,57 @@ Closures //------------------------------------------------------------------- - __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) + __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::TreeViewTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::TreeViewTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__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) + void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TreeViewTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TreeViewTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20499,25 +20606,32 @@ Closures return false; } - bool __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::TreeViewTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::TreeViewTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(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>()); return true; } return false; @@ -20525,12 +20639,12 @@ Closures //------------------------------------------------------------------- - __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); @@ -20538,44 +20652,44 @@ Closures this->__vwsn_bind_closed_ = false; } - void __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected() || (state == ::vl::presentation::controls::ButtonState::Pressed)) ? ::vl::WString::Unmanaged(L"#3399FF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__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) + void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20585,7 +20699,7 @@ Closures return false; } - bool __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -20605,9 +20719,9 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(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>()); @@ -20618,39 +20732,39 @@ Closures //------------------------------------------------------------------- - __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); + auto __vwsn_bind_activator_result_ = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSortingState() == ::vl::presentation::controls::ColumnSortingState::Descending); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__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) + void __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, ::vl::Func(this, &__vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20660,17 +20774,17 @@ Closures return false; } - bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->FocusedChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SortingStateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -20679,39 +20793,39 @@ Closures //------------------------------------------------------------------- - __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__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) + void __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20721,17 +20835,17 @@ Closures return false; } - bool __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -20740,39 +20854,39 @@ Closures //------------------------------------------------------------------- - __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDate(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__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) + void __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, ::vl::Func(this, &__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20782,17 +20896,17 @@ Closures return false; } - bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_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)->DateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -20801,48 +20915,48 @@ Closures //------------------------------------------------------------------- - __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__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) + void __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20852,7 +20966,7 @@ Closures return false; } - bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -20867,8 +20981,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -20878,39 +20992,39 @@ Closures //------------------------------------------------------------------- - __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDateLocale(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__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) + void __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateLocaleChanged, ::vl::Func(this, &__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20920,17 +21034,17 @@ Closures return false; } - bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->DateLocaleChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -20939,39 +21053,39 @@ Closures //------------------------------------------------------------------- - __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetCommands(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuExisting(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__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) + void __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CommandsChanged, ::vl::Func(this, &__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, ::vl::Func(this, &__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -20981,17 +21095,17 @@ Closures return false; } - bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->CommandsChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuExistingChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21000,39 +21114,39 @@ Closures //------------------------------------------------------------------- - __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) + __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDate(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSubMenuOpening(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__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) + void __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->look; } catch(...){ return static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, ::vl::Func(this, &__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21042,17 +21156,17 @@ Closures return false; } - bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_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)->DateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SubMenuOpeningChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewColumnHeaderTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21061,39 +21175,48 @@ Closures //------------------------------------------------------------------- - __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = (static_cast<::vl::vint>(1) + (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetBounds().y2 / static_cast<::vl::vint>(2))); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__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) + void __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->titleBounds; } catch(...){ return static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, ::vl::Func(this, &__vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ListViewTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21103,18 +21226,25 @@ Closures return false; } - bool __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_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)->BoundsChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ListViewTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ListViewTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21122,39 +21252,48 @@ Closures //------------------------------------------------------------------- - __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::TextListTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::TextListTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetBounds().y2 / static_cast<::vl::vint>(2)); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__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) + void __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->titleBounds; } catch(...){ return static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, ::vl::Func(this, &__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TextListTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TextListTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21164,18 +21303,25 @@ Closures return false; } - bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_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)->BoundsChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::TextListTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::TextListTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21183,39 +21329,48 @@ Closures //------------------------------------------------------------------- - __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::TreeViewTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::TreeViewTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__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) + void __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::GroupBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TreeViewTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::TreeViewTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21225,18 +21380,25 @@ Closures return false; } - bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::TreeViewTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::TreeViewTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21244,39 +21406,57 @@ Closures //------------------------------------------------------------------- - __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected() || (state == ::vl::presentation::controls::ButtonState::Pressed)) ? ::vl::WString::Unmanaged(L"#3399FF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#3F3F46") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__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) + void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::GroupBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21286,18 +21466,32 @@ Closures return false; } - bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::DateButtonTemplate*>(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>()); return true; } return false; @@ -21305,39 +21499,39 @@ Closures //------------------------------------------------------------------- - __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFocused(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__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) + void __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DateButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, ::vl::Func(this, &__vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21347,17 +21541,17 @@ Closures return false; } - bool __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FocusedChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DateButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21366,48 +21560,39 @@ Closures //------------------------------------------------------------------- - __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::LabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::__vwsn::ToString(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTextColor()))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TextColorChanged, ::vl::Func(this, &__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21417,25 +21602,18 @@ Closures return false; } - bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TextColorChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::LabelTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21443,39 +21621,48 @@ Closures //------------------------------------------------------------------- - __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__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) + void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21485,18 +21672,25 @@ Closures return false; } - bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21504,39 +21698,39 @@ Closures //------------------------------------------------------------------- - __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDate(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__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) + void __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, ::vl::Func(this, &__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21546,17 +21740,17 @@ Closures return false; } - bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21565,39 +21759,39 @@ Closures //------------------------------------------------------------------- - __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDateLocale(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__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) + void __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateLocaleChanged, ::vl::Func(this, &__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21607,17 +21801,17 @@ Closures return false; } - bool __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateLocaleChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21626,39 +21820,39 @@ Closures //------------------------------------------------------------------- - __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetTextColor(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetCommands(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__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) + void __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextColorChanged, ::vl::Func(this, &__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::DatePickerTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CommandsChanged, ::vl::Func(this, &__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21668,17 +21862,17 @@ Closures return false; } - bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_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)->TextColorChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->CommandsChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::DatePickerTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21687,39 +21881,39 @@ Closures //------------------------------------------------------------------- - __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) + __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDate(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__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) + void __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->look; } catch(...){ return static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, ::vl::Func(this, &__vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21729,17 +21923,17 @@ Closures return false; } - bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::vl::presentation::templates::GuiCommonDatePickerLook*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21748,57 +21942,39 @@ Closures //------------------------------------------------------------------- - __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = [&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = (static_cast<::vl::vint>(1) + (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetBounds().y2 / static_cast<::vl::vint>(2))); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->titleBounds; } catch(...){ return static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, ::vl::Func(this, &__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21808,32 +21984,18 @@ Closures return false; } - bool __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(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>()); return true; } return false; @@ -21841,39 +22003,39 @@ Closures //------------------------------------------------------------------- - __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = [&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = (::vl::__vwsn::This(__vwsn_bind_cache_0)->GetBounds().y2 / static_cast<::vl::vint>(2)); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__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) + void __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->titleBounds; } catch(...){ return static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, ::vl::Func(this, &__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21883,17 +22045,17 @@ Closures return false; } - bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->BoundsChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -21902,48 +22064,39 @@ Closures //------------------------------------------------------------------- - __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::GroupBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -21953,25 +22106,18 @@ Closures return false; } - bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -21979,39 +22125,39 @@ Closures //------------------------------------------------------------------- - __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__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) + void __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::GroupBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22021,7 +22167,7 @@ Closures return false; } - bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -22031,7 +22177,7 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::GroupBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -22040,57 +22186,39 @@ Closures //------------------------------------------------------------------- - __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22100,32 +22228,18 @@ Closures return false; } - bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(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>()); return true; } return false; @@ -22133,57 +22247,48 @@ Closures //------------------------------------------------------------------- - __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) + __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::LabelTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::__vwsn::ToString(::vl::__vwsn::This(__vwsn_bind_cache_1)->GetTextColor()))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TextColorChanged, ::vl::Func(this, &__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22193,32 +22298,25 @@ Closures return false; } - bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } if (static_cast(__vwsn_bind_handler_1_0)) { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->TextColorChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::LabelTemplate*>(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>()); return true; } return false; @@ -22226,48 +22324,39 @@ Closures //------------------------------------------------------------------- - __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22277,25 +22366,18 @@ Closures return false; } - bool __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22303,48 +22385,39 @@ Closures //------------------------------------------------------------------- - __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#252526") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#3F3F46")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::LabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22354,25 +22427,18 @@ Closures return false; } - bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::LabelTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22380,48 +22446,39 @@ Closures //------------------------------------------------------------------- - __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22431,25 +22488,18 @@ Closures return false; } - bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22457,48 +22507,39 @@ Closures //------------------------------------------------------------------- - __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetTextColor(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextColorChanged, ::vl::Func(this, &__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22508,25 +22549,18 @@ Closures return false; } - bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextColorChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22534,48 +22568,39 @@ Closures //------------------------------------------------------------------- - __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22585,25 +22610,18 @@ Closures return false; } - bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::ShortcutKeyTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22611,39 +22629,57 @@ Closures //------------------------------------------------------------------- - __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetScrollUpEnabled(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__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) + void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { - if ((! __vwsn_bind_opened_)) - { - (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollUpEnabledChanged, ::vl::Func(this, &__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - return true; - } - return false; + this->__vwsn_bind_activator_(); } - bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + void __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22653,18 +22689,32 @@ Closures return false; } - bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_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)->ScrollUpEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(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>()); return true; } return false; @@ -22672,39 +22722,39 @@ Closures //------------------------------------------------------------------- - __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) + __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetScrollDownEnabled(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__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) + void __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollDownEnabledChanged, ::vl::Func(this, &__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22714,17 +22764,17 @@ Closures return false; } - bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_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)->ScrollDownEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -22733,48 +22783,48 @@ Closures //------------------------------------------------------------------- - __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#004879") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__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) + void __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22784,7 +22834,7 @@ Closures return false; } - bool __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -22799,8 +22849,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -22810,48 +22860,39 @@ Closures //------------------------------------------------------------------- - __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#004879") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ::vl::WString::Unmanaged(L"#A0D0FF")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22861,25 +22902,18 @@ Closures return false; } - bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -22887,39 +22921,57 @@ Closures //------------------------------------------------------------------- - __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__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) + void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22929,18 +22981,32 @@ Closures return false; } - bool __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(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>()); return true; } return false; @@ -22948,39 +23014,57 @@ Closures //------------------------------------------------------------------- - __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSelected()) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__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) + void __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, ::vl::Func(this, &__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -22990,18 +23074,32 @@ Closures return false; } - bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_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)->FontChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SelectedChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonSplitArrowTemplate*>(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>()); return true; } return false; @@ -23009,39 +23107,48 @@ Closures //------------------------------------------------------------------- - __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) + __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetExpandable(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#252526") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#3F3F46")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__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) + void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ExpandableChanged, ::vl::Func(this, &__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23051,18 +23158,25 @@ Closures return false; } - bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_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)->ExpandableChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23070,48 +23184,48 @@ Closures //------------------------------------------------------------------- - __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__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) + void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23121,7 +23235,7 @@ Closures return false; } - bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -23136,8 +23250,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -23147,39 +23261,48 @@ Closures //------------------------------------------------------------------- - __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__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) + void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23189,18 +23312,25 @@ Closures return false; } - bool __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23208,39 +23338,48 @@ Closures //------------------------------------------------------------------- - __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#555558") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#1997EA") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#007ACC") : ::vl::WString::Unmanaged(L"#999999")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__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) + void __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23250,18 +23389,25 @@ Closures return false; } - bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryDropdownButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23269,39 +23415,48 @@ Closures //------------------------------------------------------------------- - __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : (::vl::__vwsn::This(__vwsn_bind_cache_1)->GetFocused() ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__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) + void __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, ::vl::Func(this, &__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23311,18 +23466,25 @@ Closures return false; } - bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->FocusedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23330,48 +23492,39 @@ Closures //------------------------------------------------------------------- - __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetScrollUpEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollUpEnabledChanged, ::vl::Func(this, &__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23381,25 +23534,18 @@ Closures return false; } - bool __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollUpEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23407,57 +23553,39 @@ Closures //------------------------------------------------------------------- - __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetScrollDownEnabled(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGalleryTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollDownEnabledChanged, ::vl::Func(this, &__vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23467,32 +23595,18 @@ Closures return false; } - bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ScrollDownEnabledChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - if (static_cast(__vwsn_bind_handler_2_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); - (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGalleryTemplate*>(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>()); return true; } return false; @@ -23500,39 +23614,48 @@ Closures //------------------------------------------------------------------- - __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#004879") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__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) + void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23542,18 +23665,25 @@ Closures return false; } - bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_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)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23561,39 +23691,48 @@ Closures //------------------------------------------------------------------- - __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#004879") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#A0D0FF") : ::vl::WString::Unmanaged(L"#A0D0FF")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__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) + void __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + void __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23603,18 +23742,25 @@ Closures return false; } - bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonGroupExpandButtonTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; @@ -23622,39 +23768,39 @@ Closures //------------------------------------------------------------------- - __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__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) + void __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23664,17 +23810,17 @@ Closures return false; } - bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_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)->LargeImageChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -23683,39 +23829,39 @@ Closures //------------------------------------------------------------------- - __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__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) + void __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23725,17 +23871,17 @@ Closures return false; } - bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } @@ -23744,48 +23890,48 @@ Closures //------------------------------------------------------------------- - __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#434346") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#6A6A75") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#1C97EA") : ::vl::WString::Unmanaged(L"#54545C")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__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) + void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - void __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23795,7 +23941,7 @@ Closures return false; } - bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() { if ((! __vwsn_bind_closed_)) { @@ -23810,8 +23956,8 @@ Closures ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; @@ -23821,48 +23967,39 @@ Closures //------------------------------------------------------------------- - __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) + __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0) :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); - this->__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); - this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); this->__vwsn_bind_opened_ = false; this->__vwsn_bind_closed_ = false; } - void __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + void __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#F1F1F1") : ((state == ::vl::presentation::controls::ButtonState::Pressed) ? ::vl::WString::Unmanaged(L"#FFFFFF") : ::vl::WString::Unmanaged(L"#F1F1F1")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetExpandable(); ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } - void __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) - { - this->__vwsn_bind_activator_(); - } - - void __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + void __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) { this->__vwsn_bind_activator_(); } - bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + bool __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { if ((! __vwsn_bind_opened_)) { (__vwsn_bind_opened_ = true); - (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); - (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); - (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonGroupTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ExpandableChanged, ::vl::Func(this, &__vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); return true; } return false; } - bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + bool __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() { if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { @@ -23872,128 +24009,1382 @@ Closures return false; } - bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Close() + bool __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ExpandableChanged, __vwsn_bind_handler_0_0); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); } - if (static_cast(__vwsn_bind_handler_1_0)) - { - ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - } - (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); - (__vwsn_bind_cache_1 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonGroupTemplate*>(nullptr)); (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); - (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); return true; } return false; } -} + //------------------------------------------------------------------- -/*********************************************************************** -Class (::darkskin::BottomScrollButtonTemplateConstructor) -***********************************************************************/ + __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } -namespace darkskin -{ - void BottomScrollButtonTemplateConstructor::__vwsn_darkskin_BottomScrollButtonTemplate_Initialize(::darkskin::BottomScrollButtonTemplate* __vwsn_this_) + void __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(9); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); - } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); - } - { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); - } + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; } + return false; + } + + bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc157_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + this->__vwsn_bind_activator_(); + return true; } + return false; } - BottomScrollButtonTemplateConstructor::BottomScrollButtonTemplateConstructor() - : self(static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + bool __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; } -/*********************************************************************** -Class (::darkskin::BottomScrollButtonTemplate) -***********************************************************************/ + //------------------------------------------------------------------- - BottomScrollButtonTemplate::BottomScrollButtonTemplate() + __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::BottomScrollButtonTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_BottomScrollButtonTemplate_Initialize(this); + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; } - BottomScrollButtonTemplate::~BottomScrollButtonTemplate() + void __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); } -/*********************************************************************** -Class (::darkskin::ButtonTemplateConstructor) -***********************************************************************/ + void __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } - void ButtonTemplateConstructor::__vwsn_darkskin_ButtonTemplate_Initialize(::darkskin::ButtonTemplate* __vwsn_this_) + bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() { - (this->self = __vwsn_this_); + if ((! __vwsn_bind_opened_)) { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ImageChanged, ::vl::Func(this, &__vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_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)->ImageChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonIconLabelTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetSelected()) ? ::vl::WString::Unmanaged(L"#00000000") : ::vl::WString::Unmanaged(L"#007ACC")); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, ::vl::Func(this, &__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->SelectedChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>([&](auto state){ return ((! ::vl::__vwsn::This(__vwsn_bind_cache_1)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#00000000") : (((state == ::vl::presentation::controls::ButtonState::Pressed) || ::vl::__vwsn::This(__vwsn_bind_cache_2)->GetSubMenuOpening()) ? ::vl::WString::Unmanaged(L"#007ACC") : ((state == ::vl::presentation::controls::ButtonState::Active) ? ::vl::WString::Unmanaged(L"#54545C") : ::vl::WString::Unmanaged(L"#00000000")))); }(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetState())); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_2 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->StateChanged, ::vl::Func(this, &__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_2_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, ::vl::Func(this, &__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_2_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->StateChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->VisuallyEnabledChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_2_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_2)->SubMenuOpeningChanged, __vwsn_bind_handler_2_0); + (__vwsn_bind_handler_2_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_2 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(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>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->LargeImageChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetLargeImage().Obj())->GetFrameIndex(); } catch(...){ return static_cast<::vl::vint>(0); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->LargeImageChanged, ::vl::Func(this, &__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->LargeImageChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetText(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->TextChanged, ::vl::Func(this, &__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_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)->TextChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::RibbonLargeButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>(((! ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetVisuallyEnabled()) ? ::vl::WString::Unmanaged(L"#6D6D6D") : ::vl::WString::Unmanaged(L"#F1F1F1"))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::darkskin::CheckBoxTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->VisuallyEnabledChanged, ::vl::Func(this, &__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_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)->VisuallyEnabledChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::darkskin::CheckBoxTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + +} + +/*********************************************************************** +Class (::darkskin::BottomScrollButtonTemplateConstructor) +***********************************************************************/ + +namespace darkskin +{ + void BottomScrollButtonTemplateConstructor::__vwsn_darkskin_BottomScrollButtonTemplate_Initialize(::darkskin::BottomScrollButtonTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(9); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc157_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + BottomScrollButtonTemplateConstructor::BottomScrollButtonTemplateConstructor() + : self(static_cast<::darkskin::BottomScrollButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::BottomScrollButtonTemplate) +***********************************************************************/ + + BottomScrollButtonTemplate::BottomScrollButtonTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::BottomScrollButtonTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_BottomScrollButtonTemplate_Initialize(this); + } + + BottomScrollButtonTemplate::~BottomScrollButtonTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::ButtonTemplateConstructor) +***********************************************************************/ + + void ButtonTemplateConstructor::__vwsn_darkskin_ButtonTemplate_Initialize(::darkskin::ButtonTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiFocusRectangleElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(2); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(2); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->container)->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->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc1_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + } + + ButtonTemplateConstructor::ButtonTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , self(static_cast<::darkskin::ButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::ButtonTemplate) +***********************************************************************/ + + ButtonTemplate::ButtonTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ButtonTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ButtonTemplate_Initialize(this); + } + + ButtonTemplate::~ButtonTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::CheckBoxTemplateConstructor) +***********************************************************************/ + + void CheckBoxTemplateConstructor::__vwsn_darkskin_CheckBoxTemplate_Initialize(::darkskin::CheckBoxTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(2)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(17); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(17); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->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__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->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__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(6).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(10); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(3, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(10); __vwsn_temp__.y = static_cast<::vl::vint>(1); return __vwsn_temp__; }()).Set(4, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }()).Set(5, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }())).list))).Ref()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(11); __vwsn_temp__.y = static_cast<::vl::vint>(11); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(2); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = (- static_cast<::vl::vint>(1)); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_11 = ::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiFocusRectangleElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_11)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + } + (this->__vwsn_precompile_12 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(2); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(2); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_13 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_13.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_13.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Left); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_13)); + } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->container)->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->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_12)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf66_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf67_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + } + + CheckBoxTemplateConstructor::CheckBoxTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , self(static_cast<::darkskin::CheckBoxTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_11(::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>()) + , __vwsn_precompile_12(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_13(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::CheckBoxTemplate) +***********************************************************************/ + + CheckBoxTemplate::CheckBoxTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::CheckBoxTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_CheckBoxTemplate_Initialize(this); + } + + CheckBoxTemplate::~CheckBoxTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::ComboBoxTemplateConstructor) +***********************************************************************/ + + void ComboBoxTemplateConstructor::__vwsn_darkskin_ComboBoxTemplate_Initialize(::darkskin::ComboBoxTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetDatePickerTemplate(vl::Func(::vl_workflow_global::__vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + } + { + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + } + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->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__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Left); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetEllipse(true); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + } + { + ::vl::__vwsn::This(this->container)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf87_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf88_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf89_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + } + + ComboBoxTemplateConstructor::ComboBoxTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , self(static_cast<::darkskin::ComboBoxTemplate*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::ComboBoxTemplate) +***********************************************************************/ + + ComboBoxTemplate::ComboBoxTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ComboBoxTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ComboBoxTemplate_Initialize(this); + } + + ComboBoxTemplate::~ComboBoxTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::CustomControlTemplateConstructor) +***********************************************************************/ + + void CustomControlTemplateConstructor::__vwsn_darkskin_CustomControlTemplate_Initialize(::darkskin::CustomControlTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + } + + CustomControlTemplateConstructor::CustomControlTemplateConstructor() + : __vwsn_precompile_0(static_cast<::darkskin::CustomControlTemplate*>(nullptr)) + { + } + +/*********************************************************************** +Class (::darkskin::CustomControlTemplate) +***********************************************************************/ + + CustomControlTemplate::CustomControlTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::CustomControlTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_CustomControlTemplate_Initialize(this); + } + + CustomControlTemplate::~CustomControlTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::CustomFrameWindowTemplateConstructor) +***********************************************************************/ + + void CustomFrameWindowTemplateConstructor::__vwsn_darkskin_CustomFrameWindowTemplate_Initialize(::darkskin::CustomFrameWindowTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetTooltipTemplate(vl::Func(::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + } + { + ::vl::__vwsn::This(this->self)->SetCustomFrameEnabled(true); + } + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); + } { ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } @@ -24008,572 +25399,571 @@ Class (::darkskin::ButtonTemplateConstructor) { ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } + (this->frameTable = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->frameTable)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->frameTable)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiFocusRectangleElement>())); + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeftTop); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(2); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(2); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRightTop); } - (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeftBottom); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRightBottom); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeft); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRight); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); + } + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderTop); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderBottom); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->frameTable)); + } + (this->contentTable = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->contentTable)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->contentTable)->SetRowsAndColumns(static_cast<::vl::vint>(2), static_cast<::vl::vint>(5)); + ::vl::__vwsn::This(this->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(3), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(4), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_11 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_11)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + (this->__vwsn_precompile_12 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + } + (this->__vwsn_precompile_16 = ::vl::__vwsn::This(this->__vwsn_precompile_12)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_16)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAutoFocus(false); + } + (this->__vwsn_precompile_13 = ::vl::__vwsn::This(this->__vwsn_precompile_12)->GetContainerComposition()); + (this->__vwsn_precompile_14 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElement); } + (this->__vwsn_precompile_15 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + ::vl::__vwsn::This(this->__vwsn_precompile_15.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(4).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(15); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(15); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(3, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }())).list))).Ref()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc1_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_15.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc2_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_15)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_13)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_14)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_11)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_12)->GetBoundsComposition())); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_11)); } + (this->__vwsn_precompile_17 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(3), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } - } - - ButtonTemplateConstructor::ButtonTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::ButtonTemplate*>(nullptr)) - , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>()) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ButtonTemplate) -***********************************************************************/ - - ButtonTemplate::ButtonTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ButtonTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ButtonTemplate_Initialize(this); - } - - ButtonTemplate::~ButtonTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::CheckBoxTemplateConstructor) -***********************************************************************/ - - void CheckBoxTemplateConstructor::__vwsn_darkskin_CheckBoxTemplate_Initialize(::darkskin::CheckBoxTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (this->__vwsn_precompile_18 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + (this->__vwsn_precompile_24 = ::vl::__vwsn::This(this->__vwsn_precompile_18)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_24)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAutoFocus(false); } + (this->__vwsn_precompile_19 = ::vl::__vwsn::This(this->__vwsn_precompile_18)->GetContainerComposition()); + (this->__vwsn_precompile_20 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(2)); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(17); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(17); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_20)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_20)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->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__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_20)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElement); } + (this->__vwsn_precompile_21 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_21.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(10).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(3, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(4, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(5, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(6, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(7, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(8, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(9, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }())).list))).Ref()); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->__vwsn_precompile_21.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_20)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_21)); } - (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->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__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_19)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_20)); } + (this->__vwsn_precompile_22 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); + ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElement); } - (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_23 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_23.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(20).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(3, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(4, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(5, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(6, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(7, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(8, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(9, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(10, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(11, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(12, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(13, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(14, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(15, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(16, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(14); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(17, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(18, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Set(19, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }())).list))).Ref()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_23.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_23)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->__vwsn_precompile_19)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_22)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Webdings"); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetText(::vl::WString::Unmanaged(L"a")); + ::vl::__vwsn::This(this->__vwsn_precompile_17)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_18)->GetBoundsComposition())); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); + ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_17)); } + (this->__vwsn_precompile_25 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + ::vl::__vwsn::This(this->__vwsn_precompile_25)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::ButtonClose); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_25)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(4), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } - (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3), static_cast<::vl::vint>(1)); + (this->__vwsn_precompile_26 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } - (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_30 = ::vl::__vwsn::This(this->__vwsn_precompile_26)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(2); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = (- static_cast<::vl::vint>(1)); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_30)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_26)->SetAutoFocus(false); } - (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_27 = ::vl::__vwsn::This(this->__vwsn_precompile_26)->GetContainerComposition()); + (this->__vwsn_precompile_28 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_28)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_28)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_11 = ::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiFocusRectangleElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_11)); + ::vl::__vwsn::This(this->__vwsn_precompile_28)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElement); } + (this->__vwsn_precompile_29 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + ::vl::__vwsn::This(this->__vwsn_precompile_29.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(16).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(11); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(12); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(3, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(16); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(4, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Set(5, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(13); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(6, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(13); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }()).Set(7, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(17); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()).Set(8, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(16); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(9, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(12); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(10, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(11); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }()).Set(11, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(13); return __vwsn_temp__; }()).Set(12, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()).Set(13, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(10); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }()).Set(14, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(10); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(15, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }())).list))).Ref()); } - (this->__vwsn_precompile_12 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(2); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(2); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_29.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(24); __vwsn_temp__.y = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_28)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_29)); } - (this->__vwsn_precompile_13 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_13.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->__vwsn_precompile_27)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_28)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_13.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Left); + ::vl::__vwsn::This(this->__vwsn_precompile_26)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_13)); + ::vl::__vwsn::This(this->__vwsn_precompile_25)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_26)->GetBoundsComposition())); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->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->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_25)); } + (this->__vwsn_precompile_31 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_31)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } + (this->__vwsn_precompile_32 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->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>(2); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_12)); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); } + (this->__vwsn_precompile_33 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); + ::vl::__vwsn::This(this->__vwsn_precompile_33)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Icon); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->__vwsn_precompile_33)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } + (this->__vwsn_precompile_34 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_34.Obj())->SetStretch(true); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_33)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_34)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_32)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_33)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_31)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_32)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf66_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_31)); } + (this->__vwsn_precompile_35 = new ::vl::presentation::compositions::GuiCellComposition()); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf67_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_35)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Title); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_35)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } + (this->__vwsn_precompile_36 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_36)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->__vwsn_precompile_36)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - } - - CheckBoxTemplateConstructor::CheckBoxTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::CheckBoxTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) - , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_11(::vl::Ptr<::vl::presentation::elements::GuiFocusRectangleElement>()) - , __vwsn_precompile_12(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_13(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::CheckBoxTemplate) -***********************************************************************/ - - CheckBoxTemplate::CheckBoxTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::CheckBoxTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_CheckBoxTemplate_Initialize(this); - } - - CheckBoxTemplate::~CheckBoxTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::ComboBoxTemplateConstructor) -***********************************************************************/ - - void ComboBoxTemplateConstructor::__vwsn_darkskin_ComboBoxTemplate_Initialize(::darkskin::ComboBoxTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); + (this->__vwsn_precompile_37 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->self)->SetDatePickerTemplate(LAMBDA(::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_37.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Segoe WP SemiLight"); __vwsn_temp__.size = static_cast<::vl::vint>(14); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_37.Obj())->SetEllipse(true); } { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_36)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_37)); } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->__vwsn_precompile_35)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_36)); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_35)); } + (this->__vwsn_precompile_38 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_38)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Client); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_38)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(5)); } (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->container)->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->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->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__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_38)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_38)); } - (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->contentTable)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetHorizontalAlignment(::vl::presentation::Alignment::Left); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetEllipse(true); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->container)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf87_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc29_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf88_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc30_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf89_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->TitleBarChanged, __vwsn_event_handler_); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->CustomFramePaddingChanged, __vwsn_event_handler_); } } - ComboBoxTemplateConstructor::ComboBoxTemplateConstructor() + CustomFrameWindowTemplateConstructor::CustomFrameWindowTemplateConstructor() : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::ComboBoxTemplate*>(nullptr)) + , self(static_cast<::darkskin::CustomFrameWindowTemplate*>(nullptr)) + , frameTable(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , contentTable(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ComboBoxTemplate) -***********************************************************************/ - - ComboBoxTemplate::ComboBoxTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ComboBoxTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ComboBoxTemplate_Initialize(this); - } - - ComboBoxTemplate::~ComboBoxTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::CustomControlTemplateConstructor) -***********************************************************************/ - - void CustomControlTemplateConstructor::__vwsn_darkskin_CustomControlTemplate_Initialize(::darkskin::CustomControlTemplate* __vwsn_this_) - { - (this->__vwsn_precompile_0 = __vwsn_this_); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - } - - CustomControlTemplateConstructor::CustomControlTemplateConstructor() - : __vwsn_precompile_0(static_cast<::darkskin::CustomControlTemplate*>(nullptr)) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_11(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_12(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_13(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) + , __vwsn_precompile_14(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_15(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + , __vwsn_precompile_16(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_17(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_18(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_19(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) + , __vwsn_precompile_20(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_21(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + , __vwsn_precompile_22(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_23(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + , __vwsn_precompile_24(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_25(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_26(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_27(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(nullptr)) + , __vwsn_precompile_28(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_29(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + , __vwsn_precompile_30(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_31(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_32(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_33(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_34(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_35(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_36(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_37(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_38(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) { } /*********************************************************************** -Class (::darkskin::CustomControlTemplate) +Class (::darkskin::CustomFrameWindowTemplate) ***********************************************************************/ - CustomControlTemplate::CustomControlTemplate() + CustomFrameWindowTemplate::CustomFrameWindowTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::CustomControlTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::CustomFrameWindowTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_CustomControlTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_CustomFrameWindowTemplate_Initialize(this); } - CustomControlTemplate::~CustomControlTemplate() + CustomFrameWindowTemplate::~CustomFrameWindowTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } @@ -24617,13 +26007,13 @@ Class (::darkskin::DateButtonTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -24669,13 +26059,13 @@ Class (::darkskin::DatePickerTemplateConstructor) } (this->look = new ::vl::presentation::templates::GuiCommonDatePickerLook(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30")), ::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFFFF")), ::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#999999")))); { - ::vl::__vwsn::This(this->look)->SetDateTextListTemplate(LAMBDA(::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetDateTextListTemplate(vl::Func(::vl_workflow_global::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetDateButtonTemplate(LAMBDA(::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetDateButtonTemplate(vl::Func(::vl_workflow_global::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetDateComboBoxTemplate(LAMBDA(::vl_workflow_global::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetDateComboBoxTemplate(vl::Func(::vl_workflow_global::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->look)->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__; }()); @@ -24683,29 +26073,29 @@ Class (::darkskin::DatePickerTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->look)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -24811,8 +26201,8 @@ Class (::darkskin::DocumentTextBoxTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -24884,10 +26274,10 @@ Class (::darkskin::DocumentViewerTemplateConstructor) } (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->look)->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__; }()); @@ -24899,8 +26289,8 @@ Class (::darkskin::DocumentViewerTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -25013,34 +26403,34 @@ Class (::darkskin::ExpandingDecoratorTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25148,24 +26538,24 @@ Class (::darkskin::GroupBoxTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->titleBounds)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -25228,8 +26618,8 @@ Class (::darkskin::HScrollHandleTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25314,7 +26704,7 @@ Class (::darkskin::HScrollTemplateConstructor) ::vl::__vwsn::This(this->buttonDecrease)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->buttonDecrease)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->buttonDecrease)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonDecrease)->GetBoundsComposition())); @@ -25343,7 +26733,7 @@ Class (::darkskin::HScrollTemplateConstructor) ::vl::__vwsn::This(this->buttonIncrease)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->buttonIncrease)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->buttonIncrease)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonIncrease)->GetBoundsComposition())); @@ -25370,7 +26760,7 @@ Class (::darkskin::HScrollTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_7)->GetBoundsComposition())); @@ -25382,18 +26772,18 @@ Class (::darkskin::HScrollTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handleContainer)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25516,18 +26906,18 @@ Class (::darkskin::HTrackerTemplateConstructor) { (this->__vwsn_precompile_6 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } - (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }())); } + (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }())); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition())); @@ -25539,13 +26929,13 @@ Class (::darkskin::HTrackerTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25614,8 +27004,8 @@ Class (::darkskin::ItemBackgroundTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -25665,18 +27055,18 @@ Class (::darkskin::LabelTemplateConstructor) ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25751,13 +27141,13 @@ Class (::darkskin::LeftScrollButtonTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -25795,7 +27185,7 @@ Class (::darkskin::ListViewColumnHeaderTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -25954,7 +27344,7 @@ Class (::darkskin::ListViewColumnHeaderTemplateConstructor) ::vl::__vwsn::This(this->buttonArrow)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_13)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition())); @@ -25962,64 +27352,64 @@ Class (::darkskin::ListViewColumnHeaderTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_13)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf105_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf106_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc46_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf107_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf108_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc48_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf109_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf110_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -26080,10 +27470,10 @@ Class (::darkskin::ListViewTemplateConstructor) ::vl::__vwsn::This(this->self)->SetItemSeparatorColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#F1F1F1"))); } { - ::vl::__vwsn::This(this->self)->SetColumnHeaderTemplate(LAMBDA(::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetColumnHeaderTemplate(vl::Func(::vl_workflow_global::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(LAMBDA(::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(vl::Func(::vl_workflow_global::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -26117,10 +27507,10 @@ Class (::darkskin::ListViewTemplateConstructor) } (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->look)->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__; }()); @@ -26132,8 +27522,8 @@ Class (::darkskin::ListViewTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -26181,7 +27571,7 @@ Class (::darkskin::MenuBarButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -26210,24 +27600,24 @@ Class (::darkskin::MenuBarButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -26265,7 +27655,7 @@ Class (::darkskin::MenuItemButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -26390,69 +27780,69 @@ Class (::darkskin::MenuItemButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc200_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf321_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc201_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf322_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc202_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf323_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc203_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf324_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc204_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf325_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc205_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf326_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc207_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -26594,10 +27984,10 @@ Class (::darkskin::MultilineTextBoxTemplateConstructor) } (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->look)->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__; }()); @@ -26609,8 +27999,8 @@ Class (::darkskin::MultilineTextBoxTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -26706,8 +28096,8 @@ Class (::darkskin::ProgressBarTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -26890,44 +28280,44 @@ Class (::darkskin::RadioButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc19_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -27066,18 +28456,18 @@ Class (::darkskin::RibbonGalleryDropdownButtonTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -27117,7 +28507,7 @@ Class (::darkskin::RibbonGalleryItemListTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(LAMBDA(::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(vl::Func(::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(this))); } } @@ -27151,19 +28541,19 @@ Class (::darkskin::RibbonGalleryTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetGroupContainerTemplate(LAMBDA(::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetGroupContainerTemplate(vl::Func(::vl_workflow_global::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(LAMBDA(::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(vl::Func(::vl_workflow_global::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetHeaderTemplate(LAMBDA(::vl_workflow_global::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetHeaderTemplate(vl::Func(::vl_workflow_global::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetItemListTemplate(LAMBDA(::vl_workflow_global::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetItemListTemplate(vl::Func(::vl_workflow_global::__vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -27229,7 +28619,7 @@ Class (::darkskin::RibbonGalleryTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_4)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_5)->GetBoundsComposition())); @@ -27252,7 +28642,7 @@ Class (::darkskin::RibbonGalleryTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_7)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_8)->GetBoundsComposition())); @@ -27275,7 +28665,7 @@ Class (::darkskin::RibbonGalleryTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_11)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_11)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_11)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_10)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_11)->GetBoundsComposition())); @@ -27287,30 +28677,30 @@ Class (::darkskin::RibbonGalleryTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->__vwsn_precompile_5)->Clicked, __vwsn_event_handler_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->__vwsn_precompile_8)->Clicked, __vwsn_event_handler_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->__vwsn_precompile_11)->Clicked, __vwsn_event_handler_); } { @@ -27385,13 +28775,13 @@ Class (::darkskin::RibbonGroupExpandButtonTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -27495,7 +28885,7 @@ Class (::darkskin::RibbonGroupTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -27539,10 +28929,10 @@ Class (::darkskin::RibbonGroupTemplateConstructor) } (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); } { ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); @@ -27588,7 +28978,7 @@ Class (::darkskin::RibbonGroupTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition())); @@ -27603,29 +28993,29 @@ Class (::darkskin::RibbonGroupTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->table)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->__vwsn_precompile_6)->Clicked, __vwsn_event_handler_); } { ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->CollapsedChanged, __vwsn_event_handler_); } } @@ -27716,18 +29106,18 @@ Class (::darkskin::RibbonIconLabelTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -27769,7 +29159,7 @@ Class (::darkskin::RibbonLargeButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -27860,44 +29250,44 @@ Class (::darkskin::RibbonLargeButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf191_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -27945,7 +29335,7 @@ Class (::darkskin::RibbonLargeDropdownButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -28080,54 +29470,54 @@ Class (::darkskin::RibbonLargeDropdownButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc105_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf200_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc106_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf201_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf202_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc110_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -28179,7 +29569,7 @@ Class (::darkskin::RibbonLargeSplitButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -28269,7 +29659,7 @@ Class (::darkskin::RibbonLargeSplitButtonTemplateConstructor) ::vl::__vwsn::This(this->buttonArrow)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_6)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition())); @@ -28280,44 +29670,44 @@ Class (::darkskin::RibbonLargeSplitButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf211_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc115_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf212_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -28370,7 +29760,7 @@ Class (::darkskin::RibbonSmallButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -28450,44 +29840,44 @@ Class (::darkskin::RibbonSmallButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc123_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf221_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -28534,7 +29924,7 @@ Class (::darkskin::RibbonSmallDropdownButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -28657,59 +30047,59 @@ Class (::darkskin::RibbonSmallDropdownButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc131_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf230_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc132_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf231_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf232_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf233_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc136_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc137_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -28836,34 +30226,34 @@ Class (::darkskin::RibbonSmallIconLabelTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -28908,7 +30298,7 @@ Class (::darkskin::RibbonSmallSplitButtonTemplateConstructor) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -29020,7 +30410,7 @@ Class (::darkskin::RibbonSmallSplitButtonTemplateConstructor) ::vl::__vwsn::This(this->buttonArrow)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition())); @@ -29028,54 +30418,54 @@ Class (::darkskin::RibbonSmallSplitButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf248_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc148_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf249_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc149_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf250_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf251_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -29200,34 +30590,34 @@ Class (::darkskin::RibbonSplitArrowTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -29295,13 +30685,13 @@ Class (::darkskin::RibbonToolstripHeaderTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -29338,7 +30728,7 @@ Class (::darkskin::RibbonToolstripMenuTemplateConstructor) { (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetSizeBoxOption(::vl::presentation::templates::BoolOption::AlwaysTrue); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetSizeBoxOption(::vl::presentation::BoolOption::AlwaysTrue); } { ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -29585,13 +30975,13 @@ Class (::darkskin::RightScrollButtonTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -29657,10 +31047,10 @@ Class (::darkskin::ScrollViewTemplateConstructor) } (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->look)->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__; }()); @@ -29760,18 +31150,18 @@ Class (::darkskin::ShortcutKeyTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -29844,8 +31234,8 @@ Class (::darkskin::SinglelineTextBoxTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -29865,15 +31255,74 @@ Class (::darkskin::SinglelineTextBoxTemplateConstructor) Class (::darkskin::SinglelineTextBoxTemplate) ***********************************************************************/ - SinglelineTextBoxTemplate::SinglelineTextBoxTemplate() + SinglelineTextBoxTemplate::SinglelineTextBoxTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::SinglelineTextBoxTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_SinglelineTextBoxTemplate_Initialize(this); + } + + SinglelineTextBoxTemplate::~SinglelineTextBoxTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::SystemFrameWindowTemplateConstructor) +***********************************************************************/ + + void SystemFrameWindowTemplateConstructor::__vwsn_darkskin_SystemFrameWindowTemplate_Initialize(::darkskin::SystemFrameWindowTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetCustomFrameEnabled(false); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->container)->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->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + } + } + + SystemFrameWindowTemplateConstructor::SystemFrameWindowTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_0(static_cast<::darkskin::SystemFrameWindowTemplate*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::SystemFrameWindowTemplate) +***********************************************************************/ + + SystemFrameWindowTemplate::SystemFrameWindowTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::SinglelineTextBoxTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::SystemFrameWindowTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_SinglelineTextBoxTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_SystemFrameWindowTemplate_Initialize(this); } - SinglelineTextBoxTemplate::~SinglelineTextBoxTemplate() + SystemFrameWindowTemplate::~SystemFrameWindowTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } @@ -29926,39 +31375,39 @@ Class (::darkskin::TabHeaderButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } @@ -30043,31 +31492,31 @@ Class (::darkskin::TabHeaderTemplateConstructor) ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_0)->GetBoundsComposition())); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContext(::vl::__vwsn::Box(this->CurrentTabPage)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->__vwsn_precompile_0)->Clicked, __vwsn_event_handler_); } } @@ -30174,7 +31623,7 @@ Class (::darkskin::TabTemplateConstructor) } (this->header = new ::vl::presentation::compositions::GuiRepeatFlowComposition()); { - ::vl::__vwsn::This(this->header)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->header)->SetItemTemplate(vl::Func(::vl_workflow_global::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->header)->SetExtraMargin([&](){ ::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>(0); return __vwsn_temp__; }()); @@ -30230,29 +31679,29 @@ Class (::darkskin::TabTemplateConstructor) ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->header)->ItemInserted, __vwsn_event_handler_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->header)->ItemRemoved, __vwsn_event_handler_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { @@ -30262,7 +31711,7 @@ Class (::darkskin::TabTemplateConstructor) ::vl::__vwsn::This(this->self)->SetAfterHeadersContainer(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->afterHeadersContainer)); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); + auto __vwsn_event_handler_ = vl::Func(::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(this)); ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->SelectedTabPageChanged, __vwsn_event_handler_); } } @@ -30327,777 +31776,332 @@ Class (::darkskin::TabTemplate) TabTemplate::TabTemplate() : __vwsn_prop_Highlighted(false) { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TabTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_TabTemplate_Initialize(this); - } - - TabTemplate::~TabTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::TextListTemplateConstructor) -***********************************************************************/ - - void TextListTemplateConstructor::__vwsn_darkskin_TextListTemplate_Initialize(::darkskin::TextListTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetRadioBulletTemplate(LAMBDA(::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->self)->SetCheckBulletTemplate(LAMBDA(::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->self)->SetTextColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#F1F1F1"))); - } - { - ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(LAMBDA(::vl_workflow_global::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#252526"))); - } - { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); - } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); - } - (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); - { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->look)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->look)); - } - { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); - } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } - { - ::vl::__vwsn::This(this->self)->SetContainerComposition(::vl::__vwsn::This(this->look)->GetContainerComposition()); - } - { - ::vl::__vwsn::This(this->self)->SetHorizontalScroll(::vl::__vwsn::This(this->look)->GetHScroll()); - } - { - ::vl::__vwsn::This(this->self)->SetVerticalScroll(::vl::__vwsn::This(this->look)->GetVScroll()); - } - } - - TextListTemplateConstructor::TextListTemplateConstructor() - : self(static_cast<::darkskin::TextListTemplate*>(nullptr)) - , look(static_cast<::vl::presentation::templates::GuiCommonScrollViewLook*>(nullptr)) - , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::TextListTemplate) -***********************************************************************/ - - TextListTemplate::TextListTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TextListTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_TextListTemplate_Initialize(this); - } - - TextListTemplate::~TextListTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::ThemeConstructor) -***********************************************************************/ - - void ThemeConstructor::__vwsn_darkskin_Theme_Initialize(::darkskin::Theme* __vwsn_this_) - { - (this->__vwsn_precompile_0 = __vwsn_this_); - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstripMenu = LAMBDA(::vl_workflow_global::__vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGalleryItemList = LAMBDA(::vl_workflow_global::__vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGalleryList = LAMBDA(::vl_workflow_global::__vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGallery = LAMBDA(::vl_workflow_global::__vwsnf4_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstripHeader = LAMBDA(::vl_workflow_global::__vwsnf5_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstrips = LAMBDA(::vl_workflow_global::__vwsnf6_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonButtons = LAMBDA(::vl_workflow_global::__vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonIconLabel = LAMBDA(::vl_workflow_global::__vwsnf8_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallIconLabel = LAMBDA(::vl_workflow_global::__vwsnf9_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSplitter = LAMBDA(::vl_workflow_global::__vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGroup = LAMBDA(::vl_workflow_global::__vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeSplitButton = LAMBDA(::vl_workflow_global::__vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeDropdownButton = LAMBDA(::vl_workflow_global::__vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeButton = LAMBDA(::vl_workflow_global::__vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallSplitButton = LAMBDA(::vl_workflow_global::__vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallDropdownButton = LAMBDA(::vl_workflow_global::__vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallButton = LAMBDA(::vl_workflow_global::__vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonTab = LAMBDA(::vl_workflow_global::__vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ProgressBar = LAMBDA(::vl_workflow_global::__vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->VTracker = LAMBDA(::vl_workflow_global::__vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->HTracker = LAMBDA(::vl_workflow_global::__vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->VScroll = LAMBDA(::vl_workflow_global::__vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->HScroll = LAMBDA(::vl_workflow_global::__vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->DateComboBox = LAMBDA(::vl_workflow_global::__vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->DatePicker = LAMBDA(::vl_workflow_global::__vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->RadioButton = LAMBDA(::vl_workflow_global::__vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->CheckBox = LAMBDA(::vl_workflow_global::__vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Button = LAMBDA(::vl_workflow_global::__vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripSplitter = LAMBDA(::vl_workflow_global::__vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripSplitButton = LAMBDA(::vl_workflow_global::__vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripDropdownButton = LAMBDA(::vl_workflow_global::__vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripButton = LAMBDA(::vl_workflow_global::__vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripToolBar = LAMBDA(::vl_workflow_global::__vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuItemButton = LAMBDA(::vl_workflow_global::__vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuBarButton = LAMBDA(::vl_workflow_global::__vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuSplitter = LAMBDA(::vl_workflow_global::__vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuBar = LAMBDA(::vl_workflow_global::__vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Menu = LAMBDA(::vl_workflow_global::__vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->TextList = LAMBDA(::vl_workflow_global::__vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->TreeView = LAMBDA(::vl_workflow_global::__vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ListView = LAMBDA(::vl_workflow_global::__vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentTextBox = LAMBDA(::vl_workflow_global::__vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentLabel = LAMBDA(::vl_workflow_global::__vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentViewer = LAMBDA(::vl_workflow_global::__vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->SinglelineTextBox = LAMBDA(::vl_workflow_global::__vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->MultilineTextBox = LAMBDA(::vl_workflow_global::__vwsnf46_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ComboBox = LAMBDA(::vl_workflow_global::__vwsnf47_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Tab = LAMBDA(::vl_workflow_global::__vwsnf48_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->GroupBox = LAMBDA(::vl_workflow_global::__vwsnf49_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ScrollView = LAMBDA(::vl_workflow_global::__vwsnf50_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->ShortcutKey = LAMBDA(::vl_workflow_global::__vwsnf51_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Label = LAMBDA(::vl_workflow_global::__vwsnf52_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Tooltip = LAMBDA(::vl_workflow_global::__vwsnf53_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->CustomControl = LAMBDA(::vl_workflow_global::__vwsnf54_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Window = LAMBDA(::vl_workflow_global::__vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); - } - { - (::vl::__vwsn::This(this->__vwsn_precompile_0)->Name = ::vl::WString::Unmanaged(L"DarkSkin")); - } - } - - ThemeConstructor::ThemeConstructor() - : __vwsn_precompile_0(static_cast<::darkskin::Theme*>(nullptr)) - { - } - -/*********************************************************************** -Class (::darkskin::Theme) -***********************************************************************/ - - Theme::Theme() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::Theme")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TabTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_Theme_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_TabTemplate_Initialize(this); } - Theme::~Theme() + TabTemplate::~TabTemplate() { - this->FinalizeGeneralInstance(static_cast<::vl::presentation::controls::GuiInstanceRootObject*>(this)); + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::ToolstripButtonTemplateConstructor) +Class (::darkskin::TextListTemplateConstructor) ***********************************************************************/ - void ToolstripButtonTemplateConstructor::__vwsn_darkskin_ToolstripButtonTemplate_Initialize(::darkskin::ToolstripButtonTemplate* __vwsn_this_) + void TextListTemplateConstructor::__vwsn_darkskin_TextListTemplate_Initialize(::darkskin::TextListTemplate* __vwsn_this_) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetRadioBulletTemplate(vl::Func(::vl_workflow_global::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->self)->SetCheckBulletTemplate(vl::Func(::vl_workflow_global::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->self)->SetTextColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#F1F1F1"))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(vl::Func(::vl_workflow_global::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#252526"))); } - (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } - (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->look)->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__; }()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->look)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->SetContainerComposition(::vl::__vwsn::This(this->look)->GetContainerComposition()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->SetHorizontalScroll(::vl::__vwsn::This(this->look)->GetHScroll()); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->self)->SetVerticalScroll(::vl::__vwsn::This(this->look)->GetVScroll()); } } - ToolstripButtonTemplateConstructor::ToolstripButtonTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + TextListTemplateConstructor::TextListTemplateConstructor() + : self(static_cast<::darkskin::TextListTemplate*>(nullptr)) + , look(static_cast<::vl::presentation::templates::GuiCommonScrollViewLook*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) { } /*********************************************************************** -Class (::darkskin::ToolstripButtonTemplate) +Class (::darkskin::TextListTemplate) ***********************************************************************/ - ToolstripButtonTemplate::ToolstripButtonTemplate() + TextListTemplate::TextListTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripButtonTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TextListTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripButtonTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_TextListTemplate_Initialize(this); } - ToolstripButtonTemplate::~ToolstripButtonTemplate() + TextListTemplate::~TextListTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::ToolstripDropdownButtonTemplateConstructor) +Class (::darkskin::ThemeConstructor) ***********************************************************************/ - void ToolstripDropdownButtonTemplateConstructor::__vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize(::darkskin::ToolstripDropdownButtonTemplate* __vwsn_this_) + void ThemeConstructor::__vwsn_darkskin_Theme_Initialize(::darkskin::Theme* __vwsn_this_) { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - } + (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstripMenu = vl::Func(::vl_workflow_global::__vwsnf1_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGalleryItemList = vl::Func(::vl_workflow_global::__vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGalleryList = vl::Func(::vl_workflow_global::__vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGallery = vl::Func(::vl_workflow_global::__vwsnf4_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstripHeader = vl::Func(::vl_workflow_global::__vwsnf5_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonToolstrips = vl::Func(::vl_workflow_global::__vwsnf6_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonButtons = vl::Func(::vl_workflow_global::__vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonIconLabel = vl::Func(::vl_workflow_global::__vwsnf8_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallIconLabel = vl::Func(::vl_workflow_global::__vwsnf9_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSplitter = vl::Func(::vl_workflow_global::__vwsnf10_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); { - ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonGroup = vl::Func(::vl_workflow_global::__vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeSplitButton = vl::Func(::vl_workflow_global::__vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeDropdownButton = vl::Func(::vl_workflow_global::__vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonLargeButton = vl::Func(::vl_workflow_global::__vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallSplitButton = vl::Func(::vl_workflow_global::__vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallDropdownButton = vl::Func(::vl_workflow_global::__vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonSmallButton = vl::Func(::vl_workflow_global::__vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RibbonTab = vl::Func(::vl_workflow_global::__vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ProgressBar = vl::Func(::vl_workflow_global::__vwsnf19_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->VTracker = vl::Func(::vl_workflow_global::__vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->HTracker = vl::Func(::vl_workflow_global::__vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->VScroll = vl::Func(::vl_workflow_global::__vwsnf22_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->HScroll = vl::Func(::vl_workflow_global::__vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->DateComboBox = vl::Func(::vl_workflow_global::__vwsnf24_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->DatePicker = vl::Func(::vl_workflow_global::__vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->RadioButton = vl::Func(::vl_workflow_global::__vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->CheckBox = vl::Func(::vl_workflow_global::__vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Button = vl::Func(::vl_workflow_global::__vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc221_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripSplitter = vl::Func(::vl_workflow_global::__vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripSplitButton = vl::Func(::vl_workflow_global::__vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripDropdownButton = vl::Func(::vl_workflow_global::__vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc224_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripButton = vl::Func(::vl_workflow_global::__vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ToolstripToolBar = vl::Func(::vl_workflow_global::__vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - } - - ToolstripDropdownButtonTemplateConstructor::ToolstripDropdownButtonTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ToolstripDropdownButtonTemplate) -***********************************************************************/ - - ToolstripDropdownButtonTemplate::ToolstripDropdownButtonTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripDropdownButtonTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize(this); - } - - ToolstripDropdownButtonTemplate::~ToolstripDropdownButtonTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::ToolstripMenuTemplateConstructor) -***********************************************************************/ - - void ToolstripMenuTemplateConstructor::__vwsn_darkskin_ToolstripMenuTemplate_Initialize(::darkskin::ToolstripMenuTemplate* __vwsn_this_) - { - (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuItemButton = vl::Func(::vl_workflow_global::__vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#1B1B1C"))); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuBarButton = vl::Func(::vl_workflow_global::__vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuSplitter = vl::Func(::vl_workflow_global::__vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->MenuBar = vl::Func(::vl_workflow_global::__vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Menu = vl::Func(::vl_workflow_global::__vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->TextList = vl::Func(::vl_workflow_global::__vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#333337"))); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->TreeView = vl::Func(::vl_workflow_global::__vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ListView = vl::Func(::vl_workflow_global::__vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentTextBox = vl::Func(::vl_workflow_global::__vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentLabel = vl::Func(::vl_workflow_global::__vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - } - - ToolstripMenuTemplateConstructor::ToolstripMenuTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_0(static_cast<::darkskin::ToolstripMenuTemplate*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ToolstripMenuTemplate) -***********************************************************************/ - - ToolstripMenuTemplate::ToolstripMenuTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripMenuTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripMenuTemplate_Initialize(this); - } - - ToolstripMenuTemplate::~ToolstripMenuTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::ToolstripSplitArrowTemplateConstructor) -***********************************************************************/ - - void ToolstripSplitArrowTemplateConstructor::__vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize(::darkskin::ToolstripSplitArrowTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->DocumentViewer = vl::Func(::vl_workflow_global::__vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->SinglelineTextBox = vl::Func(::vl_workflow_global::__vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->MultilineTextBox = vl::Func(::vl_workflow_global::__vwsnf46_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ComboBox = vl::Func(::vl_workflow_global::__vwsnf47_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Tab = vl::Func(::vl_workflow_global::__vwsnf48_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->GroupBox = vl::Func(::vl_workflow_global::__vwsnf49_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ScrollView = vl::Func(::vl_workflow_global::__vwsnf50_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->ShortcutKey = vl::Func(::vl_workflow_global::__vwsnf51_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Label = vl::Func(::vl_workflow_global::__vwsnf52_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Tooltip = vl::Func(::vl_workflow_global::__vwsnf53_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->CustomControl = vl::Func(::vl_workflow_global::__vwsnf54_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->CustomFrameWindow = vl::Func(::vl_workflow_global::__vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->SystemFrameWindow = vl::Func(::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->PreferCustomFrameWindow = ::vl::Nullable(true)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc211_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (::vl::__vwsn::This(this->__vwsn_precompile_0)->Name = ::vl::WString::Unmanaged(L"DarkSkin")); } } - ToolstripSplitArrowTemplateConstructor::ToolstripSplitArrowTemplateConstructor() - : self(static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + ThemeConstructor::ThemeConstructor() + : __vwsn_precompile_0(static_cast<::darkskin::Theme*>(nullptr)) { } /*********************************************************************** -Class (::darkskin::ToolstripSplitArrowTemplate) +Class (::darkskin::Theme) ***********************************************************************/ - ToolstripSplitArrowTemplate::ToolstripSplitArrowTemplate() + Theme::Theme() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitArrowTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::Theme")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_Theme_Initialize(this); } - ToolstripSplitArrowTemplate::~ToolstripSplitArrowTemplate() + Theme::~Theme() { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + this->FinalizeGeneralInstance(static_cast<::vl::presentation::controls::GuiInstanceRootObject*>(this)); } /*********************************************************************** -Class (::darkskin::ToolstripSplitButtonTemplateConstructor) +Class (::darkskin::ToolstripButtonTemplateConstructor) ***********************************************************************/ - void ToolstripSplitButtonTemplateConstructor::__vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize(::darkskin::ToolstripSplitButtonTemplate* __vwsn_this_) + void ToolstripButtonTemplateConstructor::__vwsn_darkskin_ToolstripButtonTemplate_Initialize(::darkskin::ToolstripButtonTemplate* __vwsn_this_) { (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(LAMBDA(::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -31118,7 +32122,7 @@ Class (::darkskin::ToolstripSplitButtonTemplateConstructor) } (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); @@ -31144,1339 +32148,1323 @@ Class (::darkskin::ToolstripSplitButtonTemplateConstructor) { ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); - } - { - (this->buttonArrow = new ::vl::presentation::controls::GuiSelectableButton(::vl::presentation::theme::ThemeName::CheckBox)); - } - (this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->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->buttonArrow)->SetAutoFocus(false); - } - { - ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition())); - } - { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); - } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } - { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); - } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } - { - ::vl::__vwsn::This(this->self)->SetSubMenuHost(static_cast<::vl::presentation::controls::GuiButton*>(this->buttonArrow)); - } } - ToolstripSplitButtonTemplateConstructor::ToolstripSplitButtonTemplateConstructor() + ToolstripButtonTemplateConstructor::ToolstripButtonTemplateConstructor() : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)) - , buttonArrow(static_cast<::vl::presentation::controls::GuiSelectableButton*>(nullptr)) + , self(static_cast<::darkskin::ToolstripButtonTemplate*>(nullptr)) , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) { } /*********************************************************************** -Class (::darkskin::ToolstripSplitButtonTemplate) +Class (::darkskin::ToolstripButtonTemplate) ***********************************************************************/ - ToolstripSplitButtonTemplate::ToolstripSplitButtonTemplate() + ToolstripButtonTemplate::ToolstripButtonTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitButtonTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripButtonTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripButtonTemplate_Initialize(this); } - ToolstripSplitButtonTemplate::~ToolstripSplitButtonTemplate() + ToolstripButtonTemplate::~ToolstripButtonTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::ToolstripSplitterTemplateConstructor) +Class (::darkskin::ToolstripDropdownButtonTemplateConstructor) ***********************************************************************/ - void ToolstripSplitterTemplateConstructor::__vwsn_darkskin_ToolstripSplitterTemplate_Initialize(::darkskin::ToolstripSplitterTemplate* __vwsn_this_) + void ToolstripDropdownButtonTemplateConstructor::__vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize(::darkskin::ToolstripDropdownButtonTemplate* __vwsn_this_) { - (this->__vwsn_precompile_0 = __vwsn_this_); + (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::Gui3DSplitterElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::Gui3DSplitterElement>())); + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor2(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#464648"))); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#222224"))); + ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetDirection(::vl::presentation::elements::Gui3DSplitterElement::Direction::Vertical); + ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } - } - - ToolstripSplitterTemplateConstructor::ToolstripSplitterTemplateConstructor() - : __vwsn_precompile_0(static_cast<::darkskin::ToolstripSplitterTemplate*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::Gui3DSplitterElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ToolstripSplitterTemplate) -***********************************************************************/ - - ToolstripSplitterTemplate::ToolstripSplitterTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitterTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitterTemplate_Initialize(this); - } - - ToolstripSplitterTemplate::~ToolstripSplitterTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::ToolstripTemplateConstructor) -***********************************************************************/ - - void ToolstripTemplateConstructor::__vwsn_darkskin_ToolstripTemplate_Initialize(::darkskin::ToolstripTemplate* __vwsn_this_) - { - (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetInternalMargin([&](){ ::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__; }()); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - } - - ToolstripTemplateConstructor::ToolstripTemplateConstructor() - : __vwsn_precompile_0(static_cast<::darkskin::ToolstripTemplate*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::ToolstripTemplate) -***********************************************************************/ - - ToolstripTemplate::ToolstripTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripTemplate_Initialize(this); - } - - ToolstripTemplate::~ToolstripTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::TooltipTemplateConstructor) -***********************************************************************/ - - void TooltipTemplateConstructor::__vwsn_darkskin_TooltipTemplate_Initialize(::darkskin::TooltipTemplate* __vwsn_this_) - { - (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } - (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#017ACC"))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf344_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc221_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc224_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } } - TooltipTemplateConstructor::TooltipTemplateConstructor() + ToolstripDropdownButtonTemplateConstructor::ToolstripDropdownButtonTemplateConstructor() : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_0(static_cast<::darkskin::TooltipTemplate*>(nullptr)) - , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , self(static_cast<::darkskin::ToolstripDropdownButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) { } /*********************************************************************** -Class (::darkskin::TooltipTemplate) +Class (::darkskin::ToolstripDropdownButtonTemplate) ***********************************************************************/ - TooltipTemplate::TooltipTemplate() + ToolstripDropdownButtonTemplate::ToolstripDropdownButtonTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TooltipTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripDropdownButtonTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_TooltipTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize(this); } - TooltipTemplate::~TooltipTemplate() + ToolstripDropdownButtonTemplate::~ToolstripDropdownButtonTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::TopScrollButtonTemplateConstructor) +Class (::darkskin::ToolstripMenuTemplateConstructor) ***********************************************************************/ - void TopScrollButtonTemplateConstructor::__vwsn_darkskin_TopScrollButtonTemplate_Initialize(::darkskin::TopScrollButtonTemplate* __vwsn_this_) + void ToolstripMenuTemplateConstructor::__vwsn_darkskin_ToolstripMenuTemplate_Initialize(::darkskin::ToolstripMenuTemplate* __vwsn_this_) { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } + (this->__vwsn_precompile_0 = __vwsn_this_); { ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(9); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#1B1B1C"))); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }())).list))).Ref()); + ::vl::__vwsn::This(this->container)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#333337"))); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } } - TopScrollButtonTemplateConstructor::TopScrollButtonTemplateConstructor() - : self(static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + ToolstripMenuTemplateConstructor::ToolstripMenuTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_0(static_cast<::darkskin::ToolstripMenuTemplate*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) { } /*********************************************************************** -Class (::darkskin::TopScrollButtonTemplate) +Class (::darkskin::ToolstripMenuTemplate) ***********************************************************************/ - TopScrollButtonTemplate::TopScrollButtonTemplate() + ToolstripMenuTemplate::ToolstripMenuTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TopScrollButtonTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripMenuTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_TopScrollButtonTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripMenuTemplate_Initialize(this); } - TopScrollButtonTemplate::~TopScrollButtonTemplate() + ToolstripMenuTemplate::~ToolstripMenuTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::TreeViewTemplateConstructor) +Class (::darkskin::ToolstripSplitArrowTemplateConstructor) ***********************************************************************/ - void TreeViewTemplateConstructor::__vwsn_darkskin_TreeViewTemplate_Initialize(::darkskin::TreeViewTemplate* __vwsn_this_) + void ToolstripSplitArrowTemplateConstructor::__vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize(::darkskin::ToolstripSplitArrowTemplate* __vwsn_this_) { (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetExpandingDecoratorTemplate(LAMBDA(::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->self)->SetTextColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#F1F1F1"))); - } - { - ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(LAMBDA(::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); - } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#252526"))); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } - (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->look)->SetVScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list))).Ref()); } { - ::vl::__vwsn::This(this->look)->SetHScrollTemplate(LAMBDA(::vl_workflow_global::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->look)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->look)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(::vl::__vwsn::This(this->look)->GetContainerComposition()); - } - { - ::vl::__vwsn::This(this->self)->SetHorizontalScroll(::vl::__vwsn::This(this->look)->GetHScroll()); - } - { - ::vl::__vwsn::This(this->self)->SetVerticalScroll(::vl::__vwsn::This(this->look)->GetVScroll()); - } - } - - TreeViewTemplateConstructor::TreeViewTemplateConstructor() - : self(static_cast<::darkskin::TreeViewTemplate*>(nullptr)) - , look(static_cast<::vl::presentation::templates::GuiCommonScrollViewLook*>(nullptr)) - , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - { - } - -/*********************************************************************** -Class (::darkskin::TreeViewTemplate) -***********************************************************************/ - - TreeViewTemplate::TreeViewTemplate() - { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TreeViewTemplate")); - auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); - ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_TreeViewTemplate_Initialize(this); - } - - TreeViewTemplate::~TreeViewTemplate() - { - this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); - } - -/*********************************************************************** -Class (::darkskin::VScrollHandleTemplateConstructor) -***********************************************************************/ - - void VScrollHandleTemplateConstructor::__vwsn_darkskin_VScrollHandleTemplate_Initialize(::darkskin::VScrollHandleTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); - } - { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc211_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } - VScrollHandleTemplateConstructor::VScrollHandleTemplateConstructor() - : self(static_cast<::darkskin::VScrollHandleTemplate*>(nullptr)) - , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + ToolstripSplitArrowTemplateConstructor::ToolstripSplitArrowTemplateConstructor() + : self(static_cast<::darkskin::ToolstripSplitArrowTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) { } /*********************************************************************** -Class (::darkskin::VScrollHandleTemplate) +Class (::darkskin::ToolstripSplitArrowTemplate) ***********************************************************************/ - VScrollHandleTemplate::VScrollHandleTemplate() + ToolstripSplitArrowTemplate::ToolstripSplitArrowTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VScrollHandleTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitArrowTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_VScrollHandleTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize(this); } - VScrollHandleTemplate::~VScrollHandleTemplate() + ToolstripSplitArrowTemplate::~ToolstripSplitArrowTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } - -/*********************************************************************** -Class (::darkskin::VScrollTemplateConstructor) -***********************************************************************/ - - void VScrollTemplateConstructor::__vwsn_darkskin_VScrollTemplate_Initialize(::darkskin::VScrollTemplate* __vwsn_this_) - { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->behavior = new ::vl::presentation::templates::GuiCommonScrollBehavior()); - { - ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->behavior)); - } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#3D3D42"))); - } + +/*********************************************************************** +Class (::darkskin::ToolstripSplitButtonTemplateConstructor) +***********************************************************************/ + + void ToolstripSplitButtonTemplateConstructor::__vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize(::darkskin::ToolstripSplitButtonTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->self)->SetSubMenuTemplate(vl::Func(::vl_workflow_global::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiSideAlignedComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMaxRatio(static_cast(0.5)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMaxLength(static_cast<::vl::vint>(20)); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(11); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetDirection(::vl::presentation::compositions::GuiSideAlignedComposition::Direction::Top); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - (this->buttonDecrease = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); } - (this->__vwsn_precompile_4 = ::vl::__vwsn::This(this->buttonDecrease)->GetBoundsComposition()); + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->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->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(3); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(3); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->buttonDecrease)->SetAutoFocus(false); + ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); { - ::vl::__vwsn::This(this->buttonDecrease)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->container)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonDecrease)->GetBoundsComposition())); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiSideAlignedComposition()); + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMaxRatio(static_cast(0.5)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = (- static_cast<::vl::vint>(1)); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMaxLength(static_cast<::vl::vint>(20)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetDirection(::vl::presentation::compositions::GuiSideAlignedComposition::Direction::Bottom); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - (this->buttonIncrease = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_6 = ::vl::__vwsn::This(this->buttonIncrease)->GetBoundsComposition()); + (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); } { - ::vl::__vwsn::This(this->buttonIncrease)->SetAutoFocus(false); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); } { - ::vl::__vwsn::This(this->buttonIncrease)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + (this->buttonArrow = new ::vl::presentation::controls::GuiSelectableButton(::vl::presentation::theme::ThemeName::CheckBox)); } + (this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonIncrease)->GetBoundsComposition())); + ::vl::__vwsn::This(this->__vwsn_precompile_8)->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->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + ::vl::__vwsn::This(this->buttonArrow)->SetAutoFocus(false); } - (this->handleContainer = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->handleContainer)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(20); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(20); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->buttonArrow)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->handleContainer)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::NoLimit); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonArrow)->GetBoundsComposition())); } - (this->handle = new ::vl::presentation::compositions::GuiPartialViewComposition()); { - (this->__vwsn_precompile_7 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); } - (this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->__vwsn_precompile_7)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->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__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAutoFocus(false); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf353_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_7)->GetBoundsComposition())); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->handleContainer)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handle)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handleContainer)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(this))); ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->self)->SetSubMenuHost(static_cast<::vl::presentation::controls::GuiButton*>(this->buttonArrow)); } } - VScrollTemplateConstructor::VScrollTemplateConstructor() - : self(static_cast<::darkskin::VScrollTemplate*>(nullptr)) - , behavior(static_cast<::vl::presentation::templates::GuiCommonScrollBehavior*>(nullptr)) - , buttonDecrease(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , buttonIncrease(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , handleContainer(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , handle(static_cast<::vl::presentation::compositions::GuiPartialViewComposition*>(nullptr)) - , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiSideAlignedComposition*>(nullptr)) - , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiSideAlignedComposition*>(nullptr)) + ToolstripSplitButtonTemplateConstructor::ToolstripSplitButtonTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , self(static_cast<::darkskin::ToolstripSplitButtonTemplate*>(nullptr)) + , buttonArrow(static_cast<::vl::presentation::controls::GuiSelectableButton*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_7(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) { } /*********************************************************************** -Class (::darkskin::VScrollTemplate) +Class (::darkskin::ToolstripSplitButtonTemplate) ***********************************************************************/ - VScrollTemplate::VScrollTemplate() + ToolstripSplitButtonTemplate::ToolstripSplitButtonTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VScrollTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitButtonTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_VScrollTemplate_Initialize(this); - this->__vwsn_instance_ctor_(); - } - - void VScrollTemplate::__vwsn_instance_ctor_() - { - ::vl::__vwsn::This(this->behavior)->AttachScrollTemplate(static_cast<::vl::presentation::templates::GuiScrollTemplate*>(this->self)); - ::vl::__vwsn::This(this->behavior)->AttachDecreaseButton(this->buttonDecrease); - ::vl::__vwsn::This(this->behavior)->AttachIncreaseButton(this->buttonIncrease); - ::vl::__vwsn::This(this->behavior)->AttachVerticalScrollHandle(this->handle); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize(this); } - VScrollTemplate::~VScrollTemplate() + ToolstripSplitButtonTemplate::~ToolstripSplitButtonTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::VTrackerTemplateConstructor) +Class (::darkskin::ToolstripSplitterTemplateConstructor) ***********************************************************************/ - void VTrackerTemplateConstructor::__vwsn_darkskin_VTrackerTemplate_Initialize(::darkskin::VTrackerTemplate* __vwsn_this_) + void ToolstripSplitterTemplateConstructor::__vwsn_darkskin_ToolstripSplitterTemplate_Initialize(::darkskin::ToolstripSplitterTemplate* __vwsn_this_) { - (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->behavior = new ::vl::presentation::templates::GuiCommonScrollBehavior()); + (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->behavior)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#3F3F47"))); + ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); } { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(3); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(3); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::Gui3DSplitterElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::Gui3DSplitterElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor2(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#464648"))); } - (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(6); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(6); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#222224"))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetDirection(::vl::presentation::elements::Gui3DSplitterElement::Direction::Vertical); } { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(4); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); } - (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } - (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); + } + + ToolstripSplitterTemplateConstructor::ToolstripSplitterTemplateConstructor() + : __vwsn_precompile_0(static_cast<::darkskin::ToolstripSplitterTemplate*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::Gui3DSplitterElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::ToolstripSplitterTemplate) +***********************************************************************/ + + ToolstripSplitterTemplate::ToolstripSplitterTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripSplitterTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripSplitterTemplate_Initialize(this); + } + + ToolstripSplitterTemplate::~ToolstripSplitterTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::ToolstripTemplateConstructor) +***********************************************************************/ + + void ToolstripTemplateConstructor::__vwsn_darkskin_ToolstripTemplate_Initialize(::darkskin::ToolstripTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#55545A"))); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetInternalMargin([&](){ ::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__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->handle = new ::vl::presentation::compositions::GuiPartialViewComposition()); + } + + ToolstripTemplateConstructor::ToolstripTemplateConstructor() + : __vwsn_precompile_0(static_cast<::darkskin::ToolstripTemplate*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::ToolstripTemplate) +***********************************************************************/ + + ToolstripTemplate::ToolstripTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::ToolstripTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_ToolstripTemplate_Initialize(this); + } + + ToolstripTemplate::~ToolstripTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::TooltipTemplateConstructor) +***********************************************************************/ + + void TooltipTemplateConstructor::__vwsn_darkskin_TooltipTemplate_Initialize(::darkskin::TooltipTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); { - ::vl::__vwsn::This(this->handle)->SetHeightPageSize(static_cast(0)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->handle)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); } { - (this->__vwsn_precompile_6 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition()); + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }())); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false); + ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#017ACC"))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_3)); } + (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition())); + ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handle)); + ::vl::__vwsn::This(this->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_2)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); } } - VTrackerTemplateConstructor::VTrackerTemplateConstructor() - : self(static_cast<::darkskin::VTrackerTemplate*>(nullptr)) - , behavior(static_cast<::vl::presentation::templates::GuiCommonScrollBehavior*>(nullptr)) - , handle(static_cast<::vl::presentation::compositions::GuiPartialViewComposition*>(nullptr)) - , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) - , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_6(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + TooltipTemplateConstructor::TooltipTemplateConstructor() + : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_0(static_cast<::darkskin::TooltipTemplate*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_3(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) { } /*********************************************************************** -Class (::darkskin::VTrackerTemplate) +Class (::darkskin::TooltipTemplate) ***********************************************************************/ - VTrackerTemplate::VTrackerTemplate() + TooltipTemplate::TooltipTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VTrackerTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TooltipTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_VTrackerTemplate_Initialize(this); - this->__vwsn_instance_ctor_(); - } - - void VTrackerTemplate::__vwsn_instance_ctor_() - { - ::vl::__vwsn::This(this->behavior)->AttachScrollTemplate(static_cast<::vl::presentation::templates::GuiScrollTemplate*>(this->self)); - ::vl::__vwsn::This(this->behavior)->AttachVerticalTrackerHandle(this->handle); + ::vl::__vwsn::This(this)->__vwsn_darkskin_TooltipTemplate_Initialize(this); } - VTrackerTemplate::~VTrackerTemplate() + TooltipTemplate::~TooltipTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } /*********************************************************************** -Class (::darkskin::WindowTemplateConstructor) +Class (::darkskin::TopScrollButtonTemplateConstructor) ***********************************************************************/ - void WindowTemplateConstructor::__vwsn_darkskin_WindowTemplate_Initialize(::darkskin::WindowTemplate* __vwsn_this_) + void TopScrollButtonTemplateConstructor::__vwsn_darkskin_TopScrollButtonTemplate_Initialize(::darkskin::TopScrollButtonTemplate* __vwsn_this_) { (this->self = __vwsn_this_); - { - ::vl::__vwsn::This(this->self)->SetTooltipTemplate(LAMBDA(::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - } - { - ::vl::__vwsn::This(this->self)->SetCustomFrameEnabled(true); - } { ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#2D2D30"))); - } - { - ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); - } - (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); - } - (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); - { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); - } - (this->frameTable = new ::vl::presentation::compositions::GuiTableComposition()); - { - ::vl::__vwsn::This(this->frameTable)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->frameTable)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->frameTable)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); - ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->frameTable)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->frameTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeftTop); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(9); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>())); { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(::vl::reflection::description::UnboxParameter<::vl::collections::Array<::vl::presentation::Point>>(::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }())).list))).Ref()); } - (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRightTop); + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } - (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeftBottom); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + } + + TopScrollButtonTemplateConstructor::TopScrollButtonTemplateConstructor() + : self(static_cast<::darkskin::TopScrollButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::TopScrollButtonTemplate) +***********************************************************************/ + + TopScrollButtonTemplate::TopScrollButtonTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TopScrollButtonTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_TopScrollButtonTemplate_Initialize(this); + } + + TopScrollButtonTemplate::~TopScrollButtonTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::TreeViewTemplateConstructor) +***********************************************************************/ + + void TreeViewTemplateConstructor::__vwsn_darkskin_TreeViewTemplate_Initialize(::darkskin::TreeViewTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRightBottom); + ::vl::__vwsn::This(this->self)->SetExpandingDecoratorTemplate(vl::Func(::vl_workflow_global::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->self)->SetTextColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#F1F1F1"))); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + ::vl::__vwsn::This(this->self)->SetBackgroundTemplate(vl::Func(::vl_workflow_global::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); } - (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderLeft); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#252526"))); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } - (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiCellComposition()); + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderRight); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetInternalMargin([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_8)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_8)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiCellComposition()); + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderTop); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } + (this->look = new ::vl::presentation::templates::GuiCommonScrollViewLook(static_cast<::vl::vint>(20))); { - ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->look)->SetVScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + ::vl::__vwsn::This(this->look)->SetHScrollTemplate(vl::Func(::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); } - (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::BorderBottom); + ::vl::__vwsn::This(this->look)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->look)); } { - ::vl::__vwsn::This(this->frameTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->frameTable)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } - (this->contentTable = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->contentTable)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->self)->SetContainerComposition(::vl::__vwsn::This(this->look)->GetContainerComposition()); } { - ::vl::__vwsn::This(this->contentTable)->SetRowsAndColumns(static_cast<::vl::vint>(2), static_cast<::vl::vint>(5)); - ::vl::__vwsn::This(this->contentTable)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(3), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->contentTable)->SetColumnOption(static_cast<::vl::vint>(4), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->self)->SetHorizontalScroll(::vl::__vwsn::This(this->look)->GetHScroll()); } - (this->__vwsn_precompile_11 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_11)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->self)->SetVerticalScroll(::vl::__vwsn::This(this->look)->GetVScroll()); } + } + + TreeViewTemplateConstructor::TreeViewTemplateConstructor() + : self(static_cast<::darkskin::TreeViewTemplate*>(nullptr)) + , look(static_cast<::vl::presentation::templates::GuiCommonScrollViewLook*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::TreeViewTemplate) +***********************************************************************/ + + TreeViewTemplate::TreeViewTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::TreeViewTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_TreeViewTemplate_Initialize(this); + } + + TreeViewTemplate::~TreeViewTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::VScrollHandleTemplateConstructor) +***********************************************************************/ + + void VScrollHandleTemplateConstructor::__vwsn_darkskin_VScrollHandleTemplate_Initialize(::darkskin::VScrollHandleTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); { - (this->__vwsn_precompile_12 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } - (this->__vwsn_precompile_13 = ::vl::__vwsn::This(this->__vwsn_precompile_12)->GetBoundsComposition()); + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_13)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(4); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(4); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Webdings"); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }())); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAutoFocus(false); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_1)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetText(::vl::WString::Unmanaged(L" 0 ")); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } + } + + VScrollHandleTemplateConstructor::VScrollHandleTemplateConstructor() + : self(static_cast<::darkskin::VScrollHandleTemplate*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_1(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + { + } + +/*********************************************************************** +Class (::darkskin::VScrollHandleTemplate) +***********************************************************************/ + + VScrollHandleTemplate::VScrollHandleTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VScrollHandleTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_VScrollHandleTemplate_Initialize(this); + } + + VScrollHandleTemplate::~VScrollHandleTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::VScrollTemplateConstructor) +***********************************************************************/ + + void VScrollTemplateConstructor::__vwsn_darkskin_VScrollTemplate_Initialize(::darkskin::VScrollTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_11)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_12)->GetBoundsComposition())); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->behavior = new ::vl::presentation::templates::GuiCommonScrollBehavior()); { - ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_11)); + ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->behavior)); } - (this->__vwsn_precompile_14 = new ::vl::presentation::compositions::GuiCellComposition()); + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(3), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#3D3D42"))); } { - (this->__vwsn_precompile_15 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } - (this->__vwsn_precompile_16 = ::vl::__vwsn::This(this->__vwsn_precompile_15)->GetBoundsComposition()); + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_16)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_15)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Webdings"); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }())); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_15)->SetAutoFocus(false); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_15)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiSideAlignedComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_14)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_15)->GetBoundsComposition())); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMaxRatio(static_cast(0.5)); } { - ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_14)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMaxLength(static_cast<::vl::vint>(20)); } - (this->__vwsn_precompile_17 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::ButtonClose); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetDirection(::vl::presentation::compositions::GuiSideAlignedComposition::Direction::Top); } { - ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(4), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + (this->buttonDecrease = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } + (this->__vwsn_precompile_4 = ::vl::__vwsn::This(this->buttonDecrease)->GetBoundsComposition()); { - (this->__vwsn_precompile_18 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } - (this->__vwsn_precompile_19 = ::vl::__vwsn::This(this->__vwsn_precompile_18)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_19)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->buttonDecrease)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Webdings"); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }())); + ::vl::__vwsn::This(this->buttonDecrease)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAutoFocus(false); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonDecrease)->GetBoundsComposition())); } { - ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetText(::vl::WString::Unmanaged(L" r ")); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiSideAlignedComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMaxRatio(static_cast(0.5)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_17)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_18)->GetBoundsComposition())); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMaxLength(static_cast<::vl::vint>(20)); } { - ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_17)); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetDirection(::vl::presentation::compositions::GuiSideAlignedComposition::Direction::Bottom); } - (this->__vwsn_precompile_20 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_20)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + (this->buttonIncrease = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } - (this->__vwsn_precompile_21 = new ::vl::presentation::compositions::GuiTableComposition()); + (this->__vwsn_precompile_6 = ::vl::__vwsn::This(this->buttonIncrease)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_21)->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>(2); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->buttonIncrease)->SetAutoFocus(false); } { - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(1)); - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); - ::vl::__vwsn::This(this->__vwsn_precompile_21)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(16); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->buttonIncrease)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); } - (this->__vwsn_precompile_22 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Icon); + ::vl::__vwsn::This(this->__vwsn_precompile_5)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->buttonIncrease)->GetBoundsComposition())); } { - ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); } - (this->__vwsn_precompile_23 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + (this->handleContainer = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_23.Obj())->SetStretch(true); + ::vl::__vwsn::This(this->handleContainer)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(20); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(20); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_22)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_23)); + ::vl::__vwsn::This(this->handleContainer)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::NoLimit); } + (this->handle = new ::vl::presentation::compositions::GuiPartialViewComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_21)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_22)); + (this->__vwsn_precompile_7 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } + (this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->__vwsn_precompile_7)->GetBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_20)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_21)); + ::vl::__vwsn::This(this->__vwsn_precompile_8)->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->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_20)); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAutoFocus(false); } - (this->__vwsn_precompile_24 = new ::vl::presentation::compositions::GuiCellComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_24)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Title); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_24)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_7)->GetBoundsComposition())); } - (this->__vwsn_precompile_25 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->__vwsn_precompile_25)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->handleContainer)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handle)); } { - ::vl::__vwsn::This(this->__vwsn_precompile_25)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handleContainer)); } - (this->__vwsn_precompile_26 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_26.Obj())->SetEllipse(true); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_26.Obj())->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString::Unmanaged(L"Segoe WP SemiLight"); __vwsn_temp__.size = static_cast<::vl::vint>(14); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - ::vl::__vwsn::This(this->__vwsn_precompile_25)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_26)); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } + } + + VScrollTemplateConstructor::VScrollTemplateConstructor() + : self(static_cast<::darkskin::VScrollTemplate*>(nullptr)) + , behavior(static_cast<::vl::presentation::templates::GuiCommonScrollBehavior*>(nullptr)) + , buttonDecrease(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , buttonIncrease(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , handleContainer(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , handle(static_cast<::vl::presentation::compositions::GuiPartialViewComposition*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiSideAlignedComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiSideAlignedComposition*>(nullptr)) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_7(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::darkskin::VScrollTemplate) +***********************************************************************/ + + VScrollTemplate::VScrollTemplate() + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VScrollTemplate")); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_darkskin_VScrollTemplate_Initialize(this); + this->__vwsn_instance_ctor_(); + } + + void VScrollTemplate::__vwsn_instance_ctor_() + { + ::vl::__vwsn::This(this->behavior)->AttachScrollTemplate(static_cast<::vl::presentation::templates::GuiScrollTemplate*>(this->self)); + ::vl::__vwsn::This(this->behavior)->AttachDecreaseButton(this->buttonDecrease); + ::vl::__vwsn::This(this->behavior)->AttachIncreaseButton(this->buttonIncrease); + ::vl::__vwsn::This(this->behavior)->AttachVerticalScrollHandle(this->handle); + } + + VScrollTemplate::~VScrollTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::darkskin::VTrackerTemplateConstructor) +***********************************************************************/ + + void VTrackerTemplateConstructor::__vwsn_darkskin_VTrackerTemplate_Initialize(::darkskin::VTrackerTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); { - ::vl::__vwsn::This(this->__vwsn_precompile_24)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_25)); + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->behavior = new ::vl::presentation::templates::GuiCommonScrollBehavior()); { - ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_24)); + ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->behavior)); } - (this->__vwsn_precompile_27 = new ::vl::presentation::compositions::GuiCellComposition()); + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_27)->SetAssociatedHitTestResult(::vl::presentation::INativeWindowListener::HitTestResult::Client); + ::vl::__vwsn::This(this->__vwsn_precompile_0.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#3F3F47"))); } { - ::vl::__vwsn::This(this->__vwsn_precompile_27)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(5)); + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); } - (this->container = new ::vl::presentation::compositions::GuiBoundsComposition()); + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiBoundsComposition()); { - ::vl::__vwsn::This(this->container)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->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->container)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - ::vl::__vwsn::This(this->__vwsn_precompile_27)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); { - ::vl::__vwsn::This(this->contentTable)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_27)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(6); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(6); return __vwsn_temp__; }()); } { - ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->contentTable)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); } { - ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Absolute; __vwsn_temp__.absolute = static_cast<::vl::vint>(4); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(0.5); return __vwsn_temp__; }()); } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); } + (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>())); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#55545A"))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); } + (this->handle = new ::vl::presentation::compositions::GuiPartialViewComposition()); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->handle)->SetHeightPageSize(static_cast(0)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->handle)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(12); return __vwsn_temp__; }()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + (this->__vwsn_precompile_6 = new ::vl::presentation::controls::GuiButton(::vl::presentation::theme::ThemeName::Button)); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }())); } + (this->__vwsn_precompile_7 = ::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition()); { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }()); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetControlTemplate(vl::Func(::vl_workflow_global::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->handle)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_6)->GetBoundsComposition())); } { - auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this))); - ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + ::vl::__vwsn::This(this->__vwsn_precompile_1)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->handle)); } { - ::vl::__vwsn::This(this->self)->SetContainerComposition(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->container)); + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->TitleBarChanged, __vwsn_event_handler_); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } { - auto __vwsn_event_handler_ = LAMBDA(::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(this)); - ::vl::__vwsn::EventAttach(::vl::__vwsn::This(this->self)->CustomFramePaddingChanged, __vwsn_event_handler_); + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, vl::Func(::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); } } - WindowTemplateConstructor::WindowTemplateConstructor() - : container(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , self(static_cast<::darkskin::WindowTemplate*>(nullptr)) - , frameTable(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , contentTable(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + VTrackerTemplateConstructor::VTrackerTemplateConstructor() + : self(static_cast<::darkskin::VTrackerTemplate*>(nullptr)) + , behavior(static_cast<::vl::presentation::templates::GuiCommonScrollBehavior*>(nullptr)) + , handle(static_cast<::vl::presentation::compositions::GuiPartialViewComposition*>(nullptr)) , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) - , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_11(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_12(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , __vwsn_precompile_13(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_14(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_15(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , __vwsn_precompile_16(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_17(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_18(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) - , __vwsn_precompile_19(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_20(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_21(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) - , __vwsn_precompile_22(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_23(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) - , __vwsn_precompile_24(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) - , __vwsn_precompile_25(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) - , __vwsn_precompile_26(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) - , __vwsn_precompile_27(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>()) + , __vwsn_precompile_6(static_cast<::vl::presentation::controls::GuiButton*>(nullptr)) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) { } /*********************************************************************** -Class (::darkskin::WindowTemplate) +Class (::darkskin::VTrackerTemplate) ***********************************************************************/ - WindowTemplate::WindowTemplate() + VTrackerTemplate::VTrackerTemplate() { - auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::WindowTemplate")); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString::Unmanaged(L"darkskin::VTrackerTemplate")); auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); - ::vl::__vwsn::This(this)->__vwsn_darkskin_WindowTemplate_Initialize(this); + ::vl::__vwsn::This(this)->__vwsn_darkskin_VTrackerTemplate_Initialize(this); + this->__vwsn_instance_ctor_(); + } + + void VTrackerTemplate::__vwsn_instance_ctor_() + { + ::vl::__vwsn::This(this->behavior)->AttachScrollTemplate(static_cast<::vl::presentation::templates::GuiScrollTemplate*>(this->self)); + ::vl::__vwsn::This(this->behavior)->AttachVerticalTrackerHandle(this->handle); } - WindowTemplate::~WindowTemplate() + VTrackerTemplate::~VTrackerTemplate() { this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); } @@ -32512,9 +33500,9 @@ namespace vl class DarkSkinResourceReader { public: - static const vint parserBufferLength = 1705; // 4391 bytes before compressing + static const vint parserBufferLength = 1729; // 4449 bytes before compressing static const vint parserBufferBlock = 1024; - static const vint parserBufferRemain = 681; + static const vint parserBufferRemain = 705; static const vint parserBufferRows = 2; static const char* parserBuffer[2]; @@ -32525,8 +33513,8 @@ namespace vl }; const char* DarkSkinResourceReader::parserBuffer[] = { - "\x27\x11\x00\x00\xA1\x06\x00\x00\x4A\x00\x01\x82\x80\x00\x81\x80\x1E\x29\x65\x73\x2F\x35\x32\x3B\x31\x33\x26\x65\x74\x21\x24\x31\x32\x88\x10\x27\x61\x6D\x25\x3D\x12\x12\x10\x10\x2B\x65\x72\x33\x29\x3F\x36\x34\x8F\x18\x2E\x30\x22\x1E\x1C\x1C\x21\x32\x38\x65\x6E\x24\x31\x93\x31\x35\x85\x17\x2C\xAF\x08\x8A\x8C\x86\x84\x88\x89\x14\x92\xBE\x05\x03\x82\x80\x05\xA2\x01\xC7\x81\x89\x2E\x33\x3A\x88\x37\x0E\x8D\x08\xA0\x02\xAB\xA5\xA7\xA7\x0E\xD3\x34\x39\x3C\x35\x33\x01\xA9\x5F\x81\x84\x2F\x33\x34\x03\xA8\xB3\x01\xD4\x25\x38\x34\x3F\x07\xA8\xB7\x01\xC3\x2C\x21\x33\x3B\x38\x8C\x8D\x08\xE3\x2F\x32\x34\x33\xA8\x01\xB0\x45\xCA\x81\xC2\x84\x21\x32\x39\x35\x53\x6B\x29\x2E\x3E\xBE\xBE\x05\xA9\x06\x10\xC2\x82\x25\x3C\x38\x3B\x92\x8D\x99\xC3\xC8\xA2\xC3\xB3\x31\x3A\x1A\xEE\x34\x3E\xB1\x03\xAA\x01\xA9\x10\x28\xD3\xD4\xB5\x34\x37\xC5\x32\x9E\xA0\xF1\x94\x3E\x5B\xA9\xDA\x83\x9E\xAC\x83\x25\x94\x3B\xD8\x9C\x1E\x5A\xDC\x89\x8C\x91\xE5\xAC\x10\x37\x19\x9B\xA2\x03\x1E\x96\x31\x31\x3A\x6C\x74\x2D\x0F\x26\x39\x92\x39\x34\x33\xAB\xBC\x1A\xBC\x33\xBE\x1F\x11\x46\x61\xE2\xFC\x1F\x14\xEE\xEE\xF2\xC5\xE5\x04\xFB\xA6\xE0\xE6\x8C\x8E\x23\x53\x2D\xC5\x33\x34\x38\x92\x37\xD3\xD5\xF2\x37\xE9\xEC\x96\xF2\x39\xDF\x62\x73\x79\x79\x6F\x1D\x70\x80\x0F\x62\x2B\x1F\x7F\x77\x30\x30\x07\x0D\x10\x43\x03\x14\x79\x82\x0B\xA8\x7C\x7A\x7A\x16\x82\x73\x1D\x4E\xB9\x7E\x58\x59\x51\x1F\x8C\x19\x1A\x53\x9A\x65\x80\x03\x87\x03\x5F\x8D\x13\x88\x63\x26\x8A\x65\x64\x48\x70\x80\x02\x14\x69\x22\x12\x18\x66\x2E\x8D\x62\x8F\x40\x32\x93\x13\x1A\x1C\x05\xAC\x19\x8D\x63\x80\x43\x40\x60\x15\x61\x22\x13\x92\x5F\x07\x13\x5D\x91\x5A\x6B\x74\x12\x13\x1B\x78\x0B\x93\x55\x02\x57\x82\x44\x17\x1B\x05\x8E\x57\x74\x1C\x56\xB1\x82\x65\x40\x57\x0B\x64\x1B\x1B\x77\x21\x95\x50\x03\x53\x6C\x91\x43\x11\x61\x23\x17\x11\x4C\xBB\x6E\x16\x19\x1A\x67\x03\x95\x68\x52\x45\x82\x40\x63\x10\x70\x20\x93\x54\x51\x7C\x93\x55\x55\x51\x87\x80\xA0\x1F\x6E\x6D\x30\x12\x1D\x42\x73\x25\x14\x18\x05\x53\x54\xA2\x5A\x61\x88\x4A\x6E\x1B\x4E\x0B\x4D\x45\x1A\x0B\x63\x01\xAD\x9D\x40\x28\x82\x4F\x87\x5D\x65\x02\x63\x41\x67\x98\x89\x6B\x63\xA8\x54\x46\xA2\x42\x13\x7B\x6D\x11\x18\x1B\x4C\x63\x1C\x19\x1D\x33\x69\x68\x52\xAF\x00\x2E\x0E\x0B\x0B\xC2\x84\xB3\xB0\x9C\x63\x15\x19\x12\x0B\x68\x30\xA1\x07\x54\xCF\x81\x48\x42\x19\x5D\x75\x77\x7D\xAE\xBB\xB3\x49\x0F\x54\xDB\x81\x45\xB3\xB7\xC3\x93\xB5\xB6\x7D\x25\x6F\x04\x15\x1E\x30\x6E\x43\x1F\x8F\x69\x30\x17\x66\x48\x2F\x07\x15\x1D\x1A\xE2\xB4\x74\xBA\x1B\x50\x3B\xA7\x1B\x62\xCC\xB0\xAE\x9B\x9A\x02\x53\x1D\xA6\x43\x46\x05\x83\x4E\x1C\x3B\x82\x4D\x8F\xC0\x65\x3E\x5B\x03\x54\x0F\xC1\x40\x17\xA3\x7A\x4D\xA9\x19\x57\x7D\x53\x5B\x9C\x88\x6F\x5D\xC1\x5F\x5C\x75\x68\xA9\x5F\x5E\x64\x04\x1E\xC5\x51\x70\x40\x04\x47\x61\x73\x1A\xAA\x0E\x0E\x54\x28\x15\x1A\x46\x18\x13\x55\xCD\x40\x2B\xEB\x1D\xCB\x62\x2F\xD4\x66\x65\x49\x6A\x4D\xA3\x5D\x6F\x1A\x13\x55\xD0\xCE\x98\xBB\xCE\x1B\xCB\x43\x32\xC3\x1B\x1A\x53\xB8\x11\xD0\x1C\x43\xE5\x1D\x07\x54\x57\xC8\xDC\xCA\xCB\x3A\x12\x13\x44\x49\x3E\xD7\x6E\x1B\xD4\x55\xDF\x03\x56\xD9\x5A\xFA\xCC\xD5\x6C\xA1\x74\x1C\x11\x92\xAD\x64\xD5\x45\x19\x21\x13\x55\xDD\xDA\x4A\xEF\xCC\xDB\x6C\x6A\x6C\x51\xD6\xDC\xBD\x60\x03\x56\xE0\x78\xEB\xD4\x5A\x6C\xA2\x56\x16\x4F\x1D\x21\x40\xE5\x1B\xD1\x45\x50\xE9\xCD\xDE\x3A\x0C\xA7\x8F\xDF\x33\xD4\xD3\xDC\x09\x53\x5C\xE5\xE0\xCF\x3A\x05\x18\x1C\x1C\x61\x32\x4B\x63\x19\x2E\x7A\x52\x1D\x45\x7B\x4E\xE4\xE1\x51\xAF\xD3\xEC\xD5\x12\xBD\x6D\x12\x11\x9C\x6B\x27\x10\x91\x1D\x32\x4E\xE6\x0B\x54\xBF\xDF\xEB\xD2\x0E\x22\x8E\x5A\xE1\x19\x77\x3B\x6B\xAD\x1B\x6E\x08\x15\x1B\x44\x8D\xD9\xE5\xD4\xE4\x03\x52\xE9\xD0\xD7\xC5\xF4\x17\xF3\x1D\x8E\xD4\xF2\x42\xF5\x5B\xE0\xED\xDE\xDB\x23\xB4\x1D\xF6\xD1\x02\x72\xE2\xFB\xA3\x65\x1B\xFE\xE0\x07\x53\x70\xF2\xF2\xDE\x73\xE1\xD0\xD2\xF4\x73\xF2\xF5\x52\xFE\xEA\xC3\xF5\x61\x6F\x50\x09\x0F\xD3\x51\x72\x69\xB9\x5E\x79\x20\xE0\x6A\x6C\xE8\x47\x0B\x76\x38\x18\x75\x80\xBD\x37\x03\x54\x12\x83\x7E\xE2\x70\x6C\x0D\x8E\x79\x69\x51\x1A\x8D\x7F\x97\x53\x08\x0D\x7B\x34\x0F\x67\x74\x0B\x09\x32\x39\x0E\x71\x22\x13\x29\x0A\x95\x84\x46\x1B\x65\x23\x0A\x54\x69\x0C\x1D\x41\x0B\x3E\x34\x4E\x70\x6D\x45\x38\x85\x07\xDD\x65\x47\x1B\x6E\x0E", - "\x7E\x4D\x2E\x71\x0B\x53\x23\x88\x16\xBD\x85\x24\x70\x4C\x0D\x57\x72\x09\x0E\x22\x00\x48\x0E\x67\x57\x0F\x0F\x95\x32\x6C\xC7\x67\x03\x2A\x57\x86\x8A\x0B\xEE\x09\x89\x25\xB9\x0C\x76\x33\x79\x7B\x0D\xE7\x69\x7D\xEB\x60\x75\x85\x3E\x9D\x89\x48\x27\x88\x7F\xDE\x29\x03\x2A\x6F\x9A\x89\x1A\x8D\x82\x74\xD2\x72\x20\x88\x8E\x77\x6D\x51\x7A\x8B\x86\x34\x88\x8D\x81\x10\x2E\x0D\x1D\x19\x88\x6B\x32\xA1\x7B\x78\x7E\x9C\x89\x03\xF9\x86\x6E\x43\x8A\x80\x91\x47\x8E\x0D\x12\x7A\x2E\x0D\xB7\x62\x09\x6E\x6D\x85\x0F\x08\x53\x2B\x92\x39\xA5\x27\x6D\x72\x07\x0D\x19\x78\x89\x93\x15\x13\x2E\x94\x9E\x95\x92\x61\x22\x9E\x89\x37\x10\x88\x4D\x53\x9F\x67\xD8\x19\x98\x05\xA9\x35\x91\x95\xA0\x82\x94\x0C\xAE\x32\x4A\x2A\xB7\x78\x82\x9A\x9C\x92\x23\x94\x79\x91\x29\x36\x52\x89\xA4\x80\x98\x2A\xC5\x2B\x99\x3E\x91\x96\x98\xB7\x4C\x0D\x2B\xAF\x92\x8B\x64\x9A\x75\x37\xC1\x65\x29\x36\xCE\x9B\x8A\x68\x8A\x8B\x92\x9F\x97\x82\xE3\x37\x95\x28\x72\x9C\x9E\x87\xDE\x8C\x0F\x2E\xB2\x86\x9B\xAA\x59\x8D\x28\xEF\x87\x9C\xD0\x5C\x4C\x0C\x2F\x6D\x5E\x79\xD0\x72\x0E\xE3\x25\x03\x2A\x7E\xA9\x93\x4B\x5D\x54\x0F\x97\x01\x93\x91\x4C\xAB\x85\x28\x07\xB2\x9F\xD8\x74\x96\x9E\x38\x33\x0E\x71\x9E\x65\x29\x44\xBB\x83\x4B\x9F\x6D\x0E\x47\x40\x48\x9A\x2F\xB3\x90\x98\x1C\x83\x22\x87\x66\x83\x78\x12\x18\xA1\x48\x24\x25\x74\x0C\x5D\x2E\x71\x06\x53\x2B\xA5\x0A\xA3\xA7\x47\x41\x47\x7C\x52\x09\x84\x72\x24\x14\x0B\x75\x03\x9A\x9E\x41\xAA\x83\x98\xEC\x65\x0E\x0C\x74\x04\xA6\x46\xB2\x94\x90\xA4\x1C\x81\xA4\x2F\x73\x63\x1B\x3A\x70\x53\xDB\x7A\xA0\x98\x9D\x85\x29\x54\xCE\x97\x0C\x34\x01\xA8\xA6\x43\xB5\x89\x26\xFA\x73\x20\xFE\x48\xAA\x07\x42\xAC\x0E\xFB\x19\x9A\x8F\x81\x3C\x8F\xAB\x5B\x50\x0D\x58\xED\x93\x6E\x8F\x82\x20\xA4\x87\x8F\x66\x15\x61\xA6\xA4\x99\x29\xA1\x93\x2D\xA5\x29\x5E\xBB\x83\xAE\xAC\x98\x81\x93\x07\x80\x00\x4D\xDC\x66\x0B\x9B\xB8\x74\x80\xD7\x94\x6D\x23\x95\x88\x48\x31\x38\x9F\x60\x6C\xBD\x37\x06\x53\x23\xB2\xC6\x89\x4F\xB1\x88\xB5\x69\x05\x53\x2B\xB2\xCB\xA2\x08\x85\x3C\xB5\x81\x13\x50\x36\x3E\xD7\x2E\x0D\x0C\xE3\x6F\x81\x62\xD1\xA3\x21\xA9\x9F\xAB\x0A\xA7\x7D\x2A\x69\xA8\xB1\x4A\xD5\xA5\x6C\x8C\xA2\xB1\x25\x1D\x4E\xA1\xB3\x32\x2F\x73\x20\xB1\x7F\xA8\x41\xE0\x86\x77\x8D\x8E\x76\x03\x53\x28\xB9\x6E\x82\x9B\x9C\xCB\x19\xB3\x6E\xFE\x85\x29\x74\xBB\x80\xA1\x7A\x82\xA5\x5D\xCD\xB4\x84\x90\x5C\x74\xAD\xC5\xAA\x60\xAD\x0C\xB7\xBA\x03\xC6\xB9\x93\x38\x85\x2E\xBC\xD4\xA1\xBF\x97\x53\x91\x8B\x58\x9A\xAD\xA3\xB8\xBF\xB9\x5C\xB0\x6A\xBD\x76\x44\xA6\x77\xC0\x7D\xA6\xF8\x75\xBA\xAD\x18\xBD\x94\xA8\x99\x8C\xB6\x40\x2E\xB3\xBF\xEA\x8D\xA5\xB9\xBD\x2F\xA9\x62\x95\xB5\x28\x06\xE9\xB9\xA0\x5F\x43\x8C\x52\x70\xAF\x90\xA6\x75\x0E\x29\x6F\x0D\x0D\x9D\x02\xA5\x40\x95\xAC\xA2\xBF\xC3\x75\xBA\x7D\x70\x0E\x71\x9B\x45\x2E\xC4\x3B\x85\x4E\x4C\x36\x89\x92\xBF\x00", + "\x61\x11\x00\x00\xB9\x06\x00\x00\x4A\x00\x01\x82\x80\x00\x81\x80\x1E\x29\x65\x73\x2F\x35\x32\x3B\x31\x33\x26\x65\x74\x21\x24\x31\x32\x88\x10\x27\x61\x6D\x25\x3D\x12\x12\x10\x10\x2B\x65\x72\x33\x29\x3F\x36\x34\x8F\x18\x2E\x30\x22\x1E\x1C\x1C\x21\x32\x38\x65\x6E\x24\x31\x93\x31\x35\x85\x17\x2C\xAF\x08\x8A\x8C\x86\x84\x88\x89\x14\x92\xBE\x05\x03\x82\x80\x05\xA2\x01\xC7\x81\x89\x2E\x33\x3A\x88\x37\x0E\x8D\x08\xA0\x02\xAB\xA5\xA7\xA7\x0E\xD3\x34\x39\x3C\x35\x33\x01\xA9\x5F\x81\x84\x2F\x33\x34\x03\xA8\xB3\x01\xD4\x25\x38\x34\x3F\x07\xA8\xB7\x01\xC3\x2C\x21\x33\x3B\x38\x8C\x8D\x08\xE3\x2F\x32\x34\x33\xA8\x01\xB0\x45\xCA\x81\xC2\x84\x21\x32\x39\x35\x53\x6B\x29\x2E\x3E\xBE\xBE\x05\xA9\x06\x10\xC2\x82\x25\x3C\x38\x3B\x92\x8D\x99\xC3\xC8\xA2\xC3\xB3\x31\x3A\x1A\xEE\x34\x3E\xB1\x03\xAA\x01\xA9\x10\x28\xD3\xD4\xB5\x34\x37\xC5\x32\x9E\xA0\xF1\x94\x3E\x5B\xA9\xDA\x83\x9E\xAC\x83\x25\x94\x3B\xD8\x9C\x1E\x5A\xDC\x89\x8C\x91\xE5\xAC\x10\x37\x19\x9B\xA2\x03\x1E\x96\x31\x31\x3A\x6C\x74\x2D\x0F\x26\x39\x92\x39\x34\x33\xAB\xBC\x1A\xBC\x33\xBE\x1F\x11\x46\x61\xE2\xFC\x1F\x14\xEE\xEE\xF2\xC5\xE5\x04\xFB\xA6\xE0\xE6\x8C\x8E\x23\x53\x2D\xC5\x33\x34\x38\x92\x37\xD3\xD5\xF2\x37\xE9\xEC\x96\xF2\x39\xDF\x62\x73\x79\x79\x6F\x1D\x70\x80\x0F\x62\x2B\x1F\x7F\x77\x30\x30\x07\x0D\x10\x43\x03\x14\x79\x82\x0B\xA8\x7C\x7A\x7A\x16\x82\x73\x1D\x4E\xB9\x7E\x58\x59\x51\x1F\x8C\x19\x1A\x53\x9A\x65\x80\x03\x87\x03\x5F\x8D\x13\x88\x63\x26\x8A\x65\x64\x48\x70\x80\x02\x14\x69\x22\x12\x18\x66\x2E\x8D\x62\x8F\x40\x32\x93\x13\x1A\x1C\x05\xAC\x19\x8D\x63\x80\x43\x40\x60\x15\x61\x22\x13\x92\x5F\x07\x13\x5D\x91\x5A\x6B\x74\x12\x13\x1B\x78\x0B\x93\x55\x02\x57\x82\x44\x17\x1B\x05\x8E\x57\x74\x1C\x56\xB1\x82\x65\x40\x57\x0B\x64\x1B\x1B\x77\x21\x95\x50\x03\x53\x6C\x91\x43\x11\x61\x23\x17\x11\x4C\xBB\x6E\x16\x19\x1A\x67\x03\x95\x68\x52\x45\x82\x40\x63\x10\x70\x20\x93\x54\x51\x7C\x93\x55\x55\x51\x87\x80\xA0\x1F\x6E\x6D\x30\x12\x1D\x42\x73\x25\x14\x18\x05\x53\x54\xA2\x5A\x61\x88\x4A\x6E\x1B\x4E\x0B\x4D\x45\x1A\x0B\x63\x01\xAD\x9D\x40\x28\x82\x4F\x87\x5D\x65\x02\x63\x41\x67\x98\x89\x6B\x63\xA8\x54\x46\xA2\x42\x13\x7B\x6D\x11\x18\x1B\x4C\x63\x1C\x19\x1D\x33\x69\x68\x52\xAF\x00\x2E\x0E\x0B\x0B\xC2\x84\xB3\xB0\x9C\x63\x15\x19\x12\x0B\x68\x30\xA1\x07\x54\xCF\x81\x48\x42\x19\x5D\x75\x77\x7D\xAE\xBB\xB3\x49\x0F\x54\xDB\x81\x45\xB3\xB7\xC3\x93\xB5\xB6\x7D\x25\x6F\x04\x15\x1E\x30\x6E\x43\x1F\x8F\x69\x30\x17\x66\x48\x2F\x07\x15\x1D\x1A\xE2\xB4\x74\xBA\x1B\x50\x3B\xA7\x1B\x62\xCC\xB0\xAE\x9B\x9A\x02\x53\x1D\xA6\x43\x46\x05\x83\x4E\x1C\x3B\x82\x4D\x8F\xC0\x65\x3E\x5B\x03\x54\x0F\xC1\x40\x17\xA3\x7A\x4D\xA9\x19\x57\x7D\x53\x5B\x9C\x88\x6F\x5D\xC1\x5F\x5C\x75\x68\xA9\x5F\x5E\x64\x05\x1E\xC5\x51\x70\x40\x04\x47\x61\x73\x1A\xAA\x0E\x0E\x54\x28\x15\x1A\x46\x18\x13\x55\xCD\x40\x2B\xEB\x1D\xCB\x62\x2F\xD4\x66\x65\x49\x6A\x4D\xA3\x5D\x6F\x1A\x13\x55\xD0\xCE\x98\xBB\xCE\x1B\xCB\x43\x32\xC3\x1B\x1A\x53\xB8\x11\xD0\x1C\x43\xE5\x1D\x07\x54\x57\xC8\xDC\xCA\xCB\x3A\x12\x13\x44\x49\x3E\xD7\x6E\x1B\xD4\x55\xDF\x03\x56\xD9\x5A\xFA\xCC\xD5\x6C\xA1\x74\x1C\x11\x92\xAD\x64\xD5\x45\x19\x21\x13\x55\xDD\xDA\x4A\xEF\xCC\xDB\x6C\x6A\x6C\x51\xD6\xDC\xBD\x60\x03\x56\xE0\x78\xEB\xD4\x5A\x6C\xA2\x56\x16\x4F\x1D\x21\x40\xE5\x1B\xD1\x45\x50\xE9\xCD\xDE\x3A\x0C\xA7\x8F\xDF\x33\xD4\xD3\xDC\x09\x53\x5C\xE5\xE0\xCF\x3A\x05\x18\x1C\x1C\x61\x32\x4B\x63\x19\x2E\x7A\x52\x1D\x45\x7B\x4E\xE4\xE1\x51\xAF\xD3\xEC\xD5\x12\xBD\x6D\x12\x11\x9C\x6B\x27\x10\x91\x1D\x32\x4E\xE6\x0B\x54\xBF\xDF\xEB\xD2\x0E\x22\x8E\x5A\xE1\x19\x77\x3B\x6B\xAD\x1B\x6E\x08\x15\x1B\x44\x8D\xD9\xE5\xD4\xE4\x03\x52\xE9\xD0\xD7\xC5\xF4\x17\xF3\x1D\x8E\xD4\xF2\x42\xF5\x5B\xE0\xED\xDE\xDB\x23\xB4\x1D\xF6\xD1\x02\x72\xE2\xFB\xA3\x65\x1B\xFE\xE0\x07\x53\x70\xF2\xF2\xDE\x73\xE1\xD0\xD2\xF4\x73\xF2\xF5\x52\xFE\xEA\xC3\xF5\x61\x6F\x50\x09\x0F\xD3\x51\x72\x69\xB9\x5E\x79\x20\xE0\x6A\x6C\xE8\x47\x0B\x76\x38\x18\x75\x80\xBD\x37\x03\x54\x12\x83\x7E\xE2\x70\x6C\x0D\x8E\x79\x69\x51\x1A\x8D\x7F\x97\x53\x08\x0D\x7B\x34\x0F\x67\x74\x0B\x09\x32\x39\x0E\x71\x22\x13\x29\x0A\x95\x84\x46\x1B\x65\x23\x0A\x54\x69\x0C\x1D\x41\x0B\x3E\x34\x4E\x70\x6D\x45\x38\x85\x07\xDD\x65\x47\x1B\x6E\x0E", + "\x7E\x4D\x2E\x71\x0B\x53\x23\x88\x16\xBD\x85\x24\x70\x4C\x0D\x57\x72\x09\x0E\x22\x00\x48\x0E\x67\x57\x0F\x0F\x95\x32\x6C\xC7\x67\x03\x2A\x57\x86\x8A\x0B\xEE\x09\x89\x25\xB9\x0C\x76\x33\x79\x7B\x0D\xE7\x69\x7D\xEB\x60\x75\x85\x3E\x9D\x89\x48\x27\x88\x7F\xDE\x29\x03\x2A\x6F\x9A\x89\x1A\x8D\x82\x74\xD2\x72\x20\x88\x8E\x77\x6D\x51\x7A\x8B\x86\x34\x88\x8D\x81\x10\x2E\x0D\x1D\x19\x88\x6B\x32\xA1\x7B\x78\x7E\x9C\x89\x03\xF9\x86\x6E\x43\x8A\x80\x91\x47\x8E\x0D\x12\x7A\x2E\x0D\xB7\x62\x09\x6E\x6D\x85\x0F\x08\x53\x2B\x92\x39\xA5\x27\x6D\x72\x07\x0D\x19\x78\x89\x93\x15\x13\x2E\x94\x9E\x95\x92\x61\x22\x9E\x89\x37\x10\x88\x4D\x53\x9F\x67\xD8\x19\x98\x05\xA9\x35\x91\x95\xA0\x82\x94\x0C\xAE\x32\x4A\x2A\xB7\x78\x82\x9A\x9C\x92\x23\x94\x79\x91\x29\x36\x52\x89\xA4\x80\x98\x2A\xC5\x2B\x99\x3E\x91\x96\x98\xB7\x4C\x0D\x2B\xAF\x92\x8B\x64\x9A\x75\x37\xC1\x65\x29\x36\xCE\x9B\x8A\x68\x8A\x8B\x92\x9F\x97\x82\xE3\x37\x95\x28\x72\x9C\x9E\x87\xDE\x8C\x0F\x2E\xB2\x86\x9B\xAA\x59\x8D\x28\xEF\x87\x9C\xD0\x5C\x4C\x0C\x2F\x6D\x5E\x79\xD0\x72\x0E\xE3\x25\x03\x2A\x7E\xA9\x93\x4B\x5D\x54\x0F\x97\x01\x93\x91\x4C\xAB\x85\x28\x07\xB2\x9F\xD8\x74\x96\x9E\x38\x33\x0E\x71\x9E\x65\x29\x44\xBB\x83\x4B\x9F\x6D\x0E\x47\x40\x48\x9A\x2F\xB3\x90\x98\x1C\x83\x22\x87\x66\x83\x78\x12\x18\xA1\x48\x24\x25\x74\x0C\x5D\x2E\x71\x06\x53\x2B\xA5\x0A\xA3\xA7\x47\x41\x47\x7C\x52\x09\x84\x72\x24\x14\x0B\x75\x03\x9A\x9E\x41\xAA\x83\x98\xEC\x65\x0E\x0C\x74\x04\xA6\x46\xB2\x94\x90\xA4\x1C\x81\xA4\x2F\x73\x63\x1B\x3A\x70\x53\xDB\x7A\xA0\x98\x9D\x85\x29\x54\xCE\x97\x0C\x34\x01\xA8\xA6\x43\xB5\x89\x26\xFA\x73\x20\xFE\x48\xAA\x07\x42\xAC\x0E\xFB\x19\x9A\x8F\x81\x3C\x8F\xAB\x5B\x50\x0D\x58\xED\x93\x6E\x8F\x82\x20\xA4\x87\x8F\x66\x15\x61\xA6\xA4\x99\x29\xA1\x93\x2D\xA5\x29\x5E\xBB\x83\xAE\xAC\x98\x81\x93\x07\x80\x00\x4D\xDC\x66\x0B\x9B\xB8\x74\x80\xD7\x94\x6D\x23\x95\x88\x48\x31\x38\x9F\x60\x6C\xBD\x37\x06\x53\x23\xB2\xC6\x89\x4F\xB1\x88\xB5\x69\x05\x53\x2B\xB2\xCB\xA2\x08\x85\x3C\xB5\x81\x13\x50\x36\x3E\xD7\x2E\x0D\x0C\xE3\x6F\x81\x62\xD1\xA3\x21\xA9\x9F\xAB\x0A\xA7\x7D\x2A\x69\xA8\xB1\x4A\xD5\xA5\x6C\x8C\xA2\xB1\x25\x1D\x4E\xA1\xB3\x32\x2F\x73\x20\xB1\x7F\xA8\x41\xE0\x86\x77\x8D\x8E\x76\x03\x53\x28\xB9\x6E\x82\x9B\x9C\xCB\x19\xB3\x6E\xFE\x85\x29\x74\xBB\x80\xA1\x7A\x82\xA5\x5D\xCD\xB4\x84\x90\x5C\x74\xAD\xC5\xAA\x60\xAD\x0C\xB7\xBA\x03\xC6\xB9\x93\x38\x85\x2E\xBC\xD4\xA1\xBF\x97\x53\x91\x8B\x58\x9A\xAD\xA3\xB8\xBF\xB9\x5C\xB0\x6A\xBD\x76\x44\xA6\x77\xC0\x7D\xA6\xF8\x75\xBA\xAD\x18\xBD\x94\xA8\x99\x8C\xB6\x40\x2E\xB3\xBF\xEA\x8D\xA5\xB9\xBD\x2F\xA9\x62\x95\xB5\x28\x06\xE9\xB9\xA0\x5F\x43\x8C\x52\x70\xAF\x90\xA6\x75\x0E\x29\x6F\x0D\x0D\x9D\x02\xA5\x40\xC7\x42\xC1\x20\x04\xD5\xC1\xE5\x17\xC7\x33\x36\x06\x0B\x75\x1A\x25\x4E\x4C\x36\x81\xC0\x61\x95\x83\x0A\x79\x0E\x2B\xCC\x27\xC9\x38\x15\xD1\x8A\xA5\x2C\xBA\xBF\xF0\x55\xB6\x3E\x38\x0E\x76\x2F", }; class DarkSkinResourceLoaderPlugin : public Object, public IGuiPlugin diff --git a/Import/DarkSkin.h b/Import/DarkSkin.h index 1c6cf1bb1..13982c96c 100644 --- a/Import/DarkSkin.h +++ b/Import/DarkSkin.h @@ -38,8 +38,8 @@ This file is generated by Workflow compiler namespace vl_workflow_global { - struct __vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; - struct __vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + struct __vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + struct __vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; struct __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; struct __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; struct __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; @@ -53,28 +53,28 @@ namespace vl_workflow_global struct __vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; struct __vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; struct __vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; - struct __vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; - struct __vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + struct __vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + struct __vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; struct __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; struct __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; struct __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; - struct __vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + struct __vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; struct __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + struct __vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; struct __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; struct __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; struct __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; struct __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; - struct __vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; - struct __vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + struct __vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + struct __vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; struct __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; struct __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; struct __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; struct __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; - struct __vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; - struct __vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; - struct __vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + struct __vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + struct __vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + struct __vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; + struct __vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; struct __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; struct __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; struct __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; @@ -82,30 +82,30 @@ namespace vl_workflow_global struct __vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; struct __vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; struct __vwsnf13_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; - struct __vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + struct __vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + struct __vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; struct __vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; struct __vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; - struct __vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; - struct __vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + struct __vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + struct __vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; struct __vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; - struct __vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; - struct __vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + struct __vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + struct __vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; struct __vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; struct __vwsnf14_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; - struct __vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + struct __vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + struct __vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; struct __vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; struct __vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; struct __vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; struct __vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; - struct __vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; - struct __vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + struct __vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + struct __vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; struct __vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; - struct __vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; + struct __vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; struct __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; - struct __vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + struct __vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + struct __vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; struct __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; struct __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; struct __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; @@ -119,21 +119,21 @@ namespace vl_workflow_global struct __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; struct __vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; struct __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; - struct __vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; - struct __vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; - struct __vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; - struct __vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + struct __vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + struct __vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + struct __vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; + struct __vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; struct __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; struct __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; struct __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; struct __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; struct __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; - struct __vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; - struct __vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + struct __vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + struct __vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; struct __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; - struct __vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; - struct __vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + struct __vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + struct __vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; struct __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; struct __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; struct __vwsnf18_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -142,8 +142,8 @@ namespace vl_workflow_global struct __vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; struct __vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; struct __vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; - struct __vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; - struct __vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + struct __vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + struct __vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; struct __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; struct __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; struct __vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; @@ -155,8 +155,8 @@ namespace vl_workflow_global struct __vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; struct __vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; struct __vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; - struct __vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; - struct __vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + struct __vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + struct __vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; struct __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; struct __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; struct __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -166,8 +166,8 @@ namespace vl_workflow_global struct __vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; struct __vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; struct __vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; - struct __vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; - struct __vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + struct __vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + struct __vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; struct __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; struct __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; struct __vwsnf21_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -176,8 +176,8 @@ namespace vl_workflow_global struct __vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; struct __vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; struct __vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; - struct __vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; - struct __vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + struct __vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + struct __vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; struct __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; struct __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; struct __vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; @@ -189,15 +189,15 @@ namespace vl_workflow_global struct __vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; struct __vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; struct __vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; - struct __vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; - struct __vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + struct __vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + struct __vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; struct __vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; struct __vwsnf23_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; struct __vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; struct __vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; - struct __vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; - struct __vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + struct __vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + struct __vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; struct __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; struct __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; struct __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; @@ -209,76 +209,76 @@ namespace vl_workflow_global struct __vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; struct __vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; struct __vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; - struct __vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; - struct __vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; - struct __vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; - struct __vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; - struct __vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; + struct __vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + struct __vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + struct __vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + struct __vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + struct __vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; struct __vwsnf25_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; - struct __vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + struct __vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; + struct __vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; struct __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; struct __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; struct __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; struct __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; - struct __vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; - struct __vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + struct __vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + struct __vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; struct __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; - struct __vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + struct __vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; struct __vwsnf26_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; - struct __vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; - struct __vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; - struct __vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; - struct __vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; - struct __vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; - struct __vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; - struct __vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; - struct __vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; - struct __vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + struct __vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + struct __vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + struct __vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + struct __vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; + struct __vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + struct __vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + struct __vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + struct __vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + struct __vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; + struct __vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; struct __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + struct __vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; struct __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; struct __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; struct __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; struct __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; - struct __vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; - struct __vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + struct __vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + struct __vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; struct __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; - struct __vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; - struct __vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + struct __vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + struct __vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; struct __vwsnf28_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; struct __vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; struct __vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; struct __vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; struct __vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; - struct __vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; - struct __vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + struct __vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + struct __vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; struct __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; struct __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; struct __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; struct __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf2_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; - struct __vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + struct __vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + struct __vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; struct __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; struct __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; struct __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; struct __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; struct __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; - struct __vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; - struct __vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + struct __vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + struct __vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; struct __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; struct __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; - struct __vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; - struct __vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + struct __vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + struct __vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + struct __vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; struct __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; struct __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; struct __vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; - struct __vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; - struct __vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + struct __vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + struct __vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; struct __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; struct __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; struct __vwsnf31_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -293,18 +293,18 @@ namespace vl_workflow_global struct __vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; struct __vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; struct __vwsnf32_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; - struct __vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + struct __vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + struct __vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; struct __vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; - struct __vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; - struct __vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + struct __vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + struct __vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; struct __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; struct __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; struct __vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; struct __vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; - struct __vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + struct __vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; struct __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + struct __vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; struct __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; struct __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; struct __vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; @@ -312,8 +312,8 @@ namespace vl_workflow_global struct __vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; struct __vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; struct __vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; - struct __vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; - struct __vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + struct __vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + struct __vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; struct __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; struct __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; @@ -322,29 +322,40 @@ namespace vl_workflow_global struct __vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; struct __vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; struct __vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; - struct __vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; + struct __vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + struct __vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + struct __vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; struct __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; + struct __vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; struct __vwsnf36_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - struct __vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; + struct __vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; struct __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; + struct __vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + struct __vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; struct __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -365,14 +376,14 @@ namespace vl_workflow_global struct __vwsnf53_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf54_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; + struct __vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; struct __vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; struct __vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; struct __vwsnf5_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; struct __vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; struct __vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; - struct __vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + struct __vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; struct __vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; struct __vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; struct __vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; @@ -381,21 +392,21 @@ namespace vl_workflow_global struct __vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; struct __vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; struct __vwsnf6_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; - struct __vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + struct __vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + struct __vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; struct __vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; - struct __vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; - struct __vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + struct __vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + struct __vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; struct __vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; - struct __vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + struct __vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; struct __vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; - struct __vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; - struct __vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + struct __vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + struct __vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; struct __vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; struct __vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; struct __vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; @@ -406,16 +417,16 @@ namespace vl_workflow_global struct __vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; struct __vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; struct __vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; - struct __vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; - struct __vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + struct __vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + struct __vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; struct __vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; struct __vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; struct __vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; struct __vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; - struct __vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; + struct __vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; struct __vwsnf9_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; class __vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -426,7 +437,7 @@ namespace vl_workflow_global class __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc10_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc110_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -434,7 +445,7 @@ namespace vl_workflow_global class __vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc11_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -443,7 +454,7 @@ namespace vl_workflow_global class __vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -455,14 +466,14 @@ namespace vl_workflow_global class __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc136_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc137_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -473,32 +484,32 @@ namespace vl_workflow_global class __vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc157_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -506,20 +517,20 @@ namespace vl_workflow_global class __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -534,16 +545,16 @@ namespace vl_workflow_global class __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc207_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc211_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -552,7 +563,7 @@ namespace vl_workflow_global class __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc224_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -560,23 +571,33 @@ namespace vl_workflow_global class __vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -586,15 +607,15 @@ namespace vl_workflow_global class __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc3_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -607,51 +628,51 @@ namespace vl_workflow_global class __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - class __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + class __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; class __vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -673,6 +694,8 @@ namespace darkskin class ComboBoxTemplate; class CustomControlTemplateConstructor; class CustomControlTemplate; + class CustomFrameWindowTemplateConstructor; + class CustomFrameWindowTemplate; class DateButtonTemplateConstructor; class DateButtonTemplate; class DatePickerTemplateConstructor; @@ -761,6 +784,8 @@ namespace darkskin class ShortcutKeyTemplate; class SinglelineTextBoxTemplateConstructor; class SinglelineTextBoxTemplate; + class SystemFrameWindowTemplateConstructor; + class SystemFrameWindowTemplate; class TabHeaderButtonTemplateConstructor; class TabHeaderButtonTemplate; class TabHeaderTemplateConstructor; @@ -797,15 +822,13 @@ namespace darkskin class VScrollTemplate; class VTrackerTemplateConstructor; class VTrackerTemplate; - class WindowTemplateConstructor; - class WindowTemplate; class BottomScrollButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc157_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -822,10 +845,10 @@ namespace darkskin class BottomScrollButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::BottomScrollButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::BottomScrollButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc157_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -842,12 +865,12 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -875,12 +898,12 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc4_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc5_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc6_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf58_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf59_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf60_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf61_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -896,10 +919,10 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; @@ -907,6 +930,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf67_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -920,7 +945,7 @@ namespace darkskin ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_4; ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement> __vwsn_precompile_5; ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_6; - ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_7; + ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement> __vwsn_precompile_7; ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_8; ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_9; ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_10; @@ -940,10 +965,10 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc12_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc13_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc14_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc7_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc8_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf63_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf64_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf65_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; @@ -951,6 +976,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf67_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf68_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf69_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -961,7 +988,6 @@ namespace darkskin class ComboBoxTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -970,8 +996,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; @@ -981,6 +1006,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1004,7 +1031,6 @@ namespace darkskin class ComboBoxTemplate : public ::vl::presentation::templates::GuiDateComboBoxTemplate, public ::darkskin::ComboBoxTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ComboBoxTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1013,8 +1039,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc32_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc33_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; @@ -1024,6 +1049,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf90_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf91_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf92_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1055,12 +1082,181 @@ namespace darkskin ~CustomControlTemplate(); }; + class CustomFrameWindowTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; +#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::presentation::compositions::GuiBoundsComposition* container; + ::darkskin::CustomFrameWindowTemplate* self; + ::vl::presentation::compositions::GuiTableComposition* frameTable; + ::vl::presentation::compositions::GuiTableComposition* contentTable; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_0; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_1; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement> __vwsn_precompile_2; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_3; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_5; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_7; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_8; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_9; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_10; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_11; + ::vl::presentation::controls::GuiButton* __vwsn_precompile_12; + ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_13; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_14; + ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement> __vwsn_precompile_15; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_16; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_17; + ::vl::presentation::controls::GuiButton* __vwsn_precompile_18; + ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_19; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_20; + ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement> __vwsn_precompile_21; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_22; + ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement> __vwsn_precompile_23; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_24; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_25; + ::vl::presentation::controls::GuiButton* __vwsn_precompile_26; + ::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_precompile_27; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_28; + ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement> __vwsn_precompile_29; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_30; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_31; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_32; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_33; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_34; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_35; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_36; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_37; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_38; + void __vwsn_darkskin_CustomFrameWindowTemplate_Initialize(::darkskin::CustomFrameWindowTemplate* __vwsn_this_); + public: + CustomFrameWindowTemplateConstructor(); + }; + + class CustomFrameWindowTemplate : public ::vl::presentation::templates::GuiWindowTemplate, public ::darkskin::CustomFrameWindowTemplateConstructor, public ::vl::reflection::Description + { + friend class ::darkskin::CustomFrameWindowTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_; +#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + CustomFrameWindowTemplate(); + ~CustomFrameWindowTemplate(); + }; + class DateButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1078,10 +1274,10 @@ namespace darkskin class DateButtonTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::DateButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::DateButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1092,19 +1288,19 @@ namespace darkskin class DatePickerTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1119,19 +1315,19 @@ namespace darkskin class DatePickerTemplate : public ::vl::presentation::templates::GuiDatePickerTemplate, public ::darkskin::DatePickerTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::DatePickerTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc60_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc61_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf138_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf139_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1165,8 +1361,8 @@ namespace darkskin class DocumentTextBoxTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1183,8 +1379,8 @@ namespace darkskin class DocumentTextBoxTemplate : public ::vl::presentation::templates::GuiDocumentLabelTemplate, public ::darkskin::DocumentTextBoxTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::DocumentTextBoxTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1195,10 +1391,10 @@ namespace darkskin class DocumentViewerTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1216,10 +1412,10 @@ namespace darkskin class DocumentViewerTemplate : public ::vl::presentation::templates::GuiDocumentViewerTemplate, public ::darkskin::DocumentViewerTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::DocumentViewerTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1230,18 +1426,18 @@ namespace darkskin class ExpandingDecoratorTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1261,18 +1457,18 @@ namespace darkskin class ExpandingDecoratorTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::ExpandingDecoratorTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ExpandingDecoratorTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc35_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc38_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf95_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf96_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf97_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf98_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1283,14 +1479,14 @@ namespace darkskin class GroupBoxTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1312,14 +1508,14 @@ namespace darkskin class GroupBoxTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::darkskin::GroupBoxTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::GroupBoxTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc64_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc66_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf142_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf143_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1330,8 +1526,8 @@ namespace darkskin class HScrollHandleTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1347,8 +1543,8 @@ namespace darkskin class HScrollHandleTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::HScrollHandleTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::HScrollHandleTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1359,15 +1555,15 @@ namespace darkskin class HScrollTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1395,15 +1591,15 @@ namespace darkskin class HScrollTemplate : public ::vl::presentation::templates::GuiScrollTemplate, public ::darkskin::HScrollTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::HScrollTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc160_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc161_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1415,11 +1611,11 @@ namespace darkskin class HTrackerTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1443,11 +1639,11 @@ namespace darkskin class HTrackerTemplate : public ::vl::presentation::templates::GuiScrollTemplate, public ::darkskin::HTrackerTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::HTrackerTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc163_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1459,8 +1655,8 @@ namespace darkskin class ItemBackgroundTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1476,8 +1672,8 @@ namespace darkskin class ItemBackgroundTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::ItemBackgroundTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ItemBackgroundTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1488,12 +1684,12 @@ namespace darkskin class LabelTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1508,12 +1704,12 @@ namespace darkskin class LabelTemplate : public ::vl::presentation::templates::GuiLabelTemplate, public ::darkskin::LabelTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::LabelTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf146_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1524,10 +1720,10 @@ namespace darkskin class LeftScrollButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1544,10 +1740,10 @@ namespace darkskin class LeftScrollButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::LeftScrollButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::LeftScrollButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc165_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1558,7 +1754,6 @@ namespace darkskin class ListViewColumnHeaderTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1570,8 +1765,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; @@ -1584,6 +1778,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1614,7 +1810,6 @@ namespace darkskin class ListViewColumnHeaderTemplate : public ::vl::presentation::templates::GuiListViewColumnHeaderTemplate, public ::darkskin::ListViewColumnHeaderTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ListViewColumnHeaderTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc42_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc43_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1626,8 +1821,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc51_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc52_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; @@ -1640,6 +1834,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf111_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf112_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf113_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1650,12 +1846,12 @@ namespace darkskin class ListViewTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1673,12 +1869,12 @@ namespace darkskin class ListViewTemplate : public ::vl::presentation::templates::GuiListViewTemplate, public ::darkskin::ListViewTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ListViewTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1689,15 +1885,15 @@ namespace darkskin class MenuBarButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1714,15 +1910,15 @@ namespace darkskin class MenuBarButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::MenuBarButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::MenuBarButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc194_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc195_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf315_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1733,7 +1929,6 @@ namespace darkskin class MenuItemButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1746,8 +1941,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc207_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; @@ -1760,6 +1954,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1785,7 +1981,6 @@ namespace darkskin class MenuItemButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::MenuItemButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::MenuItemButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc198_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc199_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1798,8 +1993,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc207_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf320_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; @@ -1812,6 +2006,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf327_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf328_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf329_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1848,10 +2044,10 @@ namespace darkskin class MultilineTextBoxTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1869,10 +2065,10 @@ namespace darkskin class MultilineTextBoxTemplate : public ::vl::presentation::templates::GuiMultilineTextBoxTemplate, public ::darkskin::MultilineTextBoxTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::MultilineTextBoxTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1883,8 +2079,8 @@ namespace darkskin class ProgressBarTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1904,8 +2100,8 @@ namespace darkskin class ProgressBarTemplate : public ::vl::presentation::templates::GuiScrollTemplate, public ::darkskin::ProgressBarTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ProgressBarTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1916,7 +2112,6 @@ namespace darkskin class RadioButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1924,14 +2119,15 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -1960,7 +2156,6 @@ namespace darkskin class RadioButtonTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::RadioButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RadioButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc16_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc17_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -1968,14 +2163,15 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc20_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc21_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc22_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf72_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf73_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf74_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf75_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf76_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf77_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2009,12 +2205,12 @@ namespace darkskin class RibbonGalleryDropdownButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2033,12 +2229,12 @@ namespace darkskin class RibbonGalleryDropdownButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc80_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc81_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf158_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2049,7 +2245,7 @@ namespace darkskin class RibbonGalleryItemListTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend struct ::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2063,7 +2259,7 @@ namespace darkskin class RibbonGalleryItemListTemplate : public ::vl::presentation::templates::GuiTextListTemplate, public ::darkskin::RibbonGalleryItemListTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonGalleryItemListTemplateConstructor; - friend struct ::vl_workflow_global::__vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2074,11 +2270,9 @@ namespace darkskin class RibbonGalleryTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; @@ -2091,6 +2285,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2118,11 +2314,9 @@ namespace darkskin class RibbonGalleryTemplate : public ::vl::presentation::templates::GuiRibbonGalleryListTemplate, public ::darkskin::RibbonGalleryTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonGalleryTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc84_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; @@ -2135,6 +2329,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf172_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2145,10 +2341,10 @@ namespace darkskin class RibbonGroupExpandButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2164,10 +2360,10 @@ namespace darkskin class RibbonGroupExpandButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::RibbonGroupExpandButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonGroupExpandButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc86_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2204,16 +2400,16 @@ namespace darkskin class RibbonGroupTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2237,16 +2433,16 @@ namespace darkskin class RibbonGroupTemplate : public ::vl::presentation::templates::GuiRibbonGroupTemplate, public ::darkskin::RibbonGroupTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonGroupTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc88_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc89_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf180_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2257,12 +2453,12 @@ namespace darkskin class RibbonIconLabelTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2280,12 +2476,12 @@ namespace darkskin class RibbonIconLabelTemplate : public ::vl::presentation::templates::GuiRibbonIconLabelTemplate, public ::darkskin::RibbonIconLabelTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonIconLabelTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc91_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc92_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2297,15 +2493,13 @@ namespace darkskin class RibbonLargeButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { friend class ::vl_workflow_global::__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; @@ -2313,6 +2507,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2337,15 +2533,13 @@ namespace darkskin { friend class ::darkskin::RibbonLargeButtonTemplateConstructor; friend class ::vl_workflow_global::__vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc94_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc96_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc97_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc98_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf190_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; @@ -2353,6 +2547,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf192_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf193_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf194_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2363,7 +2559,6 @@ namespace darkskin class RibbonLargeDropdownButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2373,8 +2568,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc110_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; @@ -2384,6 +2578,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2411,7 +2607,6 @@ namespace darkskin class RibbonLargeDropdownButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::RibbonLargeDropdownButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonLargeDropdownButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc102_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc104_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2421,8 +2616,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc110_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf199_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; @@ -2432,6 +2626,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf203_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf204_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf205_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2442,7 +2638,6 @@ namespace darkskin class RibbonLargeSplitButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2450,8 +2645,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; @@ -2460,6 +2654,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2485,7 +2681,6 @@ namespace darkskin class RibbonLargeSplitButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::RibbonLargeSplitButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonLargeSplitButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc112_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc114_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2493,8 +2688,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc118_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf210_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; @@ -2503,6 +2697,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf213_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf214_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf215_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2513,7 +2709,6 @@ namespace darkskin class RibbonSmallButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2521,8 +2716,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; @@ -2530,6 +2724,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2552,7 +2748,6 @@ namespace darkskin class RibbonSmallButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::RibbonSmallButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonSmallButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc120_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc122_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2560,8 +2755,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc124_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf220_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; @@ -2569,6 +2763,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf222_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf223_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf224_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2579,7 +2775,6 @@ namespace darkskin class RibbonSmallDropdownButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2590,8 +2785,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc136_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc137_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; @@ -2602,6 +2796,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2628,7 +2824,6 @@ namespace darkskin class RibbonSmallDropdownButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::RibbonSmallDropdownButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonSmallDropdownButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc128_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc130_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2639,8 +2834,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc136_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc137_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf229_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; @@ -2651,6 +2845,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf234_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf235_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf236_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2661,18 +2857,18 @@ namespace darkskin class RibbonSmallIconLabelTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2693,18 +2889,18 @@ namespace darkskin class RibbonSmallIconLabelTemplate : public ::vl::presentation::templates::GuiRibbonIconLabelTemplate, public ::darkskin::RibbonSmallIconLabelTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonSmallIconLabelTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc139_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc140_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc141_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc142_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc143_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf239_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf240_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf241_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf242_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2715,7 +2911,6 @@ namespace darkskin class RibbonSmallSplitButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2725,8 +2920,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; @@ -2737,6 +2931,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2764,7 +2960,6 @@ namespace darkskin class RibbonSmallSplitButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::RibbonSmallSplitButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonSmallSplitButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc145_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc147_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -2774,8 +2969,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; @@ -2786,6 +2980,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf252_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf253_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf254_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2796,18 +2992,18 @@ namespace darkskin class RibbonSplitArrowTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2828,18 +3024,18 @@ namespace darkskin class RibbonSplitArrowTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::RibbonSplitArrowTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonSplitArrowTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc78_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf152_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf153_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf154_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf155_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2850,10 +3046,10 @@ namespace darkskin class RibbonToolstripHeaderTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2869,10 +3065,10 @@ namespace darkskin class RibbonToolstripHeaderTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::darkskin::RibbonToolstripHeaderTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RibbonToolstripHeaderTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc155_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2942,10 +3138,10 @@ namespace darkskin class RightScrollButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2962,10 +3158,10 @@ namespace darkskin class RightScrollButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::RightScrollButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::RightScrollButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc168_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2976,8 +3172,8 @@ namespace darkskin class ScrollViewTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend struct ::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -2995,8 +3191,8 @@ namespace darkskin class ScrollViewTemplate : public ::vl::presentation::templates::GuiScrollViewTemplate, public ::darkskin::ScrollViewTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ScrollViewTemplateConstructor; - friend struct ::vl_workflow_global::__vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3007,12 +3203,12 @@ namespace darkskin class ShortcutKeyTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3031,12 +3227,12 @@ namespace darkskin class ShortcutKeyTemplate : public ::vl::presentation::templates::GuiLabelTemplate, public ::darkskin::ShortcutKeyTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ShortcutKeyTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc71_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc72_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf149_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3047,8 +3243,8 @@ namespace darkskin class SinglelineTextBoxTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3065,8 +3261,8 @@ namespace darkskin class SinglelineTextBoxTemplate : public ::vl::presentation::templates::GuiSinglelineTextBoxTemplate, public ::darkskin::SinglelineTextBoxTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::SinglelineTextBoxTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3075,22 +3271,47 @@ namespace darkskin ~SinglelineTextBoxTemplate(); }; + class SystemFrameWindowTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { +#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::presentation::compositions::GuiBoundsComposition* container; + ::darkskin::SystemFrameWindowTemplate* __vwsn_precompile_0; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_1; + void __vwsn_darkskin_SystemFrameWindowTemplate_Initialize(::darkskin::SystemFrameWindowTemplate* __vwsn_this_); + public: + SystemFrameWindowTemplateConstructor(); + }; + + class SystemFrameWindowTemplate : public ::vl::presentation::templates::GuiWindowTemplate, public ::darkskin::SystemFrameWindowTemplateConstructor, public ::vl::reflection::Description + { + friend class ::darkskin::SystemFrameWindowTemplateConstructor; +#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + SystemFrameWindowTemplate(); + ~SystemFrameWindowTemplate(); + }; + class TabHeaderButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3109,20 +3330,20 @@ namespace darkskin class TabHeaderButtonTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::TabHeaderButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TabHeaderButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc178_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf290_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf291_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf292_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf293_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf294_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3141,14 +3362,14 @@ namespace darkskin class TabHeaderTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3165,14 +3386,14 @@ namespace darkskin class TabHeaderTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::darkskin::TabHeaderTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TabHeaderTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc185_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3189,16 +3410,16 @@ namespace darkskin class TabTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3223,16 +3444,16 @@ namespace darkskin class TabTemplate : public ::vl::presentation::templates::GuiRibbonTabTemplate, public ::darkskin::TabTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TabTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc188_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3248,13 +3469,13 @@ namespace darkskin class TextListTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3272,13 +3493,13 @@ namespace darkskin class TextListTemplate : public ::vl::presentation::templates::GuiTextListTemplate, public ::darkskin::TextListTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TextListTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3339,6 +3560,7 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf53_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf54_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; + friend struct ::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf5_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf6_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -3407,6 +3629,7 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf53_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf54_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf55_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; + friend struct ::vl_workflow_global::__vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf5_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf6_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; friend struct ::vl_workflow_global::__vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_; @@ -3422,17 +3645,17 @@ namespace darkskin class ToolstripButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3452,17 +3675,17 @@ namespace darkskin class ToolstripButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::ToolstripButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ToolstripButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc213_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc215_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc216_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf337_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf338_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3473,7 +3696,6 @@ namespace darkskin class ToolstripDropdownButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -3481,8 +3703,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc224_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; @@ -3490,6 +3711,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3513,7 +3736,6 @@ namespace darkskin class ToolstripDropdownButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::ToolstripDropdownButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ToolstripDropdownButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc218_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc220_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; @@ -3521,8 +3743,7 @@ namespace darkskin friend class ::vl_workflow_global::__vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc223_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc224_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf343_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; @@ -3530,6 +3751,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf345_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf346_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf347_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3566,12 +3789,12 @@ namespace darkskin class ToolstripSplitArrowTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc211_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3589,12 +3812,12 @@ namespace darkskin class ToolstripSplitArrowTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::darkskin::ToolstripSplitArrowTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ToolstripSplitArrowTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc210_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc211_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf332_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3605,15 +3828,13 @@ namespace darkskin class ToolstripSplitButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; @@ -3621,6 +3842,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3645,15 +3868,13 @@ namespace darkskin class ToolstripSplitButtonTemplate : public ::vl::presentation::templates::GuiToolstripButtonTemplate, public ::darkskin::ToolstripSplitButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::ToolstripSplitButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc226_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc228_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc229_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; @@ -3661,6 +3882,8 @@ namespace darkskin friend struct ::vl_workflow_global::__vwsnf354_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf355_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf356_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3748,10 +3971,10 @@ namespace darkskin class TopScrollButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3768,10 +3991,10 @@ namespace darkskin class TopScrollButtonTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::TopScrollButtonTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TopScrollButtonTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc170_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3782,12 +4005,12 @@ namespace darkskin class TreeViewTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3805,12 +4028,12 @@ namespace darkskin class TreeViewTemplate : public ::vl::presentation::templates::GuiTreeViewTemplate, public ::darkskin::TreeViewTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::TreeViewTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3821,8 +4044,8 @@ namespace darkskin class VScrollHandleTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3838,8 +4061,8 @@ namespace darkskin class VScrollHandleTemplate : public ::vl::presentation::templates::GuiButtonTemplate, public ::darkskin::VScrollHandleTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::VScrollHandleTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3850,15 +4073,15 @@ namespace darkskin class VScrollTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3886,15 +4109,15 @@ namespace darkskin class VScrollTemplate : public ::vl::presentation::templates::GuiScrollTemplate, public ::darkskin::VScrollTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::VScrollTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc173_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc174_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; friend struct ::vl_workflow_global::__vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3906,11 +4129,11 @@ namespace darkskin class VTrackerTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description { - friend class ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3934,11 +4157,11 @@ namespace darkskin class VTrackerTemplate : public ::vl::presentation::templates::GuiScrollTemplate, public ::darkskin::VTrackerTemplateConstructor, public ::vl::reflection::Description { friend class ::darkskin::VTrackerTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend class ::vl_workflow_global::__vwsnc176_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend class ::vl_workflow_global::__vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription; friend struct ::vl_workflow_global::__vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; + friend struct ::vl_workflow_global::__vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; #endif @@ -3948,128 +4171,6 @@ namespace darkskin ~VTrackerTemplate(); }; - class WindowTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description - { - friend class ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; -#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA - friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; -#endif - protected: - ::vl::presentation::compositions::GuiBoundsComposition* container; - ::darkskin::WindowTemplate* self; - ::vl::presentation::compositions::GuiTableComposition* frameTable; - ::vl::presentation::compositions::GuiTableComposition* contentTable; - ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_0; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_1; - ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement> __vwsn_precompile_2; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_3; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_5; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_7; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_8; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_9; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_10; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_11; - ::vl::presentation::controls::GuiButton* __vwsn_precompile_12; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_13; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_14; - ::vl::presentation::controls::GuiButton* __vwsn_precompile_15; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_16; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_17; - ::vl::presentation::controls::GuiButton* __vwsn_precompile_18; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_19; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_20; - ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_21; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_22; - ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_23; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_24; - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_25; - ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_26; - ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_27; - void __vwsn_darkskin_WindowTemplate_Initialize(::darkskin::WindowTemplate* __vwsn_this_); - public: - WindowTemplateConstructor(); - }; - - class WindowTemplate : public ::vl::presentation::templates::GuiWindowTemplate, public ::darkskin::WindowTemplateConstructor, public ::vl::reflection::Description - { - friend class ::darkskin::WindowTemplateConstructor; - friend class ::vl_workflow_global::__vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend class ::vl_workflow_global::__vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription; - friend struct ::vl_workflow_global::__vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; - friend struct ::vl_workflow_global::__vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_; -#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA - friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; -#endif - public: - WindowTemplate(); - ~WindowTemplate(); - }; - } /*********************************************************************** Global Variables and Functions @@ -4088,22 +4189,22 @@ namespace vl_workflow_global Closures ***********************************************************************/ - struct __vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ + struct __vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_ { - ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; - __vwsnf100_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf100_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ + struct __vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_ { - ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::ItemBackgroundTemplateConstructor* __vwsnthis_0; - __vwsnf101_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf101_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ @@ -4112,7 +4213,7 @@ Closures __vwsnf102_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ @@ -4121,7 +4222,7 @@ Closures __vwsnf103_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf104_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ @@ -4223,22 +4324,22 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ + struct __vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ { - ::darkskin::ListViewTemplateConstructor* __vwsnthis_0; + ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf114_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf114_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiListViewColumnHeaderTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ + struct __vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_ { - ::darkskin::ListViewTemplateConstructor* __vwsnthis_0; + ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf115_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf115_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize_(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ @@ -4247,7 +4348,7 @@ Closures __vwsnf116_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiListViewColumnHeaderTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ @@ -4256,7 +4357,7 @@ Closures __vwsnf117_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ @@ -4265,16 +4366,16 @@ Closures __vwsnf118_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ + struct __vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ { - ::darkskin::TextListTemplateConstructor* __vwsnthis_0; + ::darkskin::ListViewTemplateConstructor* __vwsnthis_0; - __vwsnf119_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); + __vwsnf119_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf11_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -4286,13 +4387,13 @@ Closures ::vl::presentation::templates::GuiRibbonGroupTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ + struct __vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_ { - ::darkskin::TextListTemplateConstructor* __vwsnthis_0; + ::darkskin::ListViewTemplateConstructor* __vwsnthis_0; - __vwsnf120_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); + __vwsnf120_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize_(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf121_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ @@ -4310,7 +4411,7 @@ Closures __vwsnf122_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ @@ -4319,7 +4420,7 @@ Closures __vwsnf123_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ @@ -4328,25 +4429,25 @@ Closures __vwsnf124_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ + struct __vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ { - ::darkskin::TreeViewTemplateConstructor* __vwsnthis_0; + ::darkskin::TextListTemplateConstructor* __vwsnthis_0; - __vwsnf125_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf125_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ + struct __vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_ { - ::darkskin::TreeViewTemplateConstructor* __vwsnthis_0; + ::darkskin::TextListTemplateConstructor* __vwsnthis_0; - __vwsnf126_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf126_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize_(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ @@ -4355,7 +4456,7 @@ Closures __vwsnf127_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ @@ -4364,7 +4465,7 @@ Closures __vwsnf128_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ @@ -4373,7 +4474,7 @@ Closures __vwsnf129_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf12_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -4385,40 +4486,40 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_ + struct __vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ { - ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::TreeViewTemplateConstructor* __vwsnthis_0; - __vwsnf130_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf130_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_ + struct __vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_ { - ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::TreeViewTemplateConstructor* __vwsnthis_0; - __vwsnf131_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf131_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize_(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ + struct __vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_ { - ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; + ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; - __vwsnf132_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); + __vwsnf132_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ + struct __vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_ { - ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; + ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; - __vwsnf133_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); + __vwsnf133_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize_(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ @@ -4427,7 +4528,7 @@ Closures __vwsnf134_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiComboBoxTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ @@ -4436,7 +4537,7 @@ Closures __vwsnf135_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ @@ -4445,7 +4546,7 @@ Closures __vwsnf136_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiComboBoxTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf137_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ @@ -4484,20 +4585,20 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_ + struct __vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ { - ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; - __vwsnf140_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf140_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_ + struct __vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_ { - ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; - __vwsnf141_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf141_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize_(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4520,20 +4621,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_ + struct __vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_ { - ::darkskin::LabelTemplateConstructor* __vwsnthis_0; + ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; - __vwsnf144_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf144_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_ + struct __vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_ { - ::darkskin::LabelTemplateConstructor* __vwsnthis_0; + ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; - __vwsnf145_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf145_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize_(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4547,20 +4648,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_ + struct __vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_ { - ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; + ::darkskin::LabelTemplateConstructor* __vwsnthis_0; - __vwsnf147_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); + __vwsnf147_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_ + struct __vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_ { - ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; + ::darkskin::LabelTemplateConstructor* __vwsnthis_0; - __vwsnf148_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); + __vwsnf148_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize_(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4583,20 +4684,20 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_ + struct __vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_ { - ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; - __vwsnf150_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnf150_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_ + struct __vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_ { - ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; - __vwsnf151_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnf151_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize_(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4637,20 +4738,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_ + struct __vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_ { - ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnf156_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf156_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_ + struct __vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_ { - ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnf157_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf157_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize_(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4664,13 +4765,13 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_ + struct __vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf159_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnctorthis_0); + __vwsnf159_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf15_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -4682,20 +4783,20 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ + struct __vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf160_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); + __vwsnf160_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize_(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ + struct __vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_ { - ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnthis_0; - __vwsnf161_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); + __vwsnf161_DarkSkin_darkskin_RibbonGalleryItemListTemplateConstructor___vwsn_darkskin_RibbonGalleryItemListTemplate_Initialize_(::darkskin::RibbonGalleryItemListTemplateConstructor* __vwsnctorthis_0); ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; @@ -4706,7 +4807,7 @@ Closures __vwsnf162_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiScrollViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4715,7 +4816,7 @@ Closures __vwsnf163_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4724,7 +4825,7 @@ Closures __vwsnf164_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4733,7 +4834,7 @@ Closures __vwsnf165_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4742,7 +4843,7 @@ Closures __vwsnf166_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiRibbonToolstripMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf167_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4760,7 +4861,7 @@ Closures __vwsnf168_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4769,7 +4870,7 @@ Closures __vwsnf169_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf16_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -4787,7 +4888,7 @@ Closures __vwsnf170_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf171_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ @@ -4814,43 +4915,43 @@ Closures __vwsnf173_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_ + struct __vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ { - ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; - __vwsnf174_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf174_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; - struct __vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_ + struct __vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_ { - ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; - __vwsnf175_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf175_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize_(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; - struct __vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ + struct __vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_ { - ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; - __vwsnf176_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); + __vwsnf176_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ + struct __vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_ { - ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; - __vwsnf177_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); + __vwsnf177_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize_(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ @@ -4859,7 +4960,7 @@ Closures __vwsnf178_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ @@ -4868,7 +4969,7 @@ Closures __vwsnf179_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf17_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -4895,7 +4996,7 @@ Closures __vwsnf181_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ @@ -4904,25 +5005,25 @@ Closures __vwsnf182_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_ + struct __vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ { - ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; - __vwsnf183_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf183_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; - struct __vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_ + struct __vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_ { - ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; - __vwsnf184_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf184_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize_(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; struct __vwsnf185_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_ @@ -4934,20 +5035,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_ + struct __vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_ { - ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnf186_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf186_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_ + struct __vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_ { - ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnf187_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf187_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize_(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -4958,7 +5059,7 @@ Closures __vwsnf188_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf189_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_ @@ -5024,20 +5125,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_ + struct __vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_ { - ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; - __vwsnf195_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf195_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_ + struct __vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_ { - ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; - __vwsnf196_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf196_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize_(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5048,7 +5149,7 @@ Closures __vwsnf197_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf198_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_ @@ -5141,22 +5242,22 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ + struct __vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf206_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf206_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ + struct __vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf207_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf207_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize_(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ @@ -5165,7 +5266,7 @@ Closures __vwsnf208_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ @@ -5174,7 +5275,7 @@ Closures __vwsnf209_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf20_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -5240,20 +5341,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_ + struct __vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf216_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf216_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_ + struct __vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf217_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf217_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize_(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5264,7 +5365,7 @@ Closures __vwsnf218_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf219_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_ @@ -5330,20 +5431,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_ + struct __vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; - __vwsnf225_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf225_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_ + struct __vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; - __vwsnf226_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf226_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize_(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5354,7 +5455,7 @@ Closures __vwsnf227_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf228_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_ @@ -5447,20 +5548,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_ + struct __vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf237_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf237_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_ + struct __vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_ { - ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf238_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnf238_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize_(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5510,22 +5611,22 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ + struct __vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_ { - ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnf243_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf243_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ + struct __vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_ { - ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnf244_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf244_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize_(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ @@ -5534,7 +5635,7 @@ Closures __vwsnf245_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ @@ -5543,7 +5644,7 @@ Closures __vwsnf246_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf247_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ @@ -5627,47 +5728,47 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_ + struct __vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ { - ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf255_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf255_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_ + struct __vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_ { - ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf256_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf256_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize_(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_ + struct __vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_ { - ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf257_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf257_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_ + struct __vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_ { - ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf258_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf258_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize_(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_ + struct __vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_ { - ::darkskin::HScrollHandleTemplateConstructor* __vwsnthis_0; + ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf259_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0); + __vwsnf259_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5681,22 +5782,22 @@ Closures ::vl::presentation::templates::GuiDatePickerTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ + struct __vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_ { - ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; + ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf260_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); + __vwsnf260_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize_(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ + struct __vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_ { - ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; + ::darkskin::HScrollHandleTemplateConstructor* __vwsnthis_0; - __vwsnf261_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); + __vwsnf261_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize_(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf262_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ @@ -5714,7 +5815,7 @@ Closures __vwsnf263_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ @@ -5723,7 +5824,7 @@ Closures __vwsnf264_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf265_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ @@ -5735,20 +5836,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_ + struct __vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ { - ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; - __vwsnf266_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnf266_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_ + struct __vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_ { - ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; - __vwsnf267_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnf267_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize_(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5759,14 +5860,14 @@ Closures __vwsnf268_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_ + struct __vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_ { - ::darkskin::LeftScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; - __vwsnf269_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf269_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5780,96 +5881,96 @@ Closures ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_ + struct __vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_ + { + ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; + + __vwsnf270_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize_(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_ { ::darkskin::LeftScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf270_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf271_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_ + struct __vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_ { - ::darkskin::ProgressBarTemplateConstructor* __vwsnthis_0; + ::darkskin::LeftScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf271_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0); + __vwsnf272_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize_(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_ + struct __vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_ { - ::darkskin::RightScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ProgressBarTemplateConstructor* __vwsnthis_0; - __vwsnf272_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf273_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize_(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_ + struct __vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_ { ::darkskin::RightScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf273_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf274_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_ + struct __vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_ { - ::darkskin::ScrollViewTemplateConstructor* __vwsnthis_0; + ::darkskin::RightScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf274_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf275_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize_(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_ + struct __vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_ { ::darkskin::ScrollViewTemplateConstructor* __vwsnthis_0; - __vwsnf275_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0); + __vwsnf276_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0); ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_ + struct __vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_ { - ::darkskin::TopScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ScrollViewTemplateConstructor* __vwsnthis_0; - __vwsnf276_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf277_DarkSkin_darkskin_ScrollViewTemplateConstructor___vwsn_darkskin_ScrollViewTemplate_Initialize_(::darkskin::ScrollViewTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_ + struct __vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_ { ::darkskin::TopScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf277_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf278_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_ + struct __vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_ { - ::darkskin::VScrollHandleTemplateConstructor* __vwsnthis_0; + ::darkskin::TopScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnf278_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0); + __vwsnf279_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize_(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ - { - ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; - - __vwsnf279_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); - - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; - }; - struct __vwsnf27_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ { ::darkskin::ThemeConstructor* __vwsnthis_0; @@ -5879,13 +5980,13 @@ Closures ::vl::presentation::templates::GuiSelectableButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ + struct __vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_ { - ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; + ::darkskin::VScrollHandleTemplateConstructor* __vwsnthis_0; - __vwsnf280_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); + __vwsnf280_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize_(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf281_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ @@ -5903,7 +6004,7 @@ Closures __vwsnf282_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ @@ -5912,7 +6013,7 @@ Closures __vwsnf283_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf284_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ @@ -5924,20 +6025,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_ + struct __vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ { - ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; - __vwsnf285_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnf285_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_ + struct __vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_ { - ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; - __vwsnf286_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnf286_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize_(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -5948,23 +6049,23 @@ Closures __vwsnf287_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_ + struct __vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_ { - ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; - __vwsnf288_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf288_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_ + struct __vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_ { - ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; - __vwsnf289_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf289_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize_(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6023,20 +6124,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_ + struct __vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_ { - ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; - __vwsnf295_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf295_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_ + struct __vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_ { - ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; - __vwsnf296_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnf296_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize_(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6047,7 +6148,7 @@ Closures __vwsnf297_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf298_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_ @@ -6065,7 +6166,7 @@ Closures __vwsnf299_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf29_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -6086,22 +6187,22 @@ Closures ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ + struct __vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_ { - ::darkskin::TabTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf300_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); + __vwsnf300_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __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; }; - struct __vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ + struct __vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_ { - ::darkskin::TabTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; - __vwsnf301_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); + __vwsnf301_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize_(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; struct __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ @@ -6110,7 +6211,7 @@ Closures __vwsnf302_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const; + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ @@ -6119,7 +6220,7 @@ Closures __vwsnf303_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ @@ -6128,7 +6229,7 @@ Closures __vwsnf304_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const; }; struct __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ @@ -6137,7 +6238,7 @@ Closures __vwsnf305_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiItemEventArgs* arguments) const; }; struct __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ @@ -6146,25 +6247,25 @@ Closures __vwsnf306_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_ + struct __vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ { - ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::TabTemplateConstructor* __vwsnthis_0; - __vwsnf307_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf307_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_ + struct __vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_ { - ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::TabTemplateConstructor* __vwsnthis_0; - __vwsnf308_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf308_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize_(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; }; struct __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_ @@ -6173,7 +6274,7 @@ Closures __vwsnf309_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf30_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -6185,29 +6286,29 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_ + struct __vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_ { - ::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnf310_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf310_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_ + struct __vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_ { - ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnf311_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf311_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize_(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_ + struct __vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_ { - ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnf312_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf312_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize_(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6218,7 +6319,7 @@ Closures __vwsnf313_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf314_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_ @@ -6239,20 +6340,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_ + struct __vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_ { - ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; - __vwsnf316_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf316_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_ + struct __vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_ { - ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; - __vwsnf317_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf317_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize_(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6263,7 +6364,7 @@ Closures __vwsnf318_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf319_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_ @@ -6383,20 +6484,20 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_ + struct __vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_ { - ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; - __vwsnf330_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnf330_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_ + struct __vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_ { - ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; - __vwsnf331_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnf331_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize_(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6410,20 +6511,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_ + struct __vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_ { - ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnf333_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf333_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_ + struct __vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_ { - ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnf334_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf334_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize_(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6434,7 +6535,7 @@ Closures __vwsnf335_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf336_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_ @@ -6464,13 +6565,13 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_ + struct __vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_ { - ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; - __vwsnf339_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf339_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf33_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -6482,11 +6583,11 @@ Closures ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_ + struct __vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_ { - ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; - __vwsnf340_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf340_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize_(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6497,7 +6598,7 @@ Closures __vwsnf341_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf342_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_ @@ -6554,22 +6655,22 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ + struct __vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_ { - ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf348_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf348_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ + struct __vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_ { - ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnf349_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf349_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize_(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf34_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -6587,7 +6688,7 @@ Closures __vwsnf350_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ @@ -6596,7 +6697,7 @@ Closures __vwsnf351_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf352_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ @@ -6644,31 +6745,31 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf357_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf357_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiWindowTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnf358_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf358_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize_(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf359_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf359_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiWindowTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf35_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -6680,92 +6781,92 @@ Closures ::vl::presentation::templates::GuiToolstripButtonTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf360_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf360_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf361_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf361_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf362_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf362_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf363_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf363_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf364_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf364_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf365_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf365_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf366_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf366_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf367_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf367_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf368_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf368_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf369_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf369_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -6779,153 +6880,252 @@ Closures ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf370_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf370_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf371_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf371_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf372_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf372_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf373_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf373_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf374_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf374_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf375_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf375_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_ + struct __vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf376_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize_(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnf376_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf377_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf378_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf379_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ { ::darkskin::ThemeConstructor* __vwsnthis_0; - __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf37_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiRibbonGalleryListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf380_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiTreeViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf381_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiListViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf382_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiDocumentLabelTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf383_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiDocumentLabelTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + __vwsnf384_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiDocumentViewerTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + struct __vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ { - ::darkskin::ThemeConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnf385_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ + { + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnf386_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + }; + + struct __vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_ + { + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnf387_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize_(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + void operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const; + }; + + struct __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf38_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf39_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTextListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf3_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiRibbonGalleryListTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf40_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTreeViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf41_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiListViewTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf42_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiDocumentLabelTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf43_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiDocumentLabelTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; + + __vwsnf44_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiDocumentViewerTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ + { + ::darkskin::ThemeConstructor* __vwsnthis_0; __vwsnf45_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); @@ -7031,13 +7231,13 @@ Closures ::vl::presentation::templates::GuiWindowTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_ + struct __vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ { - ::darkskin::ButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ThemeConstructor* __vwsnthis_0; - __vwsnf56_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf56_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_(::darkskin::ThemeConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiWindowTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf57_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_ @@ -7094,11 +7294,11 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_ + struct __vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_ { - ::darkskin::CheckBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::ButtonTemplateConstructor* __vwsnthis_0; - __vwsnf62_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf62_DarkSkin_darkskin_ButtonTemplateConstructor___vwsn_darkskin_ButtonTemplate_Initialize_(::darkskin::ButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -7175,20 +7375,20 @@ Closures ::vl::presentation::templates::GuiRibbonToolstripsTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_ + struct __vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_ { - ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::CheckBoxTemplateConstructor* __vwsnthis_0; - __vwsnf70_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf70_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_ + struct __vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_ { - ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::CheckBoxTemplateConstructor* __vwsnthis_0; - __vwsnf71_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnf71_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize_(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -7247,22 +7447,22 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_ + struct __vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_ { - ::darkskin::DocumentTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; - __vwsnf78_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf78_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_ + struct __vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_ { - ::darkskin::DocumentViewerTemplateConstructor* __vwsnthis_0; + ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; - __vwsnf79_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); + __vwsnf79_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize_(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf7_DarkSkin_darkskin_ThemeConstructor___vwsn_darkskin_Theme_Initialize_ @@ -7274,13 +7474,13 @@ Closures ::vl::presentation::templates::GuiRibbonButtonsTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_ + struct __vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_ { - ::darkskin::DocumentViewerTemplateConstructor* __vwsnthis_0; + ::darkskin::DocumentTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnf80_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); + __vwsnf80_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize_(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_ @@ -7289,25 +7489,25 @@ Closures __vwsnf81_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ + struct __vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_ { - ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::DocumentViewerTemplateConstructor* __vwsnthis_0; - __vwsnf82_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf82_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiDatePickerTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + ::vl::presentation::templates::GuiScrollTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; - struct __vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ + struct __vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_ { - ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::DocumentViewerTemplateConstructor* __vwsnthis_0; - __vwsnf83_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnf83_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize_(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; struct __vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ @@ -7316,7 +7516,7 @@ Closures __vwsnf84_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiDatePickerTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ @@ -7325,7 +7525,7 @@ Closures __vwsnf85_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); - void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + ::vl::presentation::templates::GuiMenuTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; }; struct __vwsnf86_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ @@ -7400,20 +7600,20 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_ + struct __vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ { - ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; + ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - __vwsnf93_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); + __vwsnf93_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_ + struct __vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_ { - ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; + ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - __vwsnf94_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); + __vwsnf94_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize_(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -7454,11 +7654,11 @@ Closures void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; - struct __vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_ + struct __vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_ { - ::darkskin::ItemBackgroundTemplateConstructor* __vwsnthis_0; + ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; - __vwsnf99_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize_(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0); + __vwsnf99_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize_(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; }; @@ -7480,32 +7680,32 @@ Closures __vwsnc100_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; - __vwsnc101_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc101_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7520,16 +7720,13 @@ Closures ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7543,11 +7740,17 @@ Closures __vwsnc103_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7615,14 +7818,11 @@ Closures __vwsnc107_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7636,11 +7836,14 @@ Closures __vwsnc108_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7654,17 +7857,11 @@ Closures __vwsnc109_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7712,22 +7909,25 @@ Closures bool Close() override; }; - class __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnc111_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc111_DarkSkin_darkskin_RibbonLargeDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonLargeDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7742,16 +7942,13 @@ Closures ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7765,11 +7962,17 @@ Closures __vwsnc113_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7819,14 +8022,11 @@ Closures __vwsnc116_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7840,11 +8040,14 @@ Closures __vwsnc117_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7868,22 +8071,19 @@ Closures bool Close() override; }; - class __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnc119_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc119_DarkSkin_darkskin_RibbonLargeSplitButtonTemplateConstructor___vwsn_darkskin_RibbonLargeSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeSplitButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7916,16 +8116,13 @@ Closures ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -7939,11 +8136,17 @@ Closures __vwsnc121_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8011,14 +8214,11 @@ Closures __vwsnc125_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8032,32 +8232,32 @@ Closures __vwsnc126_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnthis_0; - __vwsnc127_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc127_DarkSkin_darkskin_RibbonSmallButtonTemplateConstructor___vwsn_darkskin_RibbonSmallButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8072,16 +8272,13 @@ Closures ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8095,11 +8292,17 @@ Closures __vwsnc129_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8185,14 +8388,11 @@ Closures __vwsnc133_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8206,11 +8406,14 @@ Closures __vwsnc134_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8224,17 +8427,11 @@ Closures __vwsnc135_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8288,19 +8485,25 @@ Closures bool Close() override; }; - class __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnc138_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnc138_DarkSkin_darkskin_RibbonSmallDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonSmallDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonSmallIconLabelTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8414,22 +8617,19 @@ Closures bool Close() override; }; - class __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnc144_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc144_DarkSkin_darkskin_RibbonSmallIconLabelTemplateConstructor___vwsn_darkskin_RibbonSmallIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallIconLabelTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallIconLabelTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8444,16 +8644,13 @@ Closures ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8467,11 +8664,17 @@ Closures __vwsnc146_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8557,14 +8760,11 @@ Closures __vwsnc150_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8578,11 +8778,14 @@ Closures __vwsnc151_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8596,14 +8799,11 @@ Closures __vwsnc152_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8617,24 +8817,27 @@ Closures __vwsnc153_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnc154_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnc154_DarkSkin_darkskin_RibbonSmallSplitButtonTemplateConstructor___vwsn_darkskin_RibbonSmallSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSmallSplitButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonToolstripHeaderTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSmallSplitButtonTemplate* __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; @@ -8663,22 +8866,19 @@ Closures bool Close() override; }; - class __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnthis_0; - __vwsnc156_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc156_DarkSkin_darkskin_RibbonToolstripHeaderTemplateConstructor___vwsn_darkskin_RibbonToolstripHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonToolstripHeaderTemplateConstructor* __vwsnctorthis_0); - ::darkskin::BottomScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::BottomScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonToolstripHeaderTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8705,15 +8905,15 @@ Closures bool Close() override; }; - class __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::HScrollHandleTemplateConstructor* __vwsnthis_0; + ::darkskin::BottomScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnc158_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0); + __vwsnc158_DarkSkin_darkskin_BottomScrollButtonTemplateConstructor___vwsn_darkskin_BottomScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::BottomScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::HScrollHandleTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::HScrollHandleTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::BottomScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::BottomScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -8726,15 +8926,15 @@ Closures bool Close() override; }; - class __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; + ::darkskin::HScrollHandleTemplateConstructor* __vwsnthis_0; - __vwsnc159_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); + __vwsnc159_DarkSkin_darkskin_HScrollHandleTemplateConstructor___vwsn_darkskin_HScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollHandleTemplateConstructor* __vwsnctorthis_0); - ::darkskin::HScrollTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::HScrollTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::HScrollHandleTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::HScrollHandleTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -8747,22 +8947,19 @@ Closures bool Close() override; }; - class __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::CheckBoxTemplateConstructor* __vwsnthis_0; - __vwsnc15_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc15_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RadioButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RadioButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CheckBoxTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8810,15 +9007,15 @@ Closures bool Close() override; }; - class __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::HScrollTemplateConstructor* __vwsnthis_0; - __vwsnc162_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnc162_DarkSkin_darkskin_HScrollTemplateConstructor___vwsn_darkskin_HScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HScrollTemplateConstructor* __vwsnctorthis_0); - ::darkskin::HTrackerTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::HTrackerTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::HScrollTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::HScrollTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -8852,15 +9049,15 @@ Closures bool Close() override; }; - class __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::LeftScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::HTrackerTemplateConstructor* __vwsnthis_0; - __vwsnc164_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc164_DarkSkin_darkskin_HTrackerTemplateConstructor___vwsn_darkskin_HTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::HTrackerTemplateConstructor* __vwsnctorthis_0); - ::darkskin::LeftScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::LeftScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::HTrackerTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::HTrackerTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -8894,46 +9091,46 @@ Closures bool Close() override; }; - class __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ProgressBarTemplateConstructor* __vwsnthis_0; + ::darkskin::LeftScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnc166_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0); + __vwsnc166_DarkSkin_darkskin_LeftScrollButtonTemplateConstructor___vwsn_darkskin_LeftScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LeftScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::LeftScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::LeftScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_2_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RightScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ProgressBarTemplateConstructor* __vwsnthis_0; - __vwsnc167_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc167_DarkSkin_darkskin_ProgressBarTemplateConstructor___vwsn_darkskin_ProgressBarTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ProgressBarTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RightScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RightScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ProgressBarTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -8960,15 +9157,15 @@ Closures bool Close() override; }; - class __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::TopScrollButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RightScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnc169_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc169_DarkSkin_darkskin_RightScrollButtonTemplateConstructor___vwsn_darkskin_RightScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RightScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::TopScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::TopScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RightScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RightScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9023,15 +9220,15 @@ Closures bool Close() override; }; - class __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::VScrollHandleTemplateConstructor* __vwsnthis_0; + ::darkskin::TopScrollButtonTemplateConstructor* __vwsnthis_0; - __vwsnc171_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0); + __vwsnc171_DarkSkin_darkskin_TopScrollButtonTemplateConstructor___vwsn_darkskin_TopScrollButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TopScrollButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::VScrollHandleTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::VScrollHandleTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::TopScrollButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::TopScrollButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9044,15 +9241,15 @@ Closures bool Close() override; }; - class __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; + ::darkskin::VScrollHandleTemplateConstructor* __vwsnthis_0; - __vwsnc172_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); + __vwsnc172_DarkSkin_darkskin_VScrollHandleTemplateConstructor___vwsn_darkskin_VScrollHandleTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollHandleTemplateConstructor* __vwsnctorthis_0); - ::darkskin::VScrollTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::VScrollTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::VScrollHandleTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::VScrollHandleTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9107,15 +9304,15 @@ Closures bool Close() override; }; - class __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; + ::darkskin::VScrollTemplateConstructor* __vwsnthis_0; - __vwsnc175_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); + __vwsnc175_DarkSkin_darkskin_VScrollTemplateConstructor___vwsn_darkskin_VScrollTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VScrollTemplateConstructor* __vwsnctorthis_0); - ::darkskin::VTrackerTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::VTrackerTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::VScrollTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::VScrollTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9149,28 +9346,22 @@ Closures bool Close() override; }; - class __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::VTrackerTemplateConstructor* __vwsnthis_0; - __vwsnc177_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc177_DarkSkin_darkskin_VTrackerTemplateConstructor___vwsn_darkskin_VTrackerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::VTrackerTemplateConstructor* __vwsnctorthis_0); - ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_2 = nullptr; - ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_3 = nullptr; + ::darkskin::VTrackerTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::VTrackerTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_2_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_3_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9185,13 +9376,19 @@ Closures ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_3 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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> __vwsn_bind_handler_3_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9205,11 +9402,14 @@ Closures __vwsnc179_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(); bool Open() override; bool Update() override; bool Close() override; @@ -9244,14 +9444,11 @@ Closures __vwsnc180_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9265,11 +9462,14 @@ Closures __vwsnc181_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9283,14 +9483,11 @@ Closures __vwsnc182_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::vl::presentation::controls::GuiRibbonTabPage* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9304,7 +9501,7 @@ Closures __vwsnc183_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::vl::presentation::controls::GuiTab* __vwsn_bind_cache_1 = nullptr; + ::vl::presentation::controls::GuiRibbonTabPage* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9317,19 +9514,22 @@ Closures bool Close() override; }; - class __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderButtonTemplateConstructor* __vwsnthis_0; - __vwsnc184_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnc184_DarkSkin_darkskin_TabHeaderButtonTemplateConstructor___vwsn_darkskin_TabHeaderButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderButtonTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::controls::GuiTabPage* __vwsn_bind_cache_0 = nullptr; + ::darkskin::TabHeaderButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::controls::GuiTab* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9360,7 +9560,7 @@ Closures __vwsnc186_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::controls::GuiTab* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::controls::GuiTabPage* __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; @@ -9371,14 +9571,14 @@ Closures bool Close() override; }; - class __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::TabTemplateConstructor* __vwsnthis_0; + ::darkskin::TabHeaderTemplateConstructor* __vwsnthis_0; - __vwsnc187_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); + __vwsnc187_DarkSkin_darkskin_TabHeaderTemplateConstructor___vwsn_darkskin_TabHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabHeaderTemplateConstructor* __vwsnctorthis_0); - ::darkskin::TabTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::controls::GuiTab* __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; @@ -9401,7 +9601,7 @@ Closures bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); - void __vwsn_bind_callback_0_0(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9415,14 +9615,11 @@ Closures __vwsnc189_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); ::darkskin::TabTemplate* __vwsn_bind_cache_0 = nullptr; - ::vl::presentation::controls::GuiRibbonTabPage* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); - void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_0_0(); bool Open() override; bool Update() override; bool Close() override; @@ -9436,25 +9633,28 @@ Closures __vwsnc18_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RadioButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RadioButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::TabTemplateConstructor* __vwsnthis_0; - __vwsnc190_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc190_DarkSkin_darkskin_TabTemplateConstructor___vwsn_darkskin_TabTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TabTemplateConstructor* __vwsnctorthis_0); - ::darkskin::MultilineTextBoxTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::MultilineTextBoxTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::TabTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::controls::GuiRibbonTabPage* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9467,15 +9667,15 @@ Closures bool Close() override; }; - class __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::MultilineTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnc191_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc191_DarkSkin_darkskin_MultilineTextBoxTemplateConstructor___vwsn_darkskin_MultilineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MultilineTextBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::SinglelineTextBoxTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::SinglelineTextBoxTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::MultilineTextBoxTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::MultilineTextBoxTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -9488,25 +9688,22 @@ Closures bool Close() override; }; - class __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnc192_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc192_DarkSkin_darkskin_SinglelineTextBoxTemplateConstructor___vwsn_darkskin_SinglelineTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::SinglelineTextBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::SinglelineTextBoxTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::SinglelineTextBoxTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_2_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9520,11 +9717,17 @@ Closures __vwsnc193_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9566,25 +9769,19 @@ Closures bool Close() override; }; - class __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuBarButtonTemplateConstructor* __vwsnthis_0; - __vwsnc196_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc196_DarkSkin_darkskin_MenuBarButtonTemplateConstructor___vwsn_darkskin_MenuBarButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuBarButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::MenuBarButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9598,11 +9795,17 @@ Closures __vwsnc197_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9799,17 +10002,11 @@ Closures __vwsnc206_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9847,35 +10044,35 @@ Closures __vwsnc208_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::MenuItemButtonTemplateConstructor* __vwsnthis_0; - __vwsnc209_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnc209_DarkSkin_darkskin_MenuItemButtonTemplateConstructor___vwsn_darkskin_MenuItemButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::MenuItemButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::MenuItemButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9947,22 +10144,25 @@ Closures bool Close() override; }; - class __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnc212_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc212_DarkSkin_darkskin_ToolstripSplitArrowTemplateConstructor___vwsn_darkskin_ToolstripSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitArrowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -9977,16 +10177,13 @@ Closures ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10000,11 +10197,17 @@ Closures __vwsnc214_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10046,22 +10249,19 @@ Closures bool Close() override; }; - class __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripButtonTemplateConstructor* __vwsnthis_0; - __vwsnc217_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc217_DarkSkin_darkskin_ToolstripButtonTemplateConstructor___vwsn_darkskin_ToolstripButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10076,16 +10276,13 @@ Closures ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10099,11 +10296,17 @@ Closures __vwsnc219_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10171,17 +10374,11 @@ Closures __vwsnc222_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10235,22 +10432,25 @@ Closures bool Close() override; }; - class __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnc225_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc225_DarkSkin_darkskin_ToolstripDropdownButtonTemplateConstructor___vwsn_darkskin_ToolstripDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripDropdownButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10265,16 +10465,13 @@ Closures ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10288,11 +10485,17 @@ Closures __vwsnc227_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10359,6 +10562,24 @@ Closures __vwsnc230_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; @@ -10373,14 +10594,206 @@ Closures bool Close() override; }; - class __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnthis_0; - __vwsnc231_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc232_DarkSkin_darkskin_ToolstripSplitButtonTemplateConstructor___vwsn_darkskin_ToolstripSplitButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ToolstripSplitButtonTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc233_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_3 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __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> __vwsn_bind_handler_3_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc234_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc235_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc236_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc237_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc238_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc239_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::RadioButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc23_DarkSkin_darkskin_RadioButtonTemplateConstructor___vwsn_darkskin_RadioButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RadioButtonTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::RadioButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc240_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; + + __vwsnc241_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ToolstripSplitButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10391,41 +10804,32 @@ Closures bool Close() override; }; - class __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc232_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc242_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_2 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_3 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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> __vwsn_bind_handler_3_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_3_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc233_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc243_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10436,35 +10840,32 @@ Closures bool Close() override; }; - class __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc234_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc244_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc235_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc245_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10475,32 +10876,35 @@ Closures bool Close() override; }; - class __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc236_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc246_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc237_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc247_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10511,35 +10915,32 @@ Closures bool Close() override; }; - class __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc238_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc248_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc239_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc249_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10550,12 +10951,12 @@ Closures bool Close() override; }; - class __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::DocumentTextBoxTemplateConstructor* __vwsnthis_0; - __vwsnc23_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc24_DarkSkin_darkskin_DocumentTextBoxTemplateConstructor___vwsn_darkskin_DocumentTextBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentTextBoxTemplateConstructor* __vwsnctorthis_0); ::darkskin::DocumentTextBoxTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::DocumentTextBoxTemplate* __vwsn_bind_cache_1 = nullptr; @@ -10571,15 +10972,15 @@ Closures bool Close() override; }; - class __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc240_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc250_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -10592,15 +10993,15 @@ Closures bool Close() override; }; - class __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc241_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc251_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -10613,15 +11014,15 @@ Closures bool Close() override; }; - class __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc242_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc252_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -10634,14 +11035,14 @@ Closures bool Close() override; }; - class __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc243_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc253_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10652,15 +11053,15 @@ Closures bool Close() override; }; - class __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc244_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc254_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::WindowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -10673,14 +11074,14 @@ Closures bool Close() override; }; - class __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::WindowTemplateConstructor* __vwsnthis_0; + ::darkskin::CustomFrameWindowTemplateConstructor* __vwsnthis_0; - __vwsnc245_DarkSkin_darkskin_WindowTemplateConstructor___vwsn_darkskin_WindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::WindowTemplateConstructor* __vwsnctorthis_0); + __vwsnc255_DarkSkin_darkskin_CustomFrameWindowTemplateConstructor___vwsn_darkskin_CustomFrameWindowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CustomFrameWindowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::WindowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::CustomFrameWindowTemplate* __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; @@ -10691,12 +11092,12 @@ Closures bool Close() override; }; - class __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::DocumentViewerTemplateConstructor* __vwsnthis_0; - __vwsnc24_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); + __vwsnc25_DarkSkin_darkskin_DocumentViewerTemplateConstructor___vwsn_darkskin_DocumentViewerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DocumentViewerTemplateConstructor* __vwsnctorthis_0); ::darkskin::DocumentViewerTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::DocumentViewerTemplate* __vwsn_bind_cache_1 = nullptr; @@ -10712,12 +11113,12 @@ Closures bool Close() override; }; - class __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - __vwsnc25_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_1 = nullptr; @@ -10736,12 +11137,12 @@ Closures bool Close() override; }; - class __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - __vwsnc26_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_1 = nullptr; @@ -10757,24 +11158,6 @@ Closures bool Close() override; }; - class __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription - { - public: - ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - - __vwsnc27_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); - - ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_0 = nullptr; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - bool __vwsn_bind_opened_ = false; - bool __vwsn_bind_closed_ = false; - void __vwsn_bind_activator_(); - void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - bool Open() override; - bool Update() override; - bool Close() override; - }; - class __vwsnc28_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: @@ -10858,17 +11241,11 @@ Closures __vwsnc31_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10922,16 +11299,16 @@ Closures bool Close() override; }; - class __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; + ::darkskin::ComboBoxTemplateConstructor* __vwsnthis_0; - __vwsnc34_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); + __vwsnc34_DarkSkin_darkskin_ComboBoxTemplateConstructor___vwsn_darkskin_ComboBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ComboBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ComboBoxTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; @@ -10955,13 +11332,16 @@ Closures ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10975,11 +11355,14 @@ Closures __vwsnc36_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -10993,17 +11376,11 @@ Closures __vwsnc37_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11018,13 +11395,16 @@ Closures ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11038,11 +11418,14 @@ Closures __vwsnc39_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11066,40 +11449,34 @@ Closures bool Close() override; }; - class __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ItemBackgroundTemplateConstructor* __vwsnthis_0; + ::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnthis_0; - __vwsnc40_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0); + __vwsnc40_DarkSkin_darkskin_ExpandingDecoratorTemplateConstructor___vwsn_darkskin_ExpandingDecoratorTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ExpandingDecoratorTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::ExpandingDecoratorTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; }; - class __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; + ::darkskin::ItemBackgroundTemplateConstructor* __vwsnthis_0; - __vwsnc41_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); + __vwsnc41_DarkSkin_darkskin_ItemBackgroundTemplateConstructor___vwsn_darkskin_ItemBackgroundTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ItemBackgroundTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ItemBackgroundTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; @@ -11170,11 +11547,17 @@ Closures __vwsnc44_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11188,17 +11571,11 @@ Closures __vwsnc45_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11236,11 +11613,17 @@ Closures __vwsnc47_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11272,14 +11655,11 @@ Closures __vwsnc49_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11311,11 +11691,14 @@ Closures __vwsnc50_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11357,12 +11740,30 @@ Closures bool Close() override; }; - class __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnthis_0; + + __vwsnc53_DarkSkin_darkskin_ListViewColumnHeaderTemplateConstructor___vwsn_darkskin_ListViewColumnHeaderTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewColumnHeaderTemplateConstructor* __vwsnctorthis_0); + + ::darkskin::ListViewColumnHeaderTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::ListViewTemplateConstructor* __vwsnthis_0; - __vwsnc53_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); + __vwsnc54_DarkSkin_darkskin_ListViewTemplateConstructor___vwsn_darkskin_ListViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ListViewTemplateConstructor* __vwsnctorthis_0); ::darkskin::ListViewTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::ListViewTemplate* __vwsn_bind_cache_1 = nullptr; @@ -11378,12 +11779,12 @@ Closures bool Close() override; }; - class __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::TextListTemplateConstructor* __vwsnthis_0; - __vwsnc54_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); + __vwsnc55_DarkSkin_darkskin_TextListTemplateConstructor___vwsn_darkskin_TextListTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TextListTemplateConstructor* __vwsnctorthis_0); ::darkskin::TextListTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::TextListTemplate* __vwsn_bind_cache_1 = nullptr; @@ -11399,12 +11800,12 @@ Closures bool Close() override; }; - class __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::TreeViewTemplateConstructor* __vwsnthis_0; - __vwsnc55_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); + __vwsnc56_DarkSkin_darkskin_TreeViewTemplateConstructor___vwsn_darkskin_TreeViewTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::TreeViewTemplateConstructor* __vwsnctorthis_0); ::darkskin::TreeViewTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::TreeViewTemplate* __vwsn_bind_cache_1 = nullptr; @@ -11420,12 +11821,12 @@ Closures bool Close() override; }; - class __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; - __vwsnc56_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::DateButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::DateButtonTemplate* __vwsn_bind_cache_1 = nullptr; @@ -11444,12 +11845,12 @@ Closures bool Close() override; }; - class __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: ::darkskin::DateButtonTemplateConstructor* __vwsnthis_0; - __vwsnc57_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc58_DarkSkin_darkskin_DateButtonTemplateConstructor___vwsn_darkskin_DateButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DateButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::DateButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; @@ -11462,24 +11863,6 @@ Closures bool Close() override; }; - class __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription - { - public: - ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; - - __vwsnc58_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - - ::darkskin::DatePickerTemplate* __vwsn_bind_cache_0 = nullptr; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - bool __vwsn_bind_opened_ = false; - bool __vwsn_bind_closed_ = false; - void __vwsn_bind_activator_(); - void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - bool Open() override; - bool Update() override; - bool Close() override; - }; - class __vwsnc59_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: @@ -11562,7 +11945,7 @@ Closures __vwsnc62_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::templates::GuiCommonDatePickerLook* __vwsn_bind_cache_0 = nullptr; + ::darkskin::DatePickerTemplate* __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; @@ -11573,14 +11956,14 @@ Closures bool Close() override; }; - class __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; + ::darkskin::DatePickerTemplateConstructor* __vwsnthis_0; - __vwsnc63_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); + __vwsnc63_DarkSkin_darkskin_DatePickerTemplateConstructor___vwsn_darkskin_DatePickerTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::DatePickerTemplateConstructor* __vwsnctorthis_0); - ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::templates::GuiCommonDatePickerLook* __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; @@ -11616,7 +11999,7 @@ Closures __vwsnc65_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::GroupBoxTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::presentation::compositions::GuiBoundsComposition* __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; @@ -11645,14 +12028,14 @@ Closures bool Close() override; }; - class __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::LabelTemplateConstructor* __vwsnthis_0; + ::darkskin::GroupBoxTemplateConstructor* __vwsnthis_0; - __vwsnc67_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); + __vwsnc67_DarkSkin_darkskin_GroupBoxTemplateConstructor___vwsn_darkskin_GroupBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::GroupBoxTemplateConstructor* __vwsnctorthis_0); - ::darkskin::LabelTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::GroupBoxTemplate* __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; @@ -11671,14 +12054,11 @@ Closures __vwsnc68_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); ::darkskin::LabelTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::LabelTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11692,11 +12072,14 @@ Closures __vwsnc69_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); ::darkskin::LabelTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::LabelTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11720,14 +12103,14 @@ Closures bool Close() override; }; - class __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; + ::darkskin::LabelTemplateConstructor* __vwsnthis_0; - __vwsnc70_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); + __vwsnc70_DarkSkin_darkskin_LabelTemplateConstructor___vwsn_darkskin_LabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::LabelTemplateConstructor* __vwsnctorthis_0); - ::darkskin::ShortcutKeyTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::LabelTemplate* __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; @@ -11774,25 +12157,19 @@ Closures bool Close() override; }; - class __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; + ::darkskin::ShortcutKeyTemplateConstructor* __vwsnthis_0; - __vwsnc73_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); + __vwsnc73_DarkSkin_darkskin_ShortcutKeyTemplateConstructor___vwsn_darkskin_ShortcutKeyTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::ShortcutKeyTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; + ::darkskin::ShortcutKeyTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11806,11 +12183,17 @@ Closures __vwsnc74_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11824,14 +12207,11 @@ Closures __vwsnc75_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11845,11 +12225,14 @@ Closures __vwsnc76_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11863,17 +12246,11 @@ Closures __vwsnc77_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11903,22 +12280,25 @@ Closures bool Close() override; }; - class __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnthis_0; - __vwsnc79_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc79_DarkSkin_darkskin_RibbonSplitArrowTemplateConstructor___vwsn_darkskin_RibbonSplitArrowTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonSplitArrowTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonGalleryDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonGalleryDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonSplitArrowTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -11987,15 +12367,15 @@ Closures bool Close() override; }; - class __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnthis_0; - __vwsnc82_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); + __vwsnc82_DarkSkin_darkskin_RibbonGalleryDropdownButtonTemplateConstructor___vwsn_darkskin_RibbonGalleryDropdownButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryDropdownButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonGalleryTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonGalleryTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonGalleryDropdownButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonGalleryDropdownButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; @@ -12016,11 +12396,14 @@ Closures __vwsnc83_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonGalleryTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonGalleryTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12044,22 +12427,19 @@ Closures bool Close() override; }; - class __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGalleryTemplateConstructor* __vwsnthis_0; - __vwsnc85_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc85_DarkSkin_darkskin_RibbonGalleryTemplateConstructor___vwsn_darkskin_RibbonGalleryTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGalleryTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonGroupExpandButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonGroupExpandButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonGalleryTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12086,19 +12466,22 @@ Closures bool Close() override; }; - class __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnthis_0; - __vwsnc87_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); + __vwsnc87_DarkSkin_darkskin_RibbonGroupExpandButtonTemplateConstructor___vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupExpandButtonTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonGroupTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonGroupExpandButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonGroupExpandButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12161,14 +12544,14 @@ Closures bool Close() override; }; - class __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonGroupTemplateConstructor* __vwsnthis_0; - __vwsnc90_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); + __vwsnc90_DarkSkin_darkskin_RibbonGroupTemplateConstructor___vwsn_darkskin_RibbonGroupTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonGroupTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonIconLabelTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonGroupTemplate* __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; @@ -12215,22 +12598,19 @@ Closures bool Close() override; }; - class __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + class __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription { public: - ::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnthis_0; + ::darkskin::RibbonIconLabelTemplateConstructor* __vwsnthis_0; - __vwsnc93_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); + __vwsnc93_DarkSkin_darkskin_RibbonIconLabelTemplateConstructor___vwsn_darkskin_RibbonIconLabelTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonIconLabelTemplateConstructor* __vwsnctorthis_0); - ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonIconLabelTemplate* __vwsn_bind_cache_0 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12245,16 +12625,13 @@ Closures ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_1 = nullptr; - ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12268,11 +12645,17 @@ Closures __vwsnc95_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_2 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __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; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_2_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12340,14 +12723,11 @@ Closures __vwsnc99_DarkSkin_darkskin_RibbonLargeButtonTemplateConstructor___vwsn_darkskin_RibbonLargeButtonTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::RibbonLargeButtonTemplateConstructor* __vwsnctorthis_0); ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::RibbonLargeButtonTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; @@ -12361,14 +12741,11 @@ Closures __vwsnc9_DarkSkin_darkskin_CheckBoxTemplateConstructor___vwsn_darkskin_CheckBoxTemplate_Initialize__vl_reflection_description_IValueSubscription(::darkskin::CheckBoxTemplateConstructor* __vwsnctorthis_0); ::darkskin::CheckBoxTemplate* __vwsn_bind_cache_0 = nullptr; - ::darkskin::CheckBoxTemplate* __vwsn_bind_cache_1 = nullptr; ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; - ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; bool __vwsn_bind_opened_ = false; bool __vwsn_bind_closed_ = false; void __vwsn_bind_activator_(); void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); - void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); bool Open() override; bool Update() override; bool Close() override; diff --git a/Import/DarkSkinReflection.cpp b/Import/DarkSkinReflection.cpp index c101986f1..2f9767333 100644 --- a/Import/DarkSkinReflection.cpp +++ b/Import/DarkSkinReflection.cpp @@ -48,6 +48,8 @@ namespace vl IMPL_CPP_TYPE_INFO(darkskin::ComboBoxTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::CustomControlTemplate) IMPL_CPP_TYPE_INFO(darkskin::CustomControlTemplateConstructor) + IMPL_CPP_TYPE_INFO(darkskin::CustomFrameWindowTemplate) + IMPL_CPP_TYPE_INFO(darkskin::CustomFrameWindowTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::DateButtonTemplate) IMPL_CPP_TYPE_INFO(darkskin::DateButtonTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::DatePickerTemplate) @@ -136,6 +138,8 @@ namespace vl IMPL_CPP_TYPE_INFO(darkskin::ShortcutKeyTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::SinglelineTextBoxTemplate) IMPL_CPP_TYPE_INFO(darkskin::SinglelineTextBoxTemplateConstructor) + IMPL_CPP_TYPE_INFO(darkskin::SystemFrameWindowTemplate) + IMPL_CPP_TYPE_INFO(darkskin::SystemFrameWindowTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::TabHeaderButtonTemplate) IMPL_CPP_TYPE_INFO(darkskin::TabHeaderButtonTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::TabHeaderTemplate) @@ -172,8 +176,6 @@ namespace vl IMPL_CPP_TYPE_INFO(darkskin::VScrollTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::VTrackerTemplate) IMPL_CPP_TYPE_INFO(darkskin::VTrackerTemplateConstructor) - IMPL_CPP_TYPE_INFO(darkskin::WindowTemplate) - IMPL_CPP_TYPE_INFO(darkskin::WindowTemplateConstructor) #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA #define _ , @@ -278,6 +280,61 @@ namespace vl CLASS_MEMBER_FIELD(__vwsn_precompile_0) END_CLASS_MEMBER(::darkskin::CustomControlTemplateConstructor) + BEGIN_CLASS_MEMBER(::darkskin::CustomFrameWindowTemplate) + CLASS_MEMBER_BASE(::vl::presentation::templates::GuiWindowTemplate) + CLASS_MEMBER_BASE(::darkskin::CustomFrameWindowTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::darkskin::CustomFrameWindowTemplate*(), NO_PARAMETER) + END_CLASS_MEMBER(::darkskin::CustomFrameWindowTemplate) + + BEGIN_CLASS_MEMBER(::darkskin::CustomFrameWindowTemplateConstructor) + CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::CustomFrameWindowTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_darkskin_CustomFrameWindowTemplate_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_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_20) + CLASS_MEMBER_FIELD(__vwsn_precompile_21) + CLASS_MEMBER_FIELD(__vwsn_precompile_22) + CLASS_MEMBER_FIELD(__vwsn_precompile_23) + CLASS_MEMBER_FIELD(__vwsn_precompile_24) + CLASS_MEMBER_FIELD(__vwsn_precompile_25) + CLASS_MEMBER_FIELD(__vwsn_precompile_26) + CLASS_MEMBER_FIELD(__vwsn_precompile_27) + CLASS_MEMBER_FIELD(__vwsn_precompile_28) + CLASS_MEMBER_FIELD(__vwsn_precompile_29) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_30) + CLASS_MEMBER_FIELD(__vwsn_precompile_31) + CLASS_MEMBER_FIELD(__vwsn_precompile_32) + CLASS_MEMBER_FIELD(__vwsn_precompile_33) + CLASS_MEMBER_FIELD(__vwsn_precompile_34) + CLASS_MEMBER_FIELD(__vwsn_precompile_35) + CLASS_MEMBER_FIELD(__vwsn_precompile_36) + CLASS_MEMBER_FIELD(__vwsn_precompile_37) + CLASS_MEMBER_FIELD(__vwsn_precompile_38) + 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(container) + CLASS_MEMBER_FIELD(contentTable) + CLASS_MEMBER_FIELD(frameTable) + CLASS_MEMBER_FIELD(self) + END_CLASS_MEMBER(::darkskin::CustomFrameWindowTemplateConstructor) + BEGIN_CLASS_MEMBER(::darkskin::DateButtonTemplate) CLASS_MEMBER_BASE(::vl::presentation::templates::GuiSelectableButtonTemplate) CLASS_MEMBER_BASE(::darkskin::DateButtonTemplateConstructor) @@ -1128,6 +1185,21 @@ namespace vl CLASS_MEMBER_FIELD(self) END_CLASS_MEMBER(::darkskin::SinglelineTextBoxTemplateConstructor) + BEGIN_CLASS_MEMBER(::darkskin::SystemFrameWindowTemplate) + CLASS_MEMBER_BASE(::vl::presentation::templates::GuiWindowTemplate) + CLASS_MEMBER_BASE(::darkskin::SystemFrameWindowTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::darkskin::SystemFrameWindowTemplate*(), NO_PARAMETER) + END_CLASS_MEMBER(::darkskin::SystemFrameWindowTemplate) + + BEGIN_CLASS_MEMBER(::darkskin::SystemFrameWindowTemplateConstructor) + CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::SystemFrameWindowTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_darkskin_SystemFrameWindowTemplate_Initialize, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(container) + END_CLASS_MEMBER(::darkskin::SystemFrameWindowTemplateConstructor) + BEGIN_CLASS_MEMBER(::darkskin::TabHeaderButtonTemplate) CLASS_MEMBER_BASE(::vl::presentation::templates::GuiSelectableButtonTemplate) CLASS_MEMBER_BASE(::darkskin::TabHeaderButtonTemplateConstructor) @@ -1486,50 +1558,6 @@ namespace vl CLASS_MEMBER_FIELD(self) END_CLASS_MEMBER(::darkskin::VTrackerTemplateConstructor) - BEGIN_CLASS_MEMBER(::darkskin::WindowTemplate) - CLASS_MEMBER_BASE(::vl::presentation::templates::GuiWindowTemplate) - CLASS_MEMBER_BASE(::darkskin::WindowTemplateConstructor) - CLASS_MEMBER_CONSTRUCTOR(::darkskin::WindowTemplate*(), NO_PARAMETER) - END_CLASS_MEMBER(::darkskin::WindowTemplate) - - BEGIN_CLASS_MEMBER(::darkskin::WindowTemplateConstructor) - CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject) - CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::WindowTemplateConstructor>(), NO_PARAMETER) - CLASS_MEMBER_METHOD(__vwsn_darkskin_WindowTemplate_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_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_20) - CLASS_MEMBER_FIELD(__vwsn_precompile_21) - CLASS_MEMBER_FIELD(__vwsn_precompile_22) - CLASS_MEMBER_FIELD(__vwsn_precompile_23) - CLASS_MEMBER_FIELD(__vwsn_precompile_24) - CLASS_MEMBER_FIELD(__vwsn_precompile_25) - CLASS_MEMBER_FIELD(__vwsn_precompile_26) - CLASS_MEMBER_FIELD(__vwsn_precompile_27) - 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(container) - CLASS_MEMBER_FIELD(contentTable) - CLASS_MEMBER_FIELD(frameTable) - CLASS_MEMBER_FIELD(self) - END_CLASS_MEMBER(::darkskin::WindowTemplateConstructor) - #undef _ class DarkSkinTypeLoader : public Object, public ITypeLoader { @@ -1546,6 +1574,8 @@ namespace vl ADD_TYPE_INFO(::darkskin::ComboBoxTemplateConstructor) ADD_TYPE_INFO(::darkskin::CustomControlTemplate) ADD_TYPE_INFO(::darkskin::CustomControlTemplateConstructor) + ADD_TYPE_INFO(::darkskin::CustomFrameWindowTemplate) + ADD_TYPE_INFO(::darkskin::CustomFrameWindowTemplateConstructor) ADD_TYPE_INFO(::darkskin::DateButtonTemplate) ADD_TYPE_INFO(::darkskin::DateButtonTemplateConstructor) ADD_TYPE_INFO(::darkskin::DatePickerTemplate) @@ -1634,6 +1664,8 @@ namespace vl ADD_TYPE_INFO(::darkskin::ShortcutKeyTemplateConstructor) ADD_TYPE_INFO(::darkskin::SinglelineTextBoxTemplate) ADD_TYPE_INFO(::darkskin::SinglelineTextBoxTemplateConstructor) + ADD_TYPE_INFO(::darkskin::SystemFrameWindowTemplate) + ADD_TYPE_INFO(::darkskin::SystemFrameWindowTemplateConstructor) ADD_TYPE_INFO(::darkskin::TabHeaderButtonTemplate) ADD_TYPE_INFO(::darkskin::TabHeaderButtonTemplateConstructor) ADD_TYPE_INFO(::darkskin::TabHeaderTemplate) @@ -1670,8 +1702,6 @@ namespace vl ADD_TYPE_INFO(::darkskin::VScrollTemplateConstructor) ADD_TYPE_INFO(::darkskin::VTrackerTemplate) ADD_TYPE_INFO(::darkskin::VTrackerTemplateConstructor) - ADD_TYPE_INFO(::darkskin::WindowTemplate) - ADD_TYPE_INFO(::darkskin::WindowTemplateConstructor) } void Unload(ITypeManager* manager) @@ -1686,7 +1716,7 @@ namespace vl #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA if (auto manager = GetGlobalTypeManager()) { - return manager->AddTypeLoader(MakePtr()); + return manager->AddTypeLoader(Ptr(new DarkSkinTypeLoader)); } #endif return false; diff --git a/Import/DarkSkinReflection.h b/Import/DarkSkinReflection.h index 681456a14..156ca7620 100644 --- a/Import/DarkSkinReflection.h +++ b/Import/DarkSkinReflection.h @@ -61,6 +61,8 @@ namespace vl DECL_TYPE_INFO(::darkskin::ComboBoxTemplateConstructor) DECL_TYPE_INFO(::darkskin::CustomControlTemplate) DECL_TYPE_INFO(::darkskin::CustomControlTemplateConstructor) + DECL_TYPE_INFO(::darkskin::CustomFrameWindowTemplate) + DECL_TYPE_INFO(::darkskin::CustomFrameWindowTemplateConstructor) DECL_TYPE_INFO(::darkskin::DateButtonTemplate) DECL_TYPE_INFO(::darkskin::DateButtonTemplateConstructor) DECL_TYPE_INFO(::darkskin::DatePickerTemplate) @@ -149,6 +151,8 @@ namespace vl DECL_TYPE_INFO(::darkskin::ShortcutKeyTemplateConstructor) DECL_TYPE_INFO(::darkskin::SinglelineTextBoxTemplate) DECL_TYPE_INFO(::darkskin::SinglelineTextBoxTemplateConstructor) + DECL_TYPE_INFO(::darkskin::SystemFrameWindowTemplate) + DECL_TYPE_INFO(::darkskin::SystemFrameWindowTemplateConstructor) DECL_TYPE_INFO(::darkskin::TabHeaderButtonTemplate) DECL_TYPE_INFO(::darkskin::TabHeaderButtonTemplateConstructor) DECL_TYPE_INFO(::darkskin::TabHeaderTemplate) @@ -185,8 +189,6 @@ namespace vl DECL_TYPE_INFO(::darkskin::VScrollTemplateConstructor) DECL_TYPE_INFO(::darkskin::VTrackerTemplate) DECL_TYPE_INFO(::darkskin::VTrackerTemplateConstructor) - DECL_TYPE_INFO(::darkskin::WindowTemplate) - DECL_TYPE_INFO(::darkskin::WindowTemplateConstructor) #endif extern bool LoadDarkSkinTypes(); diff --git a/Import/GacUI.Windows.cpp b/Import/GacUI.Windows.cpp index 69cbb591c..09d706300 100644 --- a/Import/GacUI.Windows.cpp +++ b/Import/GacUI.Windows.cpp @@ -5,13249 +5,12991 @@ DEVELOPER: Zihan Chen(vczh) #include "GacUI.Windows.h" /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSLAYOUTPROVIDERWINDOWSDIRECT2D.CPP +.\WINNATIVEDPIAWARENESS.CPP ***********************************************************************/ +#pragma comment(lib, "Shcore.lib") + namespace vl { namespace presentation { - using namespace elements; - using namespace collections; - - namespace elements_windows_d2d + namespace windows { +#define USE_API(NAME, API) static auto proc_##API = (decltype(&API))(GetProcAddress(GetModuleHandle(L#NAME), #API)) -/*********************************************************************** -WindowsDirect2DElementInlineObject -***********************************************************************/ - - class WindowsDirect2DElementInlineObject : public IDWriteInlineObject + void InitDpiAwareness(bool dpiAware) { - public: - class IRendererCallback : public Interface - { - public: - virtual Color GetBackgroundColor(vint textPosition) = 0; - virtual IWindowsDirect2DRenderTarget* GetDirect2DRenderTarget() = 0; - virtual Point GetParagraphOffset() = 0; - virtual IGuiGraphicsParagraphCallback* GetParagraphCallback() = 0; - }; - - protected: - vint counter; - IGuiGraphicsParagraph::InlineObjectProperties properties; - IRendererCallback* rendererCallback; - vint start; - vint length; - - public: - WindowsDirect2DElementInlineObject( - const IGuiGraphicsParagraph::InlineObjectProperties& _properties, - IRendererCallback* _rendererCallback, - vint _start, - vint _length - ) - :counter(1) - ,properties(_properties) - ,rendererCallback(_rendererCallback) - ,start(_start) - ,length(_length) - { - } - - ~WindowsDirect2DElementInlineObject() - { - if (properties.backgroundImage) - { - IGuiGraphicsRenderer* graphicsRenderer=properties.backgroundImage->GetRenderer(); - if(graphicsRenderer) - { - graphicsRenderer->SetRenderTarget(0); - } - } - } - - vint GetStart() - { - return start; - } + USE_API(user32, SetProcessDpiAwarenessContext); + USE_API(shcore, SetProcessDpiAwareness); - vint GetLength() + if(proc_SetProcessDpiAwarenessContext) { - return length; + proc_SetProcessDpiAwarenessContext(dpiAware ? DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2: DPI_AWARENESS_CONTEXT_UNAWARE); + return; } - const IGuiGraphicsParagraph::InlineObjectProperties& GetProperties() + if(proc_SetProcessDpiAwareness) { - return properties; + proc_SetProcessDpiAwareness(dpiAware ? PROCESS_PER_MONITOR_DPI_AWARE : PROCESS_DPI_UNAWARE); + return; } + } - Ptr GetElement() - { - return properties.backgroundImage; - } + void DpiAwared_GetDpiForMonitor(HMONITOR monitor, UINT* x, UINT* y) + { + USE_API(shcore, GetDpiForMonitor); - HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID riid, - void __RPC_FAR *__RPC_FAR *ppvObject - ) + if (proc_GetDpiForMonitor) { - if(ppvObject) + if (proc_GetDpiForMonitor(monitor, MDT_DEFAULT, x, y) == S_OK) { - *ppvObject=NULL; + return; } - return E_NOINTERFACE; } + *x = 96; + *y = 96; + } - ULONG STDMETHODCALLTYPE AddRef(void) - { - ++counter; - return S_OK; - } + void DpiAwared_GetDpiForWindow(HWND handle, UINT* x, UINT* y) + { + USE_API(user32, GetDpiForWindow); - ULONG STDMETHODCALLTYPE Release(void) + if (proc_GetDpiForWindow) { - if(--counter==0) - { - delete this; - } - return S_OK; + *x = *y = proc_GetDpiForWindow(handle); } - - STDMETHOD(Draw)( - void* clientDrawingContext, - IDWriteTextRenderer* renderer, - FLOAT originX, - FLOAT originY, - BOOL isSideways, - BOOL isRightToLeft, - IUnknown* clientDrawingEffect - )override + else { - Rect bounds(Point((vint)originX, (vint)originY), properties.size); - if (properties.backgroundImage) - { - IGuiGraphicsRenderer* graphicsRenderer=properties.backgroundImage->GetRenderer(); - if(graphicsRenderer) - { - graphicsRenderer->Render(bounds); - } - } - - Color color=rendererCallback->GetBackgroundColor(start); - if(color.a!=0) + HMONITOR monitor = MonitorFromWindow(handle, MONITOR_DEFAULTTONULL); + if (monitor == NULL) { - color.a/=2; - if(IWindowsDirect2DRenderTarget* renderTarget=rendererCallback->GetDirect2DRenderTarget()) - { - ID2D1SolidColorBrush* brush=renderTarget->CreateDirect2DBrush(color); - - renderTarget->GetDirect2DRenderTarget()->FillRectangle( - D2D1::RectF(bounds.x1-0.5f, bounds.y1-0.5f, bounds.x2+0.5f, bounds.y2+0.5f), - brush - ); - - renderTarget->DestroyDirect2DBrush(color); - } + *x = *y = 96; } - - if (properties.callbackId != -1) + else { - if (auto callback = rendererCallback->GetParagraphCallback()) - { - auto offset = rendererCallback->GetParagraphOffset(); - auto size = callback->OnRenderInlineObject(properties.callbackId, Rect(Point(bounds.x1 - offset.x, bounds.y1 - offset.y), bounds.GetSize())); - properties.size = size; - } + DpiAwared_GetDpiForMonitor(monitor, x, y); } - return S_OK; } + } - STDMETHOD(GetMetrics)( - DWRITE_INLINE_OBJECT_METRICS* metrics - )override + void DpiAwared_AdjustWindowRect(LPRECT rect, HWND handle, UINT dpi) + { + USE_API(user32, AdjustWindowRectExForDpi); + + if (proc_AdjustWindowRectExForDpi) { - metrics->width=(FLOAT)properties.size.x; - metrics->height=(FLOAT)properties.size.y; - metrics->baseline=(FLOAT)(properties.baseline==-1?properties.size.y:properties.baseline); - metrics->supportsSideways=TRUE; - return S_OK; + proc_AdjustWindowRectExForDpi(rect, (DWORD)GetWindowLongPtr(handle, GWL_STYLE), FALSE, (DWORD)GetWindowLongPtr(handle, GWL_EXSTYLE), dpi); } - - STDMETHOD(GetOverhangMetrics)( - DWRITE_OVERHANG_METRICS* overhangs - )override + else { - overhangs->left=0; - overhangs->right=0; - overhangs->top=0; - overhangs->bottom=0; - return S_OK; + AdjustWindowRect(rect, (DWORD)GetWindowLongPtr(handle, GWL_STYLE), FALSE); } + } - STDMETHOD(GetBreakConditions)( - DWRITE_BREAK_CONDITION* breakConditionBefore, - DWRITE_BREAK_CONDITION* breakConditionAfter - )override + int DpiAwared_GetSystemMetrics(int index, UINT dpi) + { + USE_API(user32, GetSystemMetricsForDpi); + + if (proc_GetSystemMetricsForDpi) { - switch(properties.breakCondition) - { - case IGuiGraphicsParagraph::StickToPreviousRun: - *breakConditionBefore=DWRITE_BREAK_CONDITION_MAY_NOT_BREAK; - *breakConditionAfter=DWRITE_BREAK_CONDITION_CAN_BREAK; - break; - case IGuiGraphicsParagraph::StickToNextRun: - *breakConditionBefore=DWRITE_BREAK_CONDITION_CAN_BREAK; - *breakConditionAfter=DWRITE_BREAK_CONDITION_MAY_NOT_BREAK; - break; - default: - *breakConditionBefore=DWRITE_BREAK_CONDITION_CAN_BREAK; - *breakConditionAfter=DWRITE_BREAK_CONDITION_CAN_BREAK; - } - return S_OK; + return proc_GetSystemMetricsForDpi(index, dpi); } - }; + else + { + return GetSystemMetrics(index); + } + } + +#undef USE_API + } + } +} /*********************************************************************** -WindowsDirect2DParagraph +.\WINNATIVEWINDOW.CPP ***********************************************************************/ +#include - class WindowsDirect2DParagraph : public Object, public IGuiGraphicsParagraph, public WindowsDirect2DElementInlineObject::IRendererCallback - { - protected: - struct TextRange - { - vint start; - vint end; +#pragma comment(lib, "Imm32.lib") +#pragma comment(lib, "Shlwapi.lib") +#pragma comment(lib, "Comctl32.lib") - TextRange(){} - TextRange(vint _start, vint _end):start(_start),end(_end){} +namespace vl +{ + namespace presentation + { + namespace windows + { + using namespace collections; - inline vint Compare(const TextRange& value)const - { - vint result; - if ((result = start - value.start) != 0) return result; - if ((result = end - value.end) != 0) return result; - return 0; - } - GUI_DEFINE_COMPARE_OPERATORS(TextRange) - }; + LPCWSTR defaultIconResourceName = nullptr; - typedef Dictionary> InlineElementMap; - typedef Dictionary ColorMap; - typedef Dictionary GraphicsElementMap; - protected: - IGuiGraphicsLayoutProvider* provider; - ID2D1SolidColorBrush* defaultTextColor; - IDWriteFactory* dwriteFactory; - IWindowsDirect2DRenderTarget* renderTarget; - WString paragraphText; - ComPtr textLayout; - bool wrapLine; - vint maxWidth; - List usedColors; - - InlineElementMap inlineElements; - GraphicsElementMap graphicsElements; - ColorMap backgroundColors; - - vint caret; - Color caretColor; - bool caretFrontSide; - ID2D1SolidColorBrush* caretBrush; + HICON CreateWindowDefaultIcon(vint size = 0) + { + if (!defaultIconResourceName) return NULL; + return (HICON)LoadImage(GetModuleHandle(NULL), defaultIconResourceName, IMAGE_ICON, (int)size, (int)size, (size ? 0 : LR_DEFAULTSIZE) | LR_SHARED); + } - bool formatDataAvailable; - Array lineMetrics; - Array lineStarts; - Array lineTops; - Array clusterMetrics; - Array hitTestMetrics; - Array charHitTestMap; + void SetWindowDefaultIcon(UINT resourceId) + { + CHECK_ERROR(defaultIconResourceName == nullptr, L"vl::presentation::windows::SetWindowDefaultIcon(UINT)#This function can only be called once."); + defaultIconResourceName = MAKEINTRESOURCE(resourceId); + } - Point paragraphOffset; - IGuiGraphicsParagraphCallback* paragraphCallback; + HWND GetHWNDFromNativeWindowHandle(INativeWindow* window) + { + if(!window) return NULL; + IWindowsForm* form=GetWindowsForm(window); + if(!form) return NULL; + return form->GetWindowHandle(); + } /*********************************************************************** -WindowsDirect2DParagraph (Ranges) +WindowsClass ***********************************************************************/ - template - void CutMap(Dictionary& map, vint start, vint length) + class WinClass : public Object + { + protected: + WString name; + WNDCLASSEX windowClass; + ATOM windowAtom; + + public: + WinClass(WString _name, bool shadow, bool ownDC, WNDPROC procedure, HINSTANCE hInstance) { - vint end=start+length; - for(vint i=map.Count()-1;i>=0;i--) + name=_name; + ZeroMemory(&windowClass, sizeof(windowClass)); + windowClass.cbSize=sizeof(windowClass); + windowClass.style=CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | (shadow?CS_DROPSHADOW:0) | (ownDC?CS_OWNDC:0); + windowClass.lpfnWndProc=procedure; + windowClass.cbClsExtra=0; + windowClass.cbWndExtra=0; + windowClass.hInstance=hInstance; + if (defaultIconResourceName) { - TextRange key=map.Keys()[i]; - if(key.startstart?key.start:start; - vint s3=key.end - void UpdateOverlappedMap(Dictionary& map, vint start, vint length, const T& value) + + ATOM GetClassAtom() { - vint end=start+length; - for(vint i=map.Count()-1;i>=0;i--) - { - TextRange key=map.Keys()[i]; - if(key.start - void DefragmentMap(Dictionary& map) + LONG_PTR InternalGetExStyle() { - vint lastIndex=map.Count()-1; - T lastValue=map.Values()[lastIndex]; - for(vint i=map.Count()-2;i>=-1;i--) - { - if(i==-1 || map.Values()[i]!=lastValue) - { - if(lastIndex-i>0) - { - vint start=map.Keys()[i+1].start; - vint end=map.Keys()[lastIndex].end; - TextRange key(start, end); + return GetWindowLongPtr(handle, GWL_EXSTYLE); + } - for(vint j=lastIndex;j>i;j--) - { - map.Remove(map.Keys()[j]); - } - map.Add(key, lastValue); - } - lastIndex=i; - if(i!=-1) - { - lastValue=map.Values()[i]; - } - } - } + void InternalSetExStyle(LONG_PTR exStyle) + { + LONG_PTR result = SetWindowLongPtr(handle, GWL_EXSTYLE, exStyle); + SetWindowPos(handle, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); } - - template - void SetMap(Dictionary& map, vint start, vint length, const T& value) + + LONG_PTR InternalGetStyle() { - CutMap(map, start, length); - UpdateOverlappedMap(map, start, length, value); - DefragmentMap(map); + return GetWindowLongPtr(handle, GWL_STYLE); } - template - bool GetMap(Dictionary& map, vint textPosition, T& value) + void InternalSetStyle(LONG_PTR style) { - vint start=0; - vint end=map.Count()-1; - while(start<=end) + SetWindowLongPtr(handle, GWL_STYLE, style); + SetWindowPos(handle, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); + } + + LONG_PTR TurnOnStyle(LONG_PTR combination, LONG_PTR style) + { + return combination | style; + } + + LONG_PTR TurnOffStyle(LONG_PTR combination, LONG_PTR style) + { + return combination & (~style); + } + + bool GetExStyle(LONG_PTR exStyle) + { + return (InternalGetExStyle() & exStyle) != 0; + } + + void SetExStyle(LONG_PTR exStyle, bool available) + { + if (available) { - vint middle=(start+end)/2; - TextRange key=map.Keys()[middle]; - if(textPosition=key.end) - { - start=middle+1; - } - else - { - value=map.Values()[middle]; - return true; - } + InternalSetExStyle(TurnOnStyle(InternalGetExStyle(), exStyle)); + } + else + { + InternalSetExStyle(TurnOffStyle(InternalGetExStyle(), exStyle)); } - return false; } -/*********************************************************************** -WindowsDirect2DParagraph (Layout Retriving) -***********************************************************************/ + bool GetStyle(LONG_PTR style) + { + return (InternalGetStyle() & style) != 0; + } - void PrepareFormatData() + void SetStyle(LONG_PTR style, bool available) { - if(!formatDataAvailable) + if (available) { - formatDataAvailable=true; - { - UINT32 lineCount=0; - textLayout->GetLineMetrics(NULL, 0, &lineCount); - lineMetrics.Resize(lineCount); - if(lineCount>0) - { - textLayout->GetLineMetrics(&lineMetrics[0], lineCount, &lineCount); - } + InternalSetStyle(TurnOnStyle(InternalGetStyle(), style)); + } + else + { + InternalSetStyle(TurnOffStyle(InternalGetStyle(), style)); + } + } +#pragma push_macro("_CONTROL") +#if defined _CONTROL +#undef _CONTROL +#endif + NativeWindowMouseInfo ConvertMouse(WPARAM wParam, LPARAM lParam, bool wheelMessage, bool nonClient) + { + NativeWindowMouseInfo info; - lineStarts.Resize(lineCount); - lineTops.Resize(lineCount); - vint start=0; - FLOAT top=0; - for(vint i=0;iGetClusterMetrics(NULL, 0, &clusterCount); - clusterMetrics.Resize(clusterCount); - if(clusterCount>0) - { - textLayout->GetClusterMetrics(&clusterMetrics[0], clusterCount, &clusterCount); - } - } - { - vint textPos=0; - hitTestMetrics.Resize(clusterMetrics.Count()); - for(vint i=0;iHitTestTextPosition((UINT32)textPos, FALSE, &x, &y, &metrics); - textPos+=metrics.length; - } - } + info.nonClient = false; + if (nonClient) + { + switch (wParam) { - charHitTestMap.Resize(paragraphText.Length()); - for(vint i=0;iGetDirectWriteFactory()) - ,renderTarget(dynamic_cast(_renderTarget)) - ,paragraphText(_text) - ,textLayout(0) - ,wrapLine(true) - ,maxWidth(-1) - ,caret(-1) - ,caretFrontSide(false) - ,caretBrush(0) - ,formatDataAvailable(false) - ,paragraphCallback(_paragraphCallback) - { - FontProperties defaultFont=GetCurrentController()->ResourceService()->GetDefaultFont(); - Direct2DTextFormatPackage* package=GetWindowsDirect2DResourceManager()->CreateDirect2DTextFormat(defaultFont); - defaultTextColor=renderTarget->CreateDirect2DBrush(Color(0, 0, 0)); - usedColors.Add(Color(0, 0, 0)); - IDWriteTextLayout* rawTextLayout=0; - HRESULT hr=dwriteFactory->CreateTextLayout( - _text.Buffer(), - (int)_text.Length(), - package->textFormat.Obj(), - 0, - 0, - &rawTextLayout); - if(!FAILED(hr)) + if(wheelMessage) { - textLayout=rawTextLayout; - textLayout->SetMaxWidth(65536); - textLayout->SetWordWrapping(DWRITE_WORD_WRAPPING_WRAP); + info.wheel=GET_WHEEL_DELTA_WPARAM(wParam); + wParam=GET_KEYSTATE_WPARAM(wParam); } - graphicsElements.Add(TextRange(0, _text.Length()), nullptr); - backgroundColors.Add(TextRange(0, _text.Length()), Color(0, 0, 0, 0)); - - GetWindowsDirect2DResourceManager()->DestroyDirect2DTextFormat(defaultFont); - } - - ~WindowsDirect2DParagraph() - { - CloseCaret(); - for (auto color : usedColors) + else { - renderTarget->DestroyDirect2DBrush(color); + info.wheel=0; } - } - IGuiGraphicsLayoutProvider* GetProvider()override - { - return provider; - } + if (nonClient) + { + info.ctrl = WinIsKeyPressing(VKEY::KEY_CONTROL); + info.shift = WinIsKeyPressing(VKEY::KEY_SHIFT); + info.left= WinIsKeyPressing(VKEY::KEY_LBUTTON); + info.middle= WinIsKeyPressing(VKEY::KEY_MBUTTON); + info.right = WinIsKeyPressing(VKEY::KEY_RBUTTON); + + POINTS point = MAKEPOINTS(lParam); + NativePoint offset = GetClientBoundsInScreen().LeftTop(); + info.x = point.x - offset.x.value; + info.y = point.y - offset.y.value; + } + else + { + info.ctrl=(wParam & MK_CONTROL)!=0; + info.shift=(wParam & MK_SHIFT)!= 0; + info.left=(wParam & MK_LBUTTON)!= 0; + info.middle=(wParam & MK_MBUTTON)!= 0; + info.right=(wParam & MK_RBUTTON)!= 0; - IGuiGraphicsRenderTarget* GetRenderTarget()override - { - return renderTarget; - } + POINTS point = MAKEPOINTS(lParam); - Point GetParagraphOffset()override - { - return paragraphOffset; + if (wheelMessage) + { + NativePoint offset = GetClientBoundsInScreen().LeftTop(); + info.x = point.x - offset.x.value; + info.y = point.y - offset.y.value; + } + else + { + info.x = point.x; + info.y = point.y; + } + } + return info; } - IGuiGraphicsParagraphCallback* GetParagraphCallback()override + NativeWindowKeyInfo ConvertKey(WPARAM wParam, LPARAM lParam) { - return paragraphCallback; + NativeWindowKeyInfo info; + info.code=(VKEY)wParam; + info.ctrl=WinIsKeyPressing(VKEY::KEY_CONTROL); + info.shift=WinIsKeyPressing(VKEY::KEY_SHIFT); + info.alt=WinIsKeyPressing(VKEY::KEY_MENU); + info.capslock=WinIsKeyToggled(VKEY::KEY_CAPITAL); + info.autoRepeatKeyDown = (((vuint32_t)lParam) >> 30) % 2 == 1; + return info; } -/*********************************************************************** -WindowsDirect2DParagraph (Formatting) -***********************************************************************/ - - bool GetWrapLine()override + NativeWindowCharInfo ConvertChar(WPARAM wParam) { - return wrapLine; + NativeWindowCharInfo info; + info.code=(wchar_t)wParam; + info.ctrl=WinIsKeyPressing(VKEY::KEY_CONTROL); + info.shift=WinIsKeyPressing(VKEY::KEY_SHIFT); + info.alt=WinIsKeyPressing(VKEY::KEY_MENU); + info.capslock=WinIsKeyToggled(VKEY::KEY_CAPITAL); + return info; } +#pragma pop_macro("_CONTROL") - void SetWrapLine(bool value)override + void TrackMouse(bool enable) { - if(wrapLine!=value) - { - wrapLine=value; - textLayout->SetWordWrapping(value?DWRITE_WORD_WRAPPING_WRAP:DWRITE_WORD_WRAPPING_NO_WRAP); - formatDataAvailable=false; - } + TRACKMOUSEEVENT trackMouseEvent; + trackMouseEvent.cbSize=sizeof(trackMouseEvent); + trackMouseEvent.hwndTrack=handle; + trackMouseEvent.dwFlags=(enable?0:TME_CANCEL) | TME_HOVER | TME_LEAVE; + trackMouseEvent.dwHoverTime=HOVER_DEFAULT; + TrackMouseEvent(&trackMouseEvent); } - vint GetMaxWidth()override + void UpdateCompositionForContent() { - return maxWidth; + HIMC imc = ImmGetContext(handle); + COMPOSITIONFORM cf; + cf.dwStyle = CFS_POINT; + cf.ptCurrentPos.x = (int)caretPoint.x.value; + cf.ptCurrentPos.y = (int)caretPoint.y.value; + ImmSetCompositionWindow(imc, &cf); + ImmReleaseContext(handle, imc); } - void SetMaxWidth(vint value)override - { - if(maxWidth!=value) - { - maxWidth=value; - textLayout->SetMaxWidth(value==-1?65536:(FLOAT)value); - formatDataAvailable=false; - } - } + bool supressClosePopups = false; - Alignment GetParagraphAlignment()override + static void ClosePopupsOf(WindowsForm* owner, SortedList& exceptions) { - switch(textLayout->GetTextAlignment()) + for (vint i = 0; i < owner->childWindows.Count(); i++) { - case DWRITE_TEXT_ALIGNMENT_LEADING: - return Alignment::Left; - case DWRITE_TEXT_ALIGNMENT_CENTER: - return Alignment::Center; - case DWRITE_TEXT_ALIGNMENT_TRAILING: - return Alignment::Right; - default: - return Alignment::Left; + auto popup = owner->childWindows[i]; + if (popup->windowMode != Normal && popup->IsVisible()) + { + if (!exceptions.Contains(popup)) + { + popup->Hide(false); + } + } + ClosePopupsOf(popup, exceptions); } } - void SetParagraphAlignment(Alignment value)override + bool HandleMessageInternal(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) { - formatDataAvailable=false; - switch(value) + if (!supressClosePopups) { - case Alignment::Left: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING); - break; - case Alignment::Center: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER); - break; - case Alignment::Right: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING); - break; - } - } - - bool SetFont(vint start, vint length, const WString& value)override - { - if(length==0) return true; - formatDataAvailable=false; + bool closePopups = false; + WindowsForm* activatedWindow = nullptr; + WindowsForm* rootWindow = nullptr; + SortedList exceptions; - DWRITE_TEXT_RANGE range; - range.startPosition=(int)start; - range.length=(int)length; - HRESULT hr=textLayout->SetFontFamilyName(value.Buffer(), range); - return !FAILED(hr); - } - - bool SetSize(vint start, vint length, vint value)override - { - if(length==0) return true; - formatDataAvailable=false; - - DWRITE_TEXT_RANGE range; - range.startPosition=(int)start; - range.length=(int)length; - HRESULT hr=textLayout->SetFontSize((FLOAT)value, range); - return !FAILED(hr); - } - - bool SetStyle(vint start, vint length, TextStyle value)override - { - if(length==0) return true; - formatDataAvailable=false; - - DWRITE_TEXT_RANGE range; - range.startPosition=(int)start; - range.length=(int)length; - HRESULT hr=S_OK; - - hr=textLayout->SetFontStyle(value&Italic?DWRITE_FONT_STYLE_ITALIC:DWRITE_FONT_STYLE_NORMAL, range); - if(FAILED(hr)) return false; - hr=textLayout->SetFontWeight(value&Bold?DWRITE_FONT_WEIGHT_BOLD:DWRITE_FONT_WEIGHT_NORMAL, range); - if(FAILED(hr)) return false; - hr=textLayout->SetUnderline(value&Underline?TRUE:FALSE, range); - if(FAILED(hr)) return false; - hr=textLayout->SetStrikethrough(value&Strikeline?TRUE:FALSE, range); - if(FAILED(hr)) return false; - - return true; - } - - bool SetColor(vint start, vint length, Color value)override - { - if(length==0) return true; - formatDataAvailable=false; - - ID2D1SolidColorBrush* brush=renderTarget->CreateDirect2DBrush(value); - usedColors.Add(value); - - DWRITE_TEXT_RANGE range; - range.startPosition=(int)start; - range.length=(int)length; - HRESULT hr=textLayout->SetDrawingEffect(brush, range); - return !FAILED(hr); - } - - bool SetBackgroundColor(vint start, vint length, Color value)override - { - SetMap(backgroundColors, start, length, value); - return true; - } - - bool SetInlineObject(vint start, vint length, const InlineObjectProperties& properties)override - { - if(inlineElements.Keys().Contains(properties.backgroundImage.Obj())) - { - return false; - } - for(vint i=0;i inlineObject=inlineElements.Values().Get(i); - if(startGetStart()+inlineObject->GetLength() && inlineObject->GetStart() inlineObject=new WindowsDirect2DElementInlineObject(properties, this, start, length); - DWRITE_TEXT_RANGE range; - range.startPosition=(int)start; - range.length=(int)length; - HRESULT hr=textLayout->SetInlineObject(inlineObject.Obj(), range); - if(!FAILED(hr)) - { - if (properties.backgroundImage) + if (activatedWindow) { - IGuiGraphicsRenderer* renderer=properties.backgroundImage->GetRenderer(); - if(renderer) + rootWindow = activatedWindow; + exceptions.Add(rootWindow); + while (auto parentWindow = rootWindow->parentWindow) { - renderer->SetRenderTarget(renderTarget); + rootWindow = parentWindow; + exceptions.Add(parentWindow); } - inlineElements.Add(properties.backgroundImage.Obj(), inlineObject); } - SetMap(graphicsElements, start, length, properties.backgroundImage.Obj()); - return true; - } - else - { - return false; - } - } - bool ResetInlineObject(vint start, vint length)override - { - IGuiGraphicsElement* element=0; - if(GetMap(graphicsElements, start, element) && element) - { - ComPtr inlineObject=inlineElements[element]; - DWRITE_TEXT_RANGE range; - range.startPosition=(int)inlineObject->GetStart(); - range.length=(int)inlineObject->GetLength(); - HRESULT hr=textLayout->SetInlineObject(NULL, range); - if(!FAILED(hr)) - { - formatDataAvailable=false; - inlineElements.Remove(element); - SetMap(graphicsElements, inlineObject->GetStart(), inlineObject->GetLength(), (IGuiGraphicsElement*)0); - return true; - } - else + if (closePopups) { - return false; - } - } - return false; - } - - vint GetHeight()override - { - DWRITE_TEXT_METRICS metrics; - textLayout->GetMetrics(&metrics); - return (vint)ceil(metrics.height); - } - -/*********************************************************************** -WindowsDirect2DParagraph (IRenderingCallback) -***********************************************************************/ - - Color GetBackgroundColor(vint textPosition)override - { - Color color; - if(GetMap(backgroundColors, textPosition, color)) - { - return color; - } - else - { - return Color(0, 0, 0, 0); - } - } - - IWindowsDirect2DRenderTarget* GetDirect2DRenderTarget()override - { - return renderTarget; - } - -/*********************************************************************** -WindowsDirect2DParagraph (Rendering) -***********************************************************************/ - - bool OpenCaret(vint _caret, Color _color, bool _frontSide)override - { - if(!IsValidCaret(_caret)) return false; - if(caret!=-1) CloseCaret(); - caret=_caret; - caretColor=_color; - caretFrontSide=_frontSide; - caretBrush=renderTarget->CreateDirect2DBrush(caretColor); - return true; - } - - bool CloseCaret()override - { - if(caret==-1) return false; - caret=-1; - renderTarget->DestroyDirect2DBrush(caretColor); - caretBrush=0; - return true; - } - - struct BackgroundRenderer - { - IWindowsDirect2DRenderTarget* renderTarget = nullptr; - ID2D1SolidColorBrush* lastBackgroundBrush = nullptr; - FLOAT lbx1, lby1, lbx2, lby2; + List allRootWindows; + GetAllCreatedWindows(allRootWindows, true); - void RenderBackground() - { - if (lastBackgroundBrush) - { - renderTarget->GetDirect2DRenderTarget()->FillRectangle( - D2D1::RectF(lbx1, lby1, lbx2, lby2), - lastBackgroundBrush - ); - lastBackgroundBrush = nullptr; + for (vint i = 0; i < allRootWindows.Count(); i++) + { + if (auto windowsForm = dynamic_cast(allRootWindows[i])) + { + ClosePopupsOf(windowsForm, exceptions); + } + } } } - void SubmitBackground(ID2D1SolidColorBrush* brush, FLOAT x1, FLOAT y1, FLOAT x2, FLOAT y2) + bool nonClient = false; + + switch(uMsg) { - if (lastBackgroundBrush) + // ************************************** moving and sizing + case WM_MOVING:case WM_SIZING: { - if (lastBackgroundBrush != brush) + LPRECT rawBounds=(LPRECT)lParam; + NativeRect bounds(rawBounds->left, rawBounds->top, rawBounds->right, rawBounds->bottom); + for(vint i=0;iMoving(bounds, false, (uMsg == WM_SIZING)); } - else + if( rawBounds->left!=bounds.Left().value + || rawBounds->top!=bounds.Top().value + || rawBounds->right!=bounds.Right().value + || rawBounds->bottom!=bounds.Bottom().value) { - FLOAT yc = (y1 + y2) / 2; - if (yclby2) - { - RenderBackground(); - } + rawBounds->left=(int)bounds.Left().value; + rawBounds->top=(int)bounds.Top().value; + rawBounds->right=(int)bounds.Right().value; + rawBounds->bottom=(int)bounds.Bottom().value; + result=TRUE; } } - - if (lastBackgroundBrush) + break; + case WM_MOVE:case WM_SIZE: { - if (lbx1 > x1) lbx1 = x1; - if (lby1 > y1) lby1 = y1; - if (lbx2 < x2) lbx2 = x2; - if (lby2 < y2) lby2 = y2; + for(vint i=0;iMoved(); + } } - else + break; + case WM_DPICHANGED: { - lastBackgroundBrush = brush; - lbx1 = x1; - lby1 = y1; - lbx2 = x2; - lby2 = y2; - } - } - }; + dpiX = LOWORD(wParam); + dpiY = HIWORD(wParam); + UpdateDpiAwaredFields(false); + auto newRect = (RECT*)lParam; + MoveWindow(handle, newRect->left, newRect->top, (newRect->right - newRect->left), (newRect->bottom - newRect->top), FALSE); - void Render(Rect bounds)override - { - paragraphOffset = bounds.LeftTop(); - PrepareFormatData(); - { - BackgroundRenderer backgroundRenderer; - backgroundRenderer.renderTarget = renderTarget; + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->DpiChanged(true); + } - for (vint i = 0; i < backgroundColors.Count(); i++) + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->DpiChanged(false); + } + } + break; + // ************************************** state + case WM_ENABLE: { - TextRange key = backgroundColors.Keys()[i]; - Color color = backgroundColors.Values()[i]; - if (color.a > 0) + for(vint i=0;iCreateDirect2DBrush(color); - - vint start = key.start; - if (start < 0) + if(wParam==TRUE) { - start = 0; + listeners[i]->Enabled(); } - - while (start < charHitTestMap.Count() && start < key.end) + else { - vint index = charHitTestMap[start]; - DWRITE_HIT_TEST_METRICS& hitTest = hitTestMetrics[index]; - - FLOAT x1 = hitTest.left + (FLOAT)bounds.x1; - FLOAT y1 = hitTest.top + (FLOAT)bounds.y1; - FLOAT x2 = x1 + hitTest.width; - FLOAT y2 = y1 + hitTest.height; - - x1 -= 0.5f; - y1 -= 0.0f; - x2 += 0.5f; - y2 += 0.5f; - - backgroundRenderer.SubmitBackground(brush, x1, y1, x2, y2); - start = hitTest.textPosition + hitTest.length; + listeners[i]->Disabled(); } - - renderTarget->DestroyDirect2DBrush(color); } } - - backgroundRenderer.RenderBackground(); - } - - renderTarget->GetDirect2DRenderTarget()->DrawTextLayout( - D2D1::Point2F((FLOAT)bounds.Left(), (FLOAT)bounds.Top()), - textLayout.Obj(), - defaultTextColor, - D2D1_DRAW_TEXT_OPTIONS_NO_SNAP); - - if (caret != -1) - { - Rect caretBounds = GetCaretBounds(caret, caretFrontSide); - vint x = caretBounds.x1 + bounds.x1; - vint y1 = caretBounds.y1 + bounds.y1; - vint y2 = y1 + caretBounds.Height(); - - renderTarget->GetDirect2DRenderTarget()->DrawLine( - D2D1::Point2F((FLOAT)x - 0.5f, (FLOAT)y1 + 0.5f), - D2D1::Point2F((FLOAT)x - 0.5f, (FLOAT)y2 + 0.5f), - caretBrush - ); - renderTarget->GetDirect2DRenderTarget()->DrawLine( - D2D1::Point2F((FLOAT)x + 0.5f, (FLOAT)y1 + 0.5f), - D2D1::Point2F((FLOAT)x + 0.5f, (FLOAT)y2 + 0.5f), - caretBrush - ); - } - } - -/*********************************************************************** -WindowsDirect2DParagraph (Caret Helper) -***********************************************************************/ - - void GetLineIndexFromTextPos(vint textPos, vint& frontLineIndex, vint& backLineIndex) - { - frontLineIndex=-1; - backLineIndex=-1; - vint start=0; - vint end=lineMetrics.Count()-1; - while(start<=end) - { - vint middle=(start+end)/2; - DWRITE_LINE_METRICS& metrics=lineMetrics[middle]; - vint lineStart=lineStarts[middle]; - vint lineEnd=lineStart+metrics.length-metrics.newlineLength; - - if(textPoslineEnd) + break; + case WM_ACTIVATE: { - start=middle+1; + for (vint i = 0; i < listeners.Count(); i++) + { + if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) + { + listeners[i]->GotFocus(); + listeners[i]->RenderingAsActivated(); + } + else + { + listeners[i]->LostFocus(); + listeners[i]->RenderingAsDeactivated(); + } + } } - else if(textPos==lineStart && middle!=0) + break; + case WM_SHOWWINDOW: + if (lParam == 0) { - DWRITE_LINE_METRICS& anotherLine=lineMetrics[middle-1]; - frontLineIndex=anotherLine.newlineLength==0?middle-1:middle; - backLineIndex=middle; - return; + if (wParam == TRUE) + { + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->Opened(); + } + } + else + { + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->Closed(); + } + } } - else if(textPos==lineEnd && middle!=lineMetrics.Count()-1) + break; + case WM_CLOSE: { - frontLineIndex=middle; - backLineIndex=metrics.newlineLength==0?middle+1:middle; - return; + bool cancel = false; + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->BeforeClosing(cancel); + } + if (!cancel) + { + for (vint i = 0; i < listeners.Count(); i++) + { + listeners[i]->AfterClosing(); + } + } + return cancel; } - else + break; + // ************************************** mouse + case WM_NCLBUTTONDOWN: + if (!customFrameMode) break; + nonClient = true; + case WM_LBUTTONDOWN: { - frontLineIndex=middle; - backLineIndex=middle; - return; + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iLeftButtonDown(info); + } } - } - } - - Pair GetLineYRange(vint lineIndex) - { - DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; - FLOAT top=lineTops[lineIndex]; - return Pair(top, top+line.height); - } - - vint GetLineIndexFromY(vint y) - { - if(paragraphText.Length()==0) return 0; - FLOAT minY=0; - FLOAT maxY=0; - { - minY=hitTestMetrics[0].top; - DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[hitTestMetrics.Count()-1]; - maxY=hitTest.top+hitTest.height; - } - - if(y=maxY) - { - return lineMetrics.Count()-1; - } - - vint start=0; - vint end=lineMetrics.Count()-1; - while(start<=end) - { - vint middle=(start+end)/2; - Pair yRange=GetLineYRange(middle); - minY=yRange.key; - maxY=yRange.value; - - if(yLeftButtonUp(info); + } } - else if(y>=maxY) + break; + case WM_NCLBUTTONDBLCLK: + if (!customFrameMode) break; + nonClient = true; + case WM_LBUTTONDBLCLK: { - start=middle+1; + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iLeftButtonDoubleClick(info); + } } - else - { - return middle; - } - } - return -1; - } - - vint GetCaretFromXWithLine(vint x, vint lineIndex) - { - DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; - vint lineStart=lineStarts[lineIndex]; - vint lineEnd=lineStart+line.length-line.newlineLength; - - FLOAT minLineX=0; - FLOAT maxLineX=0; - - for(vint i=lineStart;iminX) minLineX=minX; - if(maxLineXRightButtonDown(info); } } - i+=hitTest.length; - } - - if(x=maxLineX) return lineEnd; - return lineStart; - } - -/*********************************************************************** -WindowsDirect2DParagraph (Caret) -***********************************************************************/ - - vint GetCaret(vint comparingCaret, CaretRelativePosition position, bool& preferFrontSide)override - { - PrepareFormatData(); - if(position==CaretFirst) return 0; - if(position==CaretLast) return paragraphText.Length(); - if(!IsValidCaret(comparingCaret)) return -1; - - vint frontLineIndex=-1; - vint backLineIndex=-1; - GetLineIndexFromTextPos(comparingCaret, frontLineIndex, backLineIndex); - vint lineIndex=preferFrontSide?frontLineIndex:backLineIndex; - DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; - vint lineStart=lineStarts[lineIndex]; - vint lineEnd=lineStart+line.length-line.newlineLength; - - switch(position) - { - case CaretLineFirst: - return lineStarts[lineIndex]; - case CaretLineLast: - return lineStarts[lineIndex]+line.length-line.newlineLength; - case CaretMoveLeft: + break; + case WM_NCRBUTTONUP: + if (!customFrameMode) break; + nonClient = true; + case WM_RBUTTONUP: { - if(comparingCaret==0) + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iRightButtonUp(info); } - else if(comparingCaret==lineStart) + } + break; + case WM_NCRBUTTONDBLCLK: + if (!customFrameMode) break; + nonClient = true; + case WM_RBUTTONDBLCLK: + { + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;i0) - { - return lineStart-offset; - } + listeners[i]->RightButtonDoubleClick(info); } - return hitTestMetrics[charHitTestMap[comparingCaret-1]].textPosition; } - case CaretMoveRight: + break; + case WM_NCMBUTTONDOWN: + if (!customFrameMode) break; + nonClient = true; + case WM_MBUTTONDOWN: { - if(comparingCaret==paragraphText.Length()) + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iMiddleButtonDown(info); } - else if(comparingCaret==lineEnd && line.newlineLength!=0) + } + break; + case WM_NCMBUTTONUP: + if (!customFrameMode) break; + nonClient = true; + case WM_MBUTTONUP: + { + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iMiddleButtonUp(info); } - else + } + break; + case WM_NCMBUTTONDBLCLK: + if (!customFrameMode) break; + nonClient = true; + case WM_MBUTTONDBLCLK: + { + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + for(vint i=0;iMiddleButtonDoubleClick(info); } } - case CaretMoveUp: + break; + case WM_NCMOUSEMOVE: + if (!customFrameMode) break; + nonClient = true; + case WM_MOUSEMOVE: { - if(lineIndex==0) + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); + if(info.x!=mouseLastX || info.y!=mouseLastY) { - return comparingCaret; + if(!mouseHoving) + { + mouseHoving=true; + for(vint i=0;iMouseEntered(); + } + TrackMouse(true); + } + for(vint i=0;iMouseMoving(info); + } } - else + } + break; + // ************************************** wheel + case WM_MOUSEHWHEEL: + { + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, true, false); + for(vint i=0;iHorizontalWheel(info); } } - case CaretMoveDown: + break; + case WM_MOUSEWHEEL: { - if(lineIndex==lineMetrics.Count()-1) + NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, true, false); + for(vint i=0;iVerticalWheel(info); } - else + } + break; + // ************************************** mouse state + case WM_NCMOUSELEAVE: + nonClient = true; + case WM_MOUSELEAVE: + if (customFrameMode == nonClient) + { + mouseLastX=-1; + mouseLastY=-1; + mouseHoving=false; + for(vint i=0;iMouseLeaved(); } } - } - return -1; - } - - Rect GetCaretBounds(vint caret, bool frontSide)override - { - PrepareFormatData(); - if(!IsValidCaret(caret)) return Rect(); - if(paragraphText.Length()==0) return Rect(Point(0, 0), Size(0, GetHeight())); - - vint frontLineIndex=-1; - vint backLineIndex=-1; - GetLineIndexFromTextPos(caret, frontLineIndex, backLineIndex); - vint lineIndex=frontSide?frontLineIndex:backLineIndex; - - Pair lineYRange=GetLineYRange(lineIndex); - DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; - if(line.length-line.newlineLength==0) - { - return Rect(0, (vint)lineYRange.key, 0, (vint)lineYRange.value); - } - else - { - vint lineStart=lineStarts[lineIndex]; - vint lineEnd=lineStart+line.length-line.newlineLength; - if(caret==lineStart) + break; + case WM_NCMOUSEHOVER: + case WM_MOUSEHOVER: { - frontSide=false; + TrackMouse(true); } - else if(caret==lineEnd) + break; + // ************************************** key + case WM_KEYUP: { - frontSide=true; + NativeWindowKeyInfo info=ConvertKey(wParam, lParam); + info.autoRepeatKeyDown = false; + for(vint i=0;iKeyUp(info); + } } - if(frontSide) + break; + case WM_KEYDOWN: { - caret--; + NativeWindowKeyInfo info=ConvertKey(wParam, lParam); + for(vint i=0;iKeyDown(info); + } } - - vint index=charHitTestMap[caret]; - DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[index]; - DWRITE_CLUSTER_METRICS& cluster=clusterMetrics[index]; - if(cluster.isRightToLeft) + break; + case WM_SYSKEYUP: { - frontSide=!frontSide; + NativeWindowKeyInfo info=ConvertKey(wParam, lParam); + info.autoRepeatKeyDown = false; + if (supressingAlt && !info.ctrl && !info.shift && info.code == VKEY::KEY_MENU) + { + supressingAlt = false; + break; + } + for(vint i=0;iKeyUp(info); + } } - - if(frontSide) + break; + case WM_SYSKEYDOWN: { - return Rect( - Point((vint)(hitTest.left+hitTest.width), (vint)hitTest.top), - Size(0, (vint)hitTest.height) - ); + NativeWindowKeyInfo info=ConvertKey(wParam, lParam); + if (supressingAlt && !info.ctrl && !info.shift && info.code == VKEY::KEY_MENU) + { + break; + } + for(vint i=0;iKeyDown(info); + } } - else + break; + case WM_CHAR: { - return Rect( - Point((vint)hitTest.left, (vint)hitTest.top), - Size(0, (vint)hitTest.height) - ); + NativeWindowCharInfo info=ConvertChar(wParam); + for(vint i=0;iChar(info); + } + } + break; + // ************************************** painting + case WM_PAINT: + { + for(vint i=0;iPaint(); + } + } + break; + case WM_ERASEBKGND: + result = 0; + return true; + case WM_NCPAINT: + case WM_SYNCPAINT: + if(customFrameMode) + { + result=0; + return true; + } + break; + // ************************************** IME + case WM_IME_SETCONTEXT: + if(wParam==TRUE) + { + HIMC imc = ImmGetContext(handle); + ImmAssociateContext(hwnd, imc); + ImmReleaseContext(handle, imc); + } + break; + case WM_IME_STARTCOMPOSITION: + UpdateCompositionForContent(); + break; + // ************************************** hit test + case WM_NCHITTEST: + { + POINTS location = MAKEPOINTS(lParam); + NativePoint windowLocation = GetBounds().LeftTop(); + location.x -= (SHORT)windowLocation.x.value; + location.y -= (SHORT)windowLocation.y.value; + switch (PerformHitTest(From(listeners), { location.x,location.y })) + { + case INativeWindowListener::BorderNoSizing: + result = HTBORDER; + return true; + case INativeWindowListener::BorderLeft: + result = HTLEFT; + return true; + case INativeWindowListener::BorderRight: + result = HTRIGHT; + return true; + case INativeWindowListener::BorderTop: + result = HTTOP; + return true; + case INativeWindowListener::BorderBottom: + result = HTBOTTOM; + return true; + case INativeWindowListener::BorderLeftTop: + result = HTTOPLEFT; + return true; + case INativeWindowListener::BorderRightTop: + result = HTTOPRIGHT; + return true; + case INativeWindowListener::BorderLeftBottom: + result = HTBOTTOMLEFT; + return true; + case INativeWindowListener::BorderRightBottom: + result = HTBOTTOMRIGHT; + return true; + case INativeWindowListener::Title: + result = HTCAPTION; + return true; + case INativeWindowListener::ButtonMinimum: + result = HTMINBUTTON; + return true; + case INativeWindowListener::ButtonMaximum: + result = HTMAXBUTTON; + return true; + case INativeWindowListener::ButtonClose: + result = HTCLOSE; + return true; + case INativeWindowListener::Client: + result = HTCLIENT; + return true; + case INativeWindowListener::Icon: + result = HTSYSMENU; + return true; + } + } + break; + // ************************************** MISC + case WM_SETCURSOR: + { + DWORD hitTestResult=LOWORD(lParam); + if(hitTestResult==HTCLIENT) + { + HCURSOR cursorHandle=cursor->GetCursorHandle(); + if(GetCursor()!=cursorHandle) + { + SetCursor(cursorHandle); + } + result=TRUE; + return true; + } + } + break; + case WM_NCCALCSIZE: + if((BOOL)wParam && customFrameMode) + { + result=0; + return true; + } + break; + case WM_NCACTIVATE: + if(customFrameMode) + { + if(wParam==TRUE) + { + result=FALSE; + } + else + { + result=TRUE; + } + return true; } + break; } - } - - vint GetCaretFromPoint(Point point)override - { - PrepareFormatData(); - vint lineIndex=GetLineIndexFromY(point.y); - vint caret=GetCaretFromXWithLine(point.x, lineIndex); - return caret; - } - Nullable GetInlineObjectFromPoint(Point point, vint& start, vint& length)override - { - DWRITE_HIT_TEST_METRICS metrics={0}; - BOOL trailingHit=FALSE; - BOOL inside=FALSE; - start=-1; - length=0; - HRESULT hr=textLayout->HitTestPoint((FLOAT)point.x, (FLOAT)point.y, &trailingHit, &inside, &metrics); - if(hr==S_OK) + // handling custom frame + if (customFrameMode) { - IGuiGraphicsElement* element=0; - if(GetMap(graphicsElements, metrics.textPosition, element) && element) + switch (uMsg) { - ComPtr inlineObject=inlineElements[element]; - start=inlineObject->GetStart(); - length=inlineObject->GetLength(); - return inlineObject->GetProperties(); + case WM_NCLBUTTONDOWN: + switch (wParam) + { + case HTMINBUTTON: + case HTMAXBUTTON: + case HTCLOSE: + result = 0; + return true; + } + break; + case WM_LBUTTONUP: + { + POINTS location = MAKEPOINTS(lParam); + for (vint i = 0; i < listeners.Count(); i++) + { + switch (PerformHitTest(From(listeners), { location.x,location.y })) + { + case INativeWindowListener::ButtonMinimum: + ShowMinimized(); + return false; + case INativeWindowListener::ButtonMaximum: + if (GetSizeState() == INativeWindow::Maximized) + { + ShowRestored(); + } + else + { + ShowMaximized(); + } + return false; + case INativeWindowListener::ButtonClose: + Hide(true); + return false; + } + } + } + break; } } - return Nullable(); + return false; } + protected: + HWND handle; + WString title; + WindowsCursor* cursor = nullptr; + NativePoint caretPoint; + WindowsForm* parentWindow = nullptr; + List childWindows; + WindowMode windowMode; + bool isMainWindow = false; + List listeners; + vint mouseLastX = -1; + vint mouseLastY = -1; + bool mouseHoving = false; + Interface* graphicsHandler = nullptr; + bool customFrameMode = false; + bool enabledActivate = true; + List> messageHandlers; + bool supressingAlt = false; + Ptr flagDisposed = Ptr(new bool(false)); + NativeMargin customFramePadding; + Ptr defaultIcon; + Ptr replacementIcon; + HICON replacementHIcon = NULL; + vint dpiX = 0; + vint dpiY = 0; - vint GetNearestCaretFromTextPos(vint textPos, bool frontSide)override + void UpdateDpiAwaredFields(bool refreshDpiXY) { - PrepareFormatData(); - if(!IsValidTextPos(textPos)) return -1; - if(textPos==0 || textPos==paragraphText.Length()) return textPos; - - vint index=charHitTestMap[textPos]; - DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[index]; - if(hitTest.textPosition==textPos) + if (refreshDpiXY) { - return textPos; + UINT x = 0; + UINT y = 0; + DpiAwared_GetDpiForWindow(handle, &x, &y); + dpiX = (vint)x; + dpiY = (vint)y; } - else if(frontSide) + auto padding = (vint)(DpiAwared_GetSystemMetrics(SM_CXSIZEFRAME, (UINT)dpiX) + DpiAwared_GetSystemMetrics(SM_CXPADDEDBORDER, (UINT)dpiX)); + customFramePadding = NativeMargin(padding, padding, padding, padding); + } + public: + WindowsForm(HWND parent, WString className, HINSTANCE hInstance, INativeWindow::WindowMode _windowMode) + : windowMode(_windowMode) + { { - return hitTest.textPosition; + DWORD exStyle = WS_EX_APPWINDOW | WS_EX_CONTROLPARENT; + DWORD style = WS_BORDER | WS_CAPTION | WS_SIZEBOX | WS_SYSMENU | WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_MINIMIZEBOX; + handle = CreateWindowEx(exStyle, className.Buffer(), L"", style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, parent, NULL, hInstance, NULL); } - else + if (windowMode == INativeWindow::Normal) { - return hitTest.textPosition+hitTest.length; + // use WS_POPUP in CreateWindowEx, because CW_USERDEFAULT is interpreted as 0, unlike WS_OVERLAPPED + // if this is not a popup window, replace WS_POPUP with WS_OVERLAPPED + auto style = InternalGetStyle(); + style = TurnOnStyle(style, WS_OVERLAPPED); + style = TurnOffStyle(style, WS_POPUP); + InternalSetStyle(style); } + UpdateDpiAwaredFields(true); } - bool IsValidCaret(vint caret)override + ~WindowsForm() { - PrepareFormatData(); - if(!IsValidTextPos(caret)) return false; - if(caret==0 || caret==paragraphText.Length()) return true; - if(hitTestMetrics[charHitTestMap[caret]].textPosition==caret) return true; + if (parentWindow) + { + parentWindow->childWindows.Remove(this); + } + for (vint i = childWindows.Count() - 1; i >= 0; i--) + { + childWindows[i]->SetParent(parentWindow); + } - vint frontLineIndex=-1; - vint backLineIndex=-1; - GetLineIndexFromTextPos(caret, frontLineIndex, backLineIndex); - if(frontLineIndex==-1 && backLineIndex==-1) return false; - return false; + *flagDisposed.Obj() = true; + List copiedListeners; + CopyFrom(copiedListeners, listeners); + for (vint i = 0; i < copiedListeners.Count(); i++) + { + INativeWindowListener* listener = copiedListeners[i]; + if (listeners.Contains(listener)) + { + listener->Destroyed(); + } + } + DestroyWindow(handle); } - bool IsValidTextPos(vint textPos) + void SetIsMainWindow() { - return 0<=textPos && textPos<=paragraphText.Length(); + isMainWindow = true; } - }; - -/*********************************************************************** -WindowsDirect2DLayoutProvider -***********************************************************************/ - - Ptr WindowsDirect2DLayoutProvider::CreateParagraph(const WString& text, IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback) - { - return new WindowsDirect2DParagraph(this, text, renderTarget, callback); - } - } - } -} - -/*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSRENDERERSWINDOWSDIRECT2D.CPP -***********************************************************************/ -#include -namespace vl -{ - namespace presentation - { - namespace elements_windows_d2d - { - using namespace collections; + void InvokeDestroying() + { + for(vint i=0;iDestroying(); + } + } -/*********************************************************************** -IMPLEMENT_BRUSH_ELEMENT_RENDERER -***********************************************************************/ + bool HandleMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) + { +#define CHECK_DISPOSED if (*flag.Obj()) return skip + auto flag = flagDisposed; + bool skip = false; + { + for (auto handler : messageHandlers) + { + handler->BeforeHandle(hwnd, uMsg, wParam, lParam, skip); + CHECK_DISPOSED; + } + if (skip) + { + return true; + } + } + skip = HandleMessageInternal(hwnd, uMsg, wParam, lParam, result); + CHECK_DISPOSED; + if (GetWindowsFormFromHandle(hwnd)) + { + for (auto handler : messageHandlers) + { + handler->AfterHandle(hwnd, uMsg, wParam, lParam, skip, result); + CHECK_DISPOSED; + } + } + return skip; +#undef CHECK_DISPOSED + } -#define IMPLEMENT_BRUSH_ELEMENT_RENDERER(TRENDERER)\ - void TRENDERER::InitializeInternal()\ - {\ - }\ - void TRENDERER::FinalizeInternal()\ - {\ - DestroyBrush(renderTarget);\ - }\ - void TRENDERER::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)\ - {\ - DestroyBrush(oldRenderTarget);\ - CreateBrush(newRenderTarget);\ - }\ - TRENDERER::TRENDERER()\ - {\ - }\ - void TRENDERER::Render(Rect bounds)\ + HWND GetWindowHandle()override + { + return handle; + } -#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(TRENDERER)\ - void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ - {\ - if(_renderTarget)\ - {\ - oldColor=element->GetColor();\ - brush=_renderTarget->CreateDirect2DBrush(oldColor);\ - }\ - }\ - void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ - {\ - if(_renderTarget && brush)\ - {\ - _renderTarget->DestroyDirect2DBrush(oldColor);\ - brush=0;\ - }\ - }\ - void TRENDERER::OnElementStateChanged()\ - {\ - if(renderTarget)\ - {\ - Color color=element->GetColor();\ - if(oldColor!=color)\ - {\ - DestroyBrush(renderTarget);\ - CreateBrush(renderTarget);\ - }\ - }\ - }\ + Interface* GetGraphicsHandler()override + { + return graphicsHandler; + } -#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(TRENDERER)\ - void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ - {\ - if(_renderTarget)\ - {\ - oldColor=Pair(element->GetColor1(), element->GetColor2());\ - brush=_renderTarget->CreateDirect2DLinearBrush(oldColor.key, oldColor.value);\ - }\ - }\ - void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ - {\ - if(_renderTarget && brush)\ - {\ - _renderTarget->DestroyDirect2DLinearBrush(oldColor.key, oldColor.value);\ - brush=0;\ - }\ - }\ - void TRENDERER::OnElementStateChanged()\ - {\ - if(renderTarget)\ - {\ - Pair color=Pair(element->GetColor1(), element->GetColor2());\ - if(oldColor!=color)\ - {\ - DestroyBrush(renderTarget);\ - CreateBrush(renderTarget);\ - }\ - }\ - }\ + void SetGraphicsHandler(Interface* handler)override + { + graphicsHandler=handler; + } -/*********************************************************************** -GuiSolidBorderElementRenderer -***********************************************************************/ + bool InstallMessageHandler(Ptr handler)override + { + if (messageHandlers.Contains(handler.Obj())) + { + return false; + } + messageHandlers.Add(handler); + return true; + } - void GuiFocusRectangleElementRenderer::InitializeInternal() - { - } + bool UninstallMessageHandler(Ptr handler)override + { + vint index = messageHandlers.IndexOf(handler.Obj()); + if (index == -1)return false; + messageHandlers.RemoveAt(handler); + return true; + } - void GuiFocusRectangleElementRenderer::FinalizeInternal() - { - focusRectangleEffect = nullptr; - } + bool IsActivelyRefreshing()override + { + return true; + } - void GuiFocusRectangleElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - focusRectangleEffect = nullptr; - if (newRenderTarget) + NativeSize GetRenderingOffset()override { - focusRectangleEffect = newRenderTarget->GetFocusRectangleEffect(); + return { 0,0 }; } - } - void GuiFocusRectangleElementRenderer::Render(Rect bounds) - { - if (focusRectangleEffect) + Point Convert(NativePoint value)override { - ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); - ID2D1DeviceContext* d2dDeviceContext = nullptr; + return Point((vint)value.x.value * 96 / dpiX, (vint)value.y.value * 96 / dpiY); + } - HRESULT hr = d2dRenderTarget->QueryInterface(&d2dDeviceContext); - if (SUCCEEDED(hr)) - { - FLOAT x = (FLOAT)bounds.Left(); - FLOAT y = (FLOAT)bounds.Top(); - FLOAT x2 = (FLOAT)bounds.Right() - 1; - FLOAT y2 = (FLOAT)bounds.Bottom() - 1; - FLOAT w = (FLOAT)bounds.Width(); - FLOAT h = (FLOAT)bounds.Height(); + NativePoint Convert(Point value)override + { + return NativePoint(value.x * dpiX / 96, value.y * dpiY / 96); + } - d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y), D2D1::RectF(0, 0, w, 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); - d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y2), D2D1::RectF(0, y2 - y, w, h), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); - d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y + 1), D2D1::RectF(0, 1, 1, h - 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); - d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x2, y + 1), D2D1::RectF(x2 - x, 1, w, h - 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); - } + Size Convert(NativeSize value)override + { + return Size((vint)value.x.value * 96 / dpiX, (vint)value.y.value * 96 / dpiY); + } - if (d2dDeviceContext) - { - d2dDeviceContext->Release(); - } + NativeSize Convert(Size value)override + { + return NativeSize(value.x * dpiX / 96, value.y * dpiY / 96); } - } - void GuiFocusRectangleElementRenderer::OnElementStateChanged() - { - } - -/*********************************************************************** -GuiSolidBorderElementRenderer -***********************************************************************/ + Margin Convert(NativeMargin value)override + { + return Margin( + (vint)value.left.value * 96 / dpiX, + (vint)value.top.value * 96 / dpiY, + (vint)value.right.value * 96 / dpiX, + (vint)value.bottom.value * 96 / dpiY + ); + } - IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBorderElementRenderer) - IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBorderElementRenderer) - { - ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); - auto shape = element->GetShape(); + NativeMargin Convert(Margin value)override + { + return NativeMargin( + (vint)value.left * dpiX / 96, + (vint)value.top * dpiY / 96, + (vint)value.right * dpiX / 96, + (vint)value.bottom * dpiY / 96 + ); + } - switch (shape.shapeType) + NativeRect GetBounds()override { - case ElementShapeType::Rectangle: - d2dRenderTarget->DrawRectangle( - D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), - brush - ); - break; - case ElementShapeType::Ellipse: - d2dRenderTarget->DrawEllipse( - D2D1::Ellipse(D2D1::Point2F((bounds.x1 + bounds.x2) / 2.0f, (bounds.y1 + bounds.y2) / 2.0f), bounds.Width() / 2.0f, bounds.Height() / 2.0f), - brush - ); - break; - case ElementShapeType::RoundRect: - d2dRenderTarget->DrawRoundedRectangle( - D2D1::RoundedRect( - D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), - (FLOAT)shape.radiusX, - (FLOAT)shape.radiusY - ), - brush - ); - break; + RECT rect; + GetWindowRect(handle, &rect); + return NativeRect(rect.left, rect.top, rect.right, rect.bottom); } - } -/*********************************************************************** -Gui3DBorderElementRenderer -***********************************************************************/ + void SetBounds(const NativeRect& bounds)override + { + NativeRect newBounds=bounds; + for(vint i=0;iMoving(newBounds, true, false); + } + MoveWindow(handle, (int)newBounds.Left().value, (int)newBounds.Top().value, (int)newBounds.Width().value, (int)newBounds.Height().value, FALSE); + } - void Gui3DBorderElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + NativeSize GetClientSize()override { - oldColor1=element->GetColor1(); - oldColor2=element->GetColor2(); - brush1=_renderTarget->CreateDirect2DBrush(oldColor1); - brush2=_renderTarget->CreateDirect2DBrush(oldColor2); + return GetClientBoundsInScreen().GetSize(); } - } - void Gui3DBorderElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + void SetClientSize(NativeSize size)override { - if(brush1) + if (customFrameMode) { - _renderTarget->DestroyDirect2DBrush(oldColor1); - brush1 = nullptr; + RECT bounds; + GetWindowRect(handle, &bounds); + SetBounds(NativeRect(NativePoint(bounds.left, bounds.top), size)); } - if(brush2) + else { - _renderTarget->DestroyDirect2DBrush(oldColor2); - brush2 = nullptr; + RECT required = { 0,0,(int)size.x.value,(int)size.y.value }; + RECT bounds; + GetWindowRect(handle, &bounds); + DpiAwared_AdjustWindowRect(&required, handle, (UINT)dpiX); + SetBounds(NativeRect(NativePoint(bounds.left, bounds.top), NativeSize(required.right - required.left, required.bottom - required.top))); } } - } - - void Gui3DBorderElementRenderer::InitializeInternal() - { - } - - void Gui3DBorderElementRenderer::FinalizeInternal() - { - DestroyBrush(renderTarget); - } - void Gui3DBorderElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - DestroyBrush(oldRenderTarget); - CreateBrush(newRenderTarget); - } + NativeRect GetClientBoundsInScreen()override + { + if(customFrameMode) + { + return GetBounds(); + } + else + { + RECT required={0,0,0,0}; + RECT bounds; + GetWindowRect(handle, &bounds); + DpiAwared_AdjustWindowRect(&required, handle, (UINT)dpiX); + return NativeRect( + NativePoint( + (bounds.left-required.left), + (bounds.top-required.top) + ), + NativeSize( + (bounds.right-bounds.left)-(required.right-required.left), + (bounds.bottom-bounds.top)-(required.bottom-required.top) + ) + ); + } + } - Gui3DBorderElementRenderer::Gui3DBorderElementRenderer() - { - } + WString GetTitle()override + { + return title; + } - void Gui3DBorderElementRenderer::Render(Rect bounds) - { - D2D1_RECT_F rect=D2D1::RectF((FLOAT)bounds.x1+0.5f, (FLOAT)bounds.y1+0.5f, (FLOAT)bounds.x2-0.5f, (FLOAT)bounds.y2-0.5f); - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + void SetTitle(const WString& _title)override + { + title=_title; + SetWindowText(handle, title.Buffer()); + } - d2dRenderTarget->DrawLine(D2D1::Point2F(rect.left, rect.top), D2D1::Point2F(rect.right, rect.top), brush1); - d2dRenderTarget->DrawLine(D2D1::Point2F(rect.left, rect.top), D2D1::Point2F(rect.left, rect.bottom), brush1); - d2dRenderTarget->DrawLine(D2D1::Point2F(rect.right, rect.bottom), D2D1::Point2F(rect.left, rect.bottom), brush2); - d2dRenderTarget->DrawLine(D2D1::Point2F(rect.right, rect.bottom), D2D1::Point2F(rect.right, rect.top), brush2); - } + INativeCursor* GetWindowCursor()override + { + return cursor; + } - void Gui3DBorderElementRenderer::OnElementStateChanged() - { - if(renderTarget) + void SetWindowCursor(INativeCursor* _cursor)override { - Color color1=element->GetColor1(); - Color color2=element->GetColor2(); - if(oldColor1!=color1 || oldColor2!=color2) + WindowsCursor* newCursor=dynamic_cast(_cursor); + if(newCursor && cursor!=newCursor) { - DestroyBrush(renderTarget); - CreateBrush(renderTarget); + cursor=newCursor; + if(mouseHoving && IsVisible()) + { + SetCursor(cursor->GetCursorHandle()); + } } } - } + + NativePoint GetCaretPoint()override + { + return caretPoint; + } -/*********************************************************************** -Gui3DSplitterElementRenderer -***********************************************************************/ + void SetCaretPoint(NativePoint point)override + { + caretPoint=point; + UpdateCompositionForContent(); + } - void Gui3DSplitterElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + INativeWindow* GetParent()override { - oldColor1=element->GetColor1(); - oldColor2=element->GetColor2(); - brush1=_renderTarget->CreateDirect2DBrush(oldColor1); - brush2=_renderTarget->CreateDirect2DBrush(oldColor2); + return parentWindow; } - } - void Gui3DSplitterElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + void SetParent(INativeWindow* parent)override { - if(brush1) + if (parentWindow) { - _renderTarget->DestroyDirect2DBrush(oldColor1); - brush1 = nullptr; + parentWindow->childWindows.Remove(this); } - if(brush2) + + if ((parentWindow = dynamic_cast(parent))) { - _renderTarget->DestroyDirect2DBrush(oldColor2); - brush2 = nullptr; + parentWindow->childWindows.Add(this); + // ::SetParent(handle, parentWindow->handle); + SetWindowLongPtr(handle, GWLP_HWNDPARENT, (LONG_PTR)parentWindow->handle); + } + else + { + // ::SetParent(handle, NULL); + SetWindowLongPtr(handle, GWLP_HWNDPARENT, NULL); } } - } - void Gui3DSplitterElementRenderer::InitializeInternal() - { - } + WindowMode GetWindowMode()override + { + return windowMode; + } - void Gui3DSplitterElementRenderer::FinalizeInternal() - { - DestroyBrush(renderTarget); - } + void EnableCustomFrameMode()override + { + customFrameMode=true; + } - void Gui3DSplitterElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - DestroyBrush(oldRenderTarget); - CreateBrush(newRenderTarget); - } + void DisableCustomFrameMode()override + { + customFrameMode=false; + } - Gui3DSplitterElementRenderer::Gui3DSplitterElementRenderer() - { - } + bool IsCustomFrameModeEnabled()override + { + return customFrameMode; + } - void Gui3DSplitterElementRenderer::Render(Rect bounds) - { - D2D1_POINT_2F p11, p12, p21, p22; - switch(element->GetDirection()) + NativeMargin GetCustomFramePadding()override { - case Gui3DSplitterElement::Horizontal: + if (GetSizeBox() || GetTitleBar()) { - vint y=bounds.y1+bounds.Height()/2-1; - p11=D2D1::Point2F((FLOAT)bounds.x1, (FLOAT)y+0.5f); - p12=D2D1::Point2F((FLOAT)bounds.x2, (FLOAT)y+0.5f); - p21=D2D1::Point2F((FLOAT)bounds.x1, (FLOAT)y+1.5f); - p22=D2D1::Point2F((FLOAT)bounds.x2, (FLOAT)y+1.5f); + return customFramePadding; } - break; - case Gui3DSplitterElement::Vertical: + else { - vint x=bounds.x1+bounds.Width()/2-1; - p11=D2D1::Point2F((FLOAT)x+0.5f, (FLOAT)bounds.y1-0.0f); - p12=D2D1::Point2F((FLOAT)x+0.5f, (FLOAT)bounds.y2+0.0f); - p21=D2D1::Point2F((FLOAT)x+1.5f, (FLOAT)bounds.y1-0.0f); - p22=D2D1::Point2F((FLOAT)x+1.5f, (FLOAT)bounds.y2+0.0f); + return NativeMargin(0, 0, 0, 0); } - break; } - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - - d2dRenderTarget->DrawLine(p11, p12, brush1); - d2dRenderTarget->DrawLine(p21, p22, brush2); - } - void Gui3DSplitterElementRenderer::OnElementStateChanged() - { - if(renderTarget) + Ptr GetIcon()override { - Color color1=element->GetColor1(); - Color color2=element->GetColor2(); - if(oldColor1!=color1 || oldColor2!=color2) + if (replacementIcon && replacementIcon->GetImage()) { - DestroyBrush(renderTarget); - CreateBrush(renderTarget); + return replacementIcon; + } + else + { + if (!defaultIcon) + { + auto icon = CreateWindowDefaultIcon(16); + if (icon == NULL) + { + icon = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 16, 16, LR_SHARED); + } + if (icon != NULL) + { + defaultIcon = Ptr(new GuiImageData(CreateImageFromHICON(icon), 0)); + } + } + return defaultIcon; } } - } - -/*********************************************************************** -GuiSolidBackgroundElementRenderer -***********************************************************************/ - - IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBackgroundElementRenderer) - IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBackgroundElementRenderer) - { - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - auto shape = element->GetShape(); - - switch(shape.shapeType) - { - case ElementShapeType::Rectangle: - d2dRenderTarget->FillRectangle( - D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2), - brush - ); - break; - case ElementShapeType::Ellipse: - d2dRenderTarget->FillEllipse( - D2D1::Ellipse(D2D1::Point2F((bounds.x1+bounds.x2)/2.0f, (bounds.y1+bounds.y2)/2.0f), bounds.Width()/2.0f, bounds.Height()/2.0f), - brush - ); - break; - case ElementShapeType::RoundRect: - d2dRenderTarget->FillRoundedRectangle( - D2D1::RoundedRect( - D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), - (FLOAT)shape.radiusX, - (FLOAT)shape.radiusY - ), - brush - ); - break; - } - } - -/*********************************************************************** -GuiGradientBackgroundElementRenderer -***********************************************************************/ - IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(GuiGradientBackgroundElementRenderer) - IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiGradientBackgroundElementRenderer) - { - D2D1_POINT_2F points[2]; - switch(element->GetDirection()) + static double GetSizeScore(vint size) { - case GuiGradientBackgroundElement::Horizontal: - { - points[0].x=(FLOAT)bounds.x1; - points[0].y=(FLOAT)bounds.y1; - points[1].x=(FLOAT)bounds.x2; - points[1].y=(FLOAT)bounds.y1; - } - break; - case GuiGradientBackgroundElement::Vertical: + if (size > 32) { - points[0].x=(FLOAT)bounds.x1; - points[0].y=(FLOAT)bounds.y1; - points[1].x=(FLOAT)bounds.x1; - points[1].y=(FLOAT)bounds.y2; + return 32.0 / size; } - break; - case GuiGradientBackgroundElement::Slash: + else if (size < 32) { - points[0].x=(FLOAT)bounds.x2; - points[0].y=(FLOAT)bounds.y1; - points[1].x=(FLOAT)bounds.x1; - points[1].y=(FLOAT)bounds.y2; + return size / 32.0 - 1; } - break; - case GuiGradientBackgroundElement::Backslash: + else { - points[0].x=(FLOAT)bounds.x1; - points[0].y=(FLOAT)bounds.y1; - points[1].x=(FLOAT)bounds.x2; - points[1].y=(FLOAT)bounds.y2; + return 1.0; } - break; } - brush->SetStartPoint(points[0]); - brush->SetEndPoint(points[1]); - - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - auto shape = element->GetShape(); - - switch(shape.shapeType) - { - case ElementShapeType::Rectangle: - d2dRenderTarget->FillRectangle( - D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2), - brush - ); - break; - case ElementShapeType::Ellipse: - d2dRenderTarget->FillEllipse( - D2D1::Ellipse(D2D1::Point2F((bounds.x1+bounds.x2)/2.0f, (bounds.y1+bounds.y2)/2.0f), bounds.Width()/2.0f, bounds.Height()/2.0f), - brush - ); - break; - case ElementShapeType::RoundRect: - d2dRenderTarget->FillRoundedRectangle( - D2D1::RoundedRect( - D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), - (FLOAT)shape.radiusX, - (FLOAT)shape.radiusY - ), - brush - ); - break; - } - } - -/*********************************************************************** -GuiInnerShadowElementRenderer -***********************************************************************/ - - void GuiInnerShadowElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if (_renderTarget) + static vint GetBppFromFormat(const WICPixelFormatGUID& format) { - oldColor = element->GetColor(); - transparentColor = Color(oldColor.r, oldColor.g, oldColor.b, 0); - linearBrush = _renderTarget->CreateDirect2DLinearBrush(transparentColor, oldColor); - radialBrush = _renderTarget->CreateDirect2DRadialBrush(transparentColor, oldColor); + if (format == GUID_WICPixelFormat1bppIndexed) return 1; + if (format == GUID_WICPixelFormat2bppIndexed) return 2; + if (format == GUID_WICPixelFormat4bppIndexed) return 4; + if (format == GUID_WICPixelFormat8bppIndexed) return 8; + if (format == GUID_WICPixelFormatBlackWhite) return 1; + if (format == GUID_WICPixelFormat2bppGray) return 2; + if (format == GUID_WICPixelFormat4bppGray) return 4; + if (format == GUID_WICPixelFormat8bppGray) return 8; + if (format == GUID_WICPixelFormat8bppAlpha) return 8; + if (format == GUID_WICPixelFormat16bppBGR555) return 16; + if (format == GUID_WICPixelFormat16bppBGR565) return 16; + if (format == GUID_WICPixelFormat16bppBGRA5551) return 16; + if (format == GUID_WICPixelFormat16bppGray) return 16; + if (format == GUID_WICPixelFormat24bppBGR) return 24; + if (format == GUID_WICPixelFormat24bppRGB) return 24; + if (format == GUID_WICPixelFormat32bppBGR) return 32; + if (format == GUID_WICPixelFormat32bppBGRA) return 32; + if (format == GUID_WICPixelFormat32bppPBGRA) return 32; + return -1; } - } - void GuiInnerShadowElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if (_renderTarget) + void SetIcon(Ptr icon)override { - _renderTarget->DestroyDirect2DLinearBrush(transparentColor, oldColor); - _renderTarget->DestroyDirect2DRadialBrush(transparentColor, oldColor); + replacementIcon = icon; + HICON newReplacementHIcon = NULL; + if (replacementIcon && replacementIcon->GetImage()) + { + stream::MemoryStream memoryStream; - linearBrush = nullptr; - radialBrush = nullptr; - } - } + replacementIcon->GetImage()->SaveToStream(memoryStream, INativeImage::Icon); + if (memoryStream.Size() > 0) + { + newReplacementHIcon = CreateIconFromResource((PBYTE)memoryStream.GetInternalBuffer(), (DWORD)memoryStream.Size(), TRUE, 0x00030000); + if (newReplacementHIcon != NULL) + { + goto SKIP; + } + } - void GuiInnerShadowElementRenderer::InitializeInternal() - { - } + INativeImageFrame* selectedFrame = nullptr; + for (vint i = 0; i < replacementIcon->GetImage()->GetFrameCount(); i++) + { + auto frame = replacementIcon->GetImage()->GetFrame(i); + auto size = frame->GetSize(); + if (size.x == size.y) + { + auto bitmap = GetWICBitmap(frame); + WICPixelFormatGUID format; + HRESULT hr = bitmap->GetPixelFormat(&format); + if (hr != S_OK) continue; - void GuiInnerShadowElementRenderer::FinalizeInternal() - { - DestroyBrush(renderTarget); - } + if (!selectedFrame) + { + selectedFrame = frame; + } + else + { + auto score = GetSizeScore(size.x); + auto scoreSelected = GetSizeScore(selectedFrame->GetSize().x); + if (score > scoreSelected) + { + selectedFrame = frame; + } + else if (score == scoreSelected) + { + WICPixelFormatGUID selectedFormat; + auto selectedBitmap = GetWICBitmap(selectedFrame); + hr = selectedBitmap->GetPixelFormat(&selectedFormat); - void GuiInnerShadowElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - DestroyBrush(oldRenderTarget); - CreateBrush(newRenderTarget); - } - - GuiInnerShadowElementRenderer::GuiInnerShadowElementRenderer() - { - } - - void GuiInnerShadowElementRenderer::Render(Rect bounds) - { - vint w = bounds.Width(); - vint h = bounds.Height(); - vint t = element->GetThickness(); - vint bW = w - 2 * t; - vint bH = h - 2 * t; - if (bW > 0 && bH > 0) - { - vint x1 = bounds.Left(); - vint x4 = bounds.Right(); - vint x2 = x1 + t; - vint x3 = x4 - t; + auto bpp = GetBppFromFormat(format); + auto bppSelected = GetBppFromFormat(selectedFormat); + if (bpp > bppSelected) + { + selectedFrame = frame; + } + } + } + } + } - vint y1 = bounds.Top(); - vint y4 = bounds.Bottom(); - vint y2 = y1 + t; - vint y3 = y4 - t; + if (selectedFrame) + { + bool succeeded = false; + WindowsBitmapImage newBitmap(replacementIcon->GetImage()->GetImageService(), GetWICBitmap(selectedFrame), replacementIcon->GetImage()->GetFormat()); + newBitmap.SaveToStream(memoryStream, INativeImage::Bmp); + if (memoryStream.Size() > 0) + { + auto pBuffer = (char*)memoryStream.GetInternalBuffer(); + tagBITMAPFILEHEADER bfh = *(tagBITMAPFILEHEADER*)pBuffer; + tagBITMAPINFOHEADER bih = *(tagBITMAPINFOHEADER*)(pBuffer + sizeof(tagBITMAPFILEHEADER)); + RGBQUAD rgb = *(RGBQUAD*)(pBuffer + sizeof(tagBITMAPFILEHEADER) + sizeof(tagBITMAPINFOHEADER)); - auto d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); - { - // top - linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); - linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y1)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x2, (FLOAT)y1, (FLOAT)x3, (FLOAT)y2), linearBrush); - } - { - // bottom - linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y3)); - linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y4)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x2, (FLOAT)y3, (FLOAT)x3, (FLOAT)y4), linearBrush); - } - { - // left - linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); - linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x1, (FLOAT)y2)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y2, (FLOAT)x2, (FLOAT)y3), linearBrush); + BITMAPINFO bi; + bi.bmiColors[0] = rgb; + bi.bmiHeader = bih; + + char* pPixels = (pBuffer + bfh.bfOffBits); + char* ppvBits; + auto hBitmap = CreateDIBSection(NULL, &bi, DIB_RGB_COLORS, (void**)&ppvBits, NULL, 0); + if (hBitmap != NULL) + { + SetDIBits(NULL, hBitmap, 0, bih.biHeight, pPixels, &bi, DIB_RGB_COLORS); + auto himl = ImageList_Create(32, 32, ILC_COLOR32, 1, 1); + if (himl != NULL) + { + int addResult = ImageList_Add(himl, hBitmap, NULL); + newReplacementHIcon = ImageList_GetIcon(himl, 0, ILD_NORMAL); + ImageList_Destroy(himl); + } + DeleteObject(hBitmap); + } + } + } } + + SKIP: { - // right - linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x3, (FLOAT)y2)); - linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x4, (FLOAT)y2)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y2, (FLOAT)x4, (FLOAT)y3), linearBrush); + HICON hAppIcon = newReplacementHIcon; + if (hAppIcon == NULL) hAppIcon = CreateWindowDefaultIcon(); + if (hAppIcon == NULL) hAppIcon = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_SHARED); + bool isVisible = IsVisible(); + if (isVisible) SendMessage(handle, WM_SETREDRAW, (WPARAM)FALSE, NULL); + SendMessage(handle, WM_SETICON, ICON_BIG, (LPARAM)hAppIcon); + SendMessage(handle, WM_SETICON, ICON_SMALL, (LPARAM)hAppIcon); + if (isVisible) SendMessage(handle, WM_SETREDRAW, (WPARAM)TRUE, NULL); + + if (isMainWindow) + { + SendMessage(GetWindow(handle, GW_OWNER), WM_SETICON, ICON_BIG, (LPARAM)hAppIcon); + SendMessage(GetWindow(handle, GW_OWNER), WM_SETICON, ICON_SMALL, (LPARAM)hAppIcon); + } } - radialBrush->SetRadiusX((FLOAT)t); - radialBrush->SetRadiusY((FLOAT)t); + if (replacementHIcon != NULL) { - // left-top - radialBrush->SetCenter(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y1, (FLOAT)x2, (FLOAT)y2), radialBrush); + DestroyIcon(replacementHIcon); } + replacementHIcon = newReplacementHIcon; + } + + WindowSizeState GetSizeState()override + { + if(IsIconic(handle)) { - // left-bottom - radialBrush->SetCenter(D2D1::Point2F((FLOAT)x3, (FLOAT)y2)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y1, (FLOAT)x4, (FLOAT)y2), radialBrush); + return INativeWindow::Minimized; } + else if(IsZoomed(handle)) { - // right-top - radialBrush->SetCenter(D2D1::Point2F((FLOAT)x2, (FLOAT)y3)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y3, (FLOAT)x2, (FLOAT)y4), radialBrush); + return INativeWindow::Maximized; } + else { - // right-bottom - radialBrush->SetCenter(D2D1::Point2F((FLOAT)x3, (FLOAT)y3)); - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y3, (FLOAT)x4, (FLOAT)y4), radialBrush); + return INativeWindow::Restored; } } - } - void GuiInnerShadowElementRenderer::OnElementStateChanged() - { - if (renderTarget) + void Show()override { - if (oldColor != element->GetColor()) - { - DestroyBrush(renderTarget); - CreateBrush(renderTarget); - } + SetForegroundWindow(handle); + ShowWindow(handle, SW_SHOWNORMAL); } - } - -/*********************************************************************** -GuiSolidLabelElementRenderer -***********************************************************************/ - void GuiSolidLabelElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + void ShowDeactivated()override { - oldColor=element->GetColor(); - brush=_renderTarget->CreateDirect2DBrush(oldColor); + ShowWindow(handle, SW_SHOWNOACTIVATE); + SetWindowPos(handle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE); } - } - void GuiSolidLabelElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget && brush) + void ShowRestored()override { - _renderTarget->DestroyDirect2DBrush(oldColor); - brush = nullptr; + ShowWindow(handle, SW_RESTORE); } - } - void GuiSolidLabelElementRenderer::CreateTextFormat(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + void ShowMaximized()override { - IWindowsDirect2DResourceManager* resourceManager=GetWindowsDirect2DResourceManager(); - oldFont=element->GetFont(); - if (oldFont.fontFamily == L"") oldFont.fontFamily = GetCurrentController()->ResourceService()->GetDefaultFont().fontFamily; - if (oldFont.size == 0) oldFont.size = 12; - textFormat=resourceManager->CreateDirect2DTextFormat(oldFont); + ShowWindow(handle, SW_SHOWMAXIMIZED); } - } - void GuiSolidLabelElementRenderer::DestroyTextFormat(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget && textFormat) + void ShowMinimized()override { - IWindowsDirect2DResourceManager* resourceManager=GetWindowsDirect2DResourceManager(); - resourceManager->DestroyDirect2DTextFormat(oldFont); - textFormat = nullptr; + ShowWindow(handle, SW_SHOWMINIMIZED); } - } - void GuiSolidLabelElementRenderer::CreateTextLayout() - { - if (textFormat) + void Hide(bool closeWindow)override { - HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateTextLayout( - oldText.Buffer(), - (int)oldText.Length(), - textFormat->textFormat.Obj(), - 0, - 0, - &textLayout); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + PostMessage(handle, WM_CLOSE, NULL, NULL); + } - if (oldFont.underline) - { - DWRITE_TEXT_RANGE textRange; - textRange.startPosition = 0; - textRange.length = (int)oldText.Length(); - textLayout->SetUnderline(TRUE, textRange); - } - if (oldFont.strikeline) - { - DWRITE_TEXT_RANGE textRange; - textRange.startPosition = 0; - textRange.length = (int)oldText.Length(); - textLayout->SetStrikethrough(TRUE, textRange); - } + bool IsVisible()override + { + return IsWindowVisible(handle)!=0; } - } - void GuiSolidLabelElementRenderer::DestroyTextLayout() - { - if(textLayout) + void Enable()override { - textLayout->Release(); - textLayout = nullptr; + EnableWindow(handle, TRUE); } - } - void GuiSolidLabelElementRenderer::UpdateMinSize() - { - float maxWidth=0; - DestroyTextLayout(); - bool calculateSizeFromTextLayout=false; - if(renderTarget) + void Disable()override { - if(element->GetWrapLine()) - { - if(element->GetWrapLineHeightCalculation()) - { - CreateTextLayout(); - if(textLayout) - { - maxWidth=textLayout->GetMaxWidth(); - if(oldMaxWidth!=-1) - { - textLayout->SetWordWrapping(DWRITE_WORD_WRAPPING_WRAP); - textLayout->SetMaxWidth((float)oldMaxWidth); - } - calculateSizeFromTextLayout=true; - } - } - } - else - { - CreateTextLayout(); - if(textLayout) - { - maxWidth=textLayout->GetMaxWidth(); - calculateSizeFromTextLayout=true; - } - } + EnableWindow(handle, FALSE); } - if(calculateSizeFromTextLayout) + + bool IsEnabled()override { - DWRITE_TEXT_METRICS metrics; - HRESULT hr=textLayout->GetMetrics(&metrics); - if(!FAILED(hr)) - { - vint width=0; - if(!element->GetEllipse() && !element->GetWrapLine() && !element->GetMultiline()) - { - width=(vint)ceil(metrics.widthIncludingTrailingWhitespace); - } - minSize=Size(width, (vint)ceil(metrics.height)); - } - textLayout->SetMaxWidth(maxWidth); + return IsWindowEnabled(handle)!=0; } - else + + void SetActivate()override { - minSize=Size(); + SetActiveWindow(handle); } - } - void GuiSolidLabelElementRenderer::InitializeInternal() - { - } + bool IsActivated()override + { + return GetActiveWindow()==handle; + } - void GuiSolidLabelElementRenderer::FinalizeInternal() - { - DestroyTextLayout(); - DestroyBrush(renderTarget); - DestroyTextFormat(renderTarget); - } + bool IsRenderingAsActivated()override + { + // TODO: should render as activated when + // is activated + // is a parent window of one that rendering as activated + return IsActivated(); + } - void GuiSolidLabelElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - DestroyBrush(oldRenderTarget); - DestroyTextFormat(oldRenderTarget); - CreateBrush(newRenderTarget); - CreateTextFormat(newRenderTarget); - UpdateMinSize(); - } + void ShowInTaskBar()override + { + SetExStyle(WS_EX_APPWINDOW, true); + } - GuiSolidLabelElementRenderer::GuiSolidLabelElementRenderer() - { - } + void HideInTaskBar()override + { + SetExStyle(WS_EX_APPWINDOW, false); + } - void GuiSolidLabelElementRenderer::Render(Rect bounds) - { - if(!textLayout) + bool IsAppearedInTaskBar()override { - CreateTextLayout(); + return GetExStyle(WS_EX_APPWINDOW); } - vint x=0; - vint y=0; - switch(element->GetHorizontalAlignment()) + void EnableActivate()override { - case Alignment::Left: - x=bounds.Left(); - break; - case Alignment::Center: - x=bounds.Left()+(bounds.Width()-minSize.x)/2; - break; - case Alignment::Right: - x=bounds.Right()-minSize.x; - break; + enabledActivate = true; + SetExStyle(WS_EX_NOACTIVATE, false); } - switch(element->GetVerticalAlignment()) + + void DisableActivate()override { - case Alignment::Top: - y=bounds.Top(); - break; - case Alignment::Center: - y=bounds.Top()+(bounds.Height()-minSize.y)/2; - break; - case Alignment::Bottom: - y=bounds.Bottom()-minSize.y; - break; + enabledActivate = false; + SetExStyle(WS_EX_NOACTIVATE, true); } - renderTarget->SetTextAntialias(oldFont.antialias, oldFont.verticalAntialias); + bool IsEnabledActivate()override + { + return enabledActivate; + } - if(!element->GetEllipse() && !element->GetMultiline() && !element->GetWrapLine()) + bool RequireCapture()override { - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - d2dRenderTarget->DrawTextLayout( - D2D1::Point2F((FLOAT)x, (FLOAT)y), - textLayout, - brush, - D2D1_DRAW_TEXT_OPTIONS_NO_SNAP - ); + SetCapture(handle); + return true; } - else + + bool ReleaseCapture()override { - IDWriteFactory* dwriteFactory=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); - DWRITE_TRIMMING trimming; - IDWriteInlineObject* inlineObject; - { - HRESULT hr = textLayout->GetTrimming(&trimming, &inlineObject); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - } + ::ReleaseCapture(); + return true; + } - textLayout->SetWordWrapping(element->GetWrapLine()?DWRITE_WORD_WRAPPING_WRAP:DWRITE_WORD_WRAPPING_NO_WRAP); - if(element->GetEllipse()) - { - textLayout->SetTrimming(&textFormat->trimming, textFormat->ellipseInlineObject.Obj()); - } - switch(element->GetHorizontalAlignment()) - { - case Alignment::Left: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING); - break; - case Alignment::Center: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER); - break; - case Alignment::Right: - textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING); - break; - } - if(!element->GetMultiline() && !element->GetWrapLine()) - { - switch(element->GetVerticalAlignment()) - { - case Alignment::Top: - textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_NEAR); - break; - case Alignment::Center: - textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER); - break; - case Alignment::Bottom: - textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_FAR); - break; - } - } + bool IsCapturing()override + { + return GetCapture()==handle; + } - Rect textBounds=bounds; - if(element->GetEllipse() && !element->GetMultiline() && !element->GetWrapLine()) - { - textBounds=Rect(Point(textBounds.x1, y), Size(bounds.Width(), minSize.y)); - } + bool GetMaximizedBox()override + { + return GetStyle(WS_MAXIMIZEBOX); + } - textLayout->SetMaxWidth((FLOAT)textBounds.Width()); - textLayout->SetMaxHeight((FLOAT)textBounds.Height()); + void SetMaximizedBox(bool visible)override + { + SetStyle(WS_MAXIMIZEBOX, visible); + } - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - d2dRenderTarget->DrawTextLayout( - D2D1::Point2F((FLOAT)textBounds.Left(), (FLOAT)textBounds.Top()), - textLayout, - brush, - D2D1_DRAW_TEXT_OPTIONS_NO_SNAP - ); + bool GetMinimizedBox()override + { + return GetStyle(WS_MINIMIZEBOX); + } - textLayout->SetTrimming(&trimming, inlineObject); - if(oldMaxWidth!=textBounds.Width()) - { - oldMaxWidth=textBounds.Width(); - UpdateMinSize(); - } + void SetMinimizedBox(bool visible)override + { + SetStyle(WS_MINIMIZEBOX, visible); } - } - void GuiSolidLabelElementRenderer::OnElementStateChanged() - { - if(renderTarget) + bool GetBorder()override { - Color color=element->GetColor(); - if(oldColor!=color) - { - DestroyBrush(renderTarget); - CreateBrush(renderTarget); - } + return GetStyle(WS_BORDER); + } - FontProperties font=element->GetFont(); - if(oldFont!=font) - { - DestroyTextFormat(renderTarget); - CreateTextFormat(renderTarget); - } + void SetBorder(bool visible)override + { + SetStyle(WS_BORDER, visible); } - oldText=element->GetText(); - UpdateMinSize(); - } -/*********************************************************************** -GuiImageFrameElementRenderer -***********************************************************************/ + bool GetSizeBox()override + { + return GetStyle(WS_SIZEBOX); + } - void GuiImageFrameElementRenderer::UpdateBitmap(IWindowsDirect2DRenderTarget* renderTarget) - { - if(renderTarget && element->GetImage()) + void SetSizeBox(bool visible)override { - INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); - bitmap=renderTarget->GetBitmap(frame, element->GetEnabled()); + SetStyle(WS_SIZEBOX, visible); + } - if (element->GetStretch()) - { - minSize=Size(0,0); - } - else - { - minSize=frame->GetSize(); - } + bool GetIconVisible()override + { + return GetStyle(WS_SYSMENU); } - else + + void SetIconVisible(bool visible)override { - bitmap=0; - minSize=Size(0, 0); + SetStyle(WS_SYSMENU, visible); } - } - void GuiImageFrameElementRenderer::InitializeInternal() - { - } + bool GetTitleBar()override + { + return GetStyle(WS_CAPTION); + } - void GuiImageFrameElementRenderer::FinalizeInternal() - { - } + void SetTitleBar(bool visible)override + { + SetStyle(WS_CAPTION, visible); + } - void GuiImageFrameElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - UpdateBitmap(newRenderTarget); - } + bool GetTopMost()override + { + return GetExStyle(WS_EX_TOPMOST); + } - GuiImageFrameElementRenderer::GuiImageFrameElementRenderer() - { - } + void SetTopMost(bool topmost)override + { + SetWindowPos(handle, (topmost ? HWND_TOPMOST : HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_FRAMECHANGED); + } - void GuiImageFrameElementRenderer::Render(Rect bounds) - { - if(bitmap) + void SupressAlt()override { - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - D2D1_RECT_F source=D2D1::RectF(0, 0, (FLOAT)minSize.x, (FLOAT)minSize.y); - D2D1_RECT_F destination; - if(element->GetStretch()) + if (!supressingAlt) { - INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); - auto size = frame->GetSize(); - source = D2D1::RectF(0, 0, (FLOAT)size.x, (FLOAT)size.y); - destination=D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2); + supressingAlt = true; + PostMessage(handle, WM_SYSKEYDOWN, VK_MENU, 0); + PostMessage(handle, WM_SYSKEYUP, VK_MENU, 0); } - else + } + + bool InstallListener(INativeWindowListener* listener)override + { + if(listeners.Contains(listener)) { - vint x=0; - vint y=0; - switch(element->GetHorizontalAlignment()) - { - case Alignment::Left: - x=bounds.Left(); - break; - case Alignment::Center: - x=bounds.Left()+(bounds.Width()-minSize.x)/2; - break; - case Alignment::Right: - x=bounds.Right()-minSize.x; - break; - } - switch(element->GetVerticalAlignment()) - { - case Alignment::Top: - y=bounds.Top(); - break; - case Alignment::Center: - y=bounds.Top()+(bounds.Height()-minSize.y)/2; - break; - case Alignment::Bottom: - y=bounds.Bottom()-minSize.y; - break; - } - destination=D2D1::RectF((FLOAT)x, (FLOAT)y, (FLOAT)(x+minSize.x), (FLOAT)(y+minSize.y)); + return false; } - - ID2D1DeviceContext* d2dDeviceContext = nullptr; + else { - HRESULT hr = d2dRenderTarget->QueryInterface(&d2dDeviceContext); - if (!SUCCEEDED(hr)) - { - if (d2dDeviceContext) - { - d2dDeviceContext->Release(); - } - d2dDeviceContext = nullptr; - } + listeners.Add(listener); + return true; } + } - if(element->GetImage()->GetFormat()==INativeImage::Gif && element->GetFrameIndex()>0) + bool UninstallListener(INativeWindowListener* listener)override + { + if(listeners.Contains(listener)) { - vint max = element->GetFrameIndex(); - for (vint i = 0; i <= max; i++) - { - ComPtr frameBitmap=renderTarget->GetBitmap(element->GetImage()->GetFrame(i), element->GetEnabled()); - if (d2dDeviceContext) - { - d2dDeviceContext->DrawBitmap(frameBitmap.Obj(), destination, 1.0f, D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC, source); - } - else - { - d2dRenderTarget->DrawBitmap(frameBitmap.Obj(), destination, 1.0f, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, source); - } - } + listeners.Remove(listener); + return true; } else { - if (d2dDeviceContext) - { - d2dDeviceContext->DrawBitmap(bitmap.Obj(), destination, 1.0f, D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC, source); - } - else - { - d2dRenderTarget->DrawBitmap(bitmap.Obj(), destination, 1.0f, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, source); - } + return false; } + } - if (d2dDeviceContext) + void RedrawContent()override + { + if(graphicsHandler) { - d2dDeviceContext->Release(); + SendMessage(this->handle, WM_PAINT, NULL, NULL); } } - } - - void GuiImageFrameElementRenderer::OnElementStateChanged() - { - UpdateBitmap(renderTarget); - } + }; /*********************************************************************** -GuiPolygonElementRenderer +WindowsController ***********************************************************************/ - void GuiPolygonElementRenderer::CreateGeometry() + LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + LRESULT CALLBACK GodProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + + class WindowsController : public Object, public virtual INativeController, public virtual INativeWindowService { - oldPoints.Resize(element->GetPointCount()); - if (oldPoints.Count() > 0) + protected: + WinClass windowClass; + WinClass godClass; + HINSTANCE hInstance; + HWND godWindow; + Dictionary windows; + WindowsForm* mainWindow = nullptr; + HWND mainWindowHandle = 0; + + SharedCallbackService callbackService; + SharedAsyncService asyncService; + WindowsResourceService resourceService; + WindowsClipboardService clipboardService; + WindowsImageService imageService; + WindowsScreenService screenService; + WindowsInputService inputService; + WindowsDialogService dialogService; + + public: + WindowsController(HINSTANCE _hInstance) + :hInstance(_hInstance) + ,windowClass(L"VczhWindow", false, false, WndProc, _hInstance) + ,godClass(L"GodWindow", false, false, GodProc, _hInstance) + ,screenService(&GetHWNDFromNativeWindowHandle) + ,dialogService(&GetHWNDFromNativeWindowHandle) { - memcpy(&oldPoints[0], &element->GetPoint(0), sizeof(Point)*element->GetPointCount()); + godWindow=CreateWindowEx(WS_EX_CONTROLPARENT, godClass.GetName().Buffer(), L"GodWindow", WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, hInstance, NULL); + clipboardService.SetOwnerHandle(godWindow); + inputService.SetOwnerHandle(godWindow); } - if (oldPoints.Count() >= 3) - { - ID2D1PathGeometry* pg = 0; - HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirect2DFactory()->CreatePathGeometry(&pg); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - geometry = pg; - FillGeometry(Point(0, 0)); + ~WindowsController() + { + inputService.StopTimer(); + clipboardService.SetOwnerHandle(NULL); + DestroyWindow(godWindow); } - } - void GuiPolygonElementRenderer::DestroyGeometry() - { - if(geometry) + WindowsForm* GetWindowsFormFromHandle(HWND hwnd) { - geometry = nullptr; + vint index = windows.Keys().IndexOf(hwnd); + if (index == -1)return 0; + return windows.Values()[index]; } - } - void GuiPolygonElementRenderer::FillGeometry(Point offset) - { - if (geometry) + void GetAllCreatedWindows(collections::List& createdWindows, bool rootWindowOnly) { - ID2D1GeometrySink* pgs = 0; - HRESULT hr = geometry->Open(&pgs); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - - D2D1_POINT_2F p; - p.x = (FLOAT)(oldPoints[0].x + offset.x) + 0.5f; - p.y = (FLOAT)(oldPoints[0].y + offset.y) + 0.5f; - pgs->BeginFigure(p, D2D1_FIGURE_BEGIN_FILLED); - for (vint i = 1; i < oldPoints.Count(); i++) + if (rootWindowOnly) { - p.x = (FLOAT)(oldPoints[i].x + offset.x) + 0.5f; - p.y = (FLOAT)(oldPoints[i].y + offset.y) + 0.5f; - pgs->AddLine(p); + for (auto window : windows.Values()) + { + if (window->GetWindowMode() == INativeWindow::Normal) + { + createdWindows.Add(window); + } + } + } + else + { + CopyFrom(createdWindows, windows.Values()); } - pgs->EndFigure(D2D1_FIGURE_END_CLOSED); - pgs->Close(); - pgs->Release(); } - } - void GuiPolygonElementRenderer::RecreateResource(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - if(oldRenderTarget==newRenderTarget) + bool HandleMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) { - if(oldRenderTarget) + bool skipDefaultProcedure=false; { - if(oldBorderColor!=element->GetBorderColor()) - { - oldRenderTarget->DestroyDirect2DBrush(oldBorderColor); - oldBorderColor=element->GetBorderColor(); - borderBrush=newRenderTarget->CreateDirect2DBrush(oldBorderColor); - } - if(oldBackgroundColor!=element->GetBackgroundColor()) + vint index = windows.Keys().IndexOf(hwnd); + if (index != -1) { - oldRenderTarget->DestroyDirect2DBrush(oldBackgroundColor); - oldBackgroundColor=element->GetBackgroundColor(); - backgroundBrush=newRenderTarget->CreateDirect2DBrush(oldBackgroundColor); + WindowsForm* window = windows.Values().Get(index); + skipDefaultProcedure = window->HandleMessage(hwnd, uMsg, wParam, lParam, result); + switch (uMsg) + { + case WM_CLOSE: + if (!skipDefaultProcedure) + { + ShowWindow(window->GetWindowHandle(), SW_HIDE); + if (window != mainWindow) + { + skipDefaultProcedure = true; + } + } + break; + case WM_DESTROY: + DestroyNativeWindow(window); + break; + } } } - } - else - { - if(oldRenderTarget) { - oldRenderTarget->DestroyDirect2DBrush(oldBorderColor); - oldRenderTarget->DestroyDirect2DBrush(oldBackgroundColor); - } - if(newRenderTarget) - { - oldBorderColor=element->GetBorderColor(); - oldBackgroundColor=element->GetBackgroundColor(); - borderBrush=newRenderTarget->CreateDirect2DBrush(oldBorderColor); - backgroundBrush=newRenderTarget->CreateDirect2DBrush(oldBackgroundColor); + if (hwnd == mainWindowHandle && uMsg == WM_DESTROY) + { + for (auto window : windows.Values()) + { + if (window->IsVisible()) + { + window->Hide(true); + } + } + List normalWindows; + CopyFrom( + normalWindows, + From(windows.Values()) + .Where([](WindowsForm* window) + { + return window->GetWindowMode() == INativeWindow::Normal; + }) + ); + for (auto window : normalWindows) + { + DestroyNativeWindow(window); + } + for (vint i = windows.Count() - 1; i >= 0; i--) + { + auto window = windows.Values()[i]; + DestroyNativeWindow(window); + } + + PostQuitMessage(0); + } } + return skipDefaultProcedure; } - } - - void GuiPolygonElementRenderer::InitializeInternal() - { - oldBorderColor=element->GetBorderColor(); - oldBackgroundColor=element->GetBackgroundColor(); - RecreateResource(0, renderTarget); - CreateGeometry(); - } - - void GuiPolygonElementRenderer::FinalizeInternal() - { - DestroyGeometry(); - RecreateResource(renderTarget, 0); - } - - void GuiPolygonElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - RecreateResource(oldRenderTarget, newRenderTarget); - } - GuiPolygonElementRenderer::GuiPolygonElementRenderer() - { - } + //======================================================================= - void GuiPolygonElementRenderer::Render(Rect bounds) - { - if(renderTarget && geometry) + const NativeWindowFrameConfig& GetMainWindowFrameConfig() { - ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - vint offsetX=(bounds.Width()-minSize.x)/2+bounds.x1; - vint offsetY=(bounds.Height()-minSize.y)/2+bounds.y1; - - D2D1_MATRIX_3X2_F oldT, newT; - d2dRenderTarget->GetTransform(&oldT); - newT=D2D1::Matrix3x2F::Translation((FLOAT)offsetX, (FLOAT)offsetY); - d2dRenderTarget->SetTransform(&newT); - - d2dRenderTarget->FillGeometry(geometry.Obj(), backgroundBrush); - d2dRenderTarget->DrawGeometry(geometry.Obj(), borderBrush); - d2dRenderTarget->SetTransform(&oldT); + return NativeWindowFrameConfig::Default; } - } - void GuiPolygonElementRenderer::OnElementStateChanged() - { - minSize=element->GetSize(); - RecreateResource(renderTarget, renderTarget); + const NativeWindowFrameConfig& GetNonMainWindowFrameConfig() + { + return NativeWindowFrameConfig::Default; + } - bool polygonModified=false; - if(oldPoints.Count()!=element->GetPointCount()) + INativeWindow* CreateNativeWindow(INativeWindow::WindowMode windowMode)override { - polygonModified=true; + WindowsForm* window = new WindowsForm(godWindow, windowClass.GetName(), hInstance, windowMode); + windows.Add(window->GetWindowHandle(), window); + callbackService.InvokeNativeWindowCreated(window); + window->SetWindowCursor(resourceService.GetDefaultSystemCursor()); + return window; } - else + + void DestroyNativeWindow(INativeWindow* window)override { - for(vint i=0;i(window); + windowsForm->InvokeDestroying(); + if (windowsForm != 0 && windows.Keys().Contains(windowsForm->GetWindowHandle())) { - if(oldPoints[i]!=element->GetPoint(i)) + callbackService.InvokeNativeWindowDestroying(window); + windows.Remove(windowsForm->GetWindowHandle()); + if (mainWindow == windowsForm) { - polygonModified=true; - break; + mainWindow = nullptr; } + delete windowsForm; } } - if(polygonModified) + + INativeWindow* GetMainWindow()override { - DestroyGeometry(); - CreateGeometry(); + return mainWindow; } - } -/*********************************************************************** -GuiColorizedTextElementRenderer -***********************************************************************/ + inline bool RunOneCycleInternal() + { + MSG message; + if (!GetMessage(&message, NULL, 0, 0)) return false; + TranslateMessage(&message); + DispatchMessage(&message); + asyncService.ExecuteAsyncTasks(); + return true; + } - void GuiColorizedTextElementRenderer::CreateTextBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + void Run(INativeWindow* window)override { - colors.Resize(element->GetColors().Count()); - for(vint i=0;iGetColors().Get(i); - ColorEntryResource newEntry; + mainWindow = dynamic_cast(GetWindowsForm(window)); + mainWindowHandle = mainWindow->GetWindowHandle(); + mainWindow->SetIsMainWindow(); + mainWindow->Show(); + while (RunOneCycleInternal()); + } - newEntry.normal.text=entry.normal.text; - newEntry.normal.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.normal.text); - newEntry.normal.background=entry.normal.background; - newEntry.normal.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.normal.background); - newEntry.selectedFocused.text=entry.selectedFocused.text; - newEntry.selectedFocused.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedFocused.text); - newEntry.selectedFocused.background=entry.selectedFocused.background; - newEntry.selectedFocused.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedFocused.background); - newEntry.selectedUnfocused.text=entry.selectedUnfocused.text; - newEntry.selectedUnfocused.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedUnfocused.text); - newEntry.selectedUnfocused.background=entry.selectedUnfocused.background; - newEntry.selectedUnfocused.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedUnfocused.background); - colors[i]=newEntry; - } + bool RunOneCycle()override + { + return RunOneCycleInternal(); } - } - void GuiColorizedTextElementRenderer::DestroyTextBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + INativeWindow* GetWindow(NativePoint location)override { - for(vint i=0;iDestroyDirect2DBrush(colors[i].normal.text); - _renderTarget->DestroyDirect2DBrush(colors[i].normal.background); - _renderTarget->DestroyDirect2DBrush(colors[i].selectedFocused.text); - _renderTarget->DestroyDirect2DBrush(colors[i].selectedFocused.background); - _renderTarget->DestroyDirect2DBrush(colors[i].selectedUnfocused.text); - _renderTarget->DestroyDirect2DBrush(colors[i].selectedUnfocused.background); + return 0; + } + else + { + return windows.Values().Get(index); } - colors.Resize(0); } - } - void GuiColorizedTextElementRenderer::CreateCaretBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + //======================================================================= + + INativeCallbackService* CallbackService() { - oldCaretColor=element->GetCaretColor(); - caretBrush=_renderTarget->CreateDirect2DBrush(oldCaretColor); + return &callbackService; } - } - void GuiColorizedTextElementRenderer::DestroyCaretBrush(IWindowsDirect2DRenderTarget* _renderTarget) - { - if(_renderTarget) + INativeResourceService* ResourceService() { - if(caretBrush) - { - _renderTarget->DestroyDirect2DBrush(oldCaretColor); - caretBrush=0; - } + return &resourceService; + } + + INativeAsyncService* AsyncService() + { + return &asyncService; } - } - void GuiColorizedTextElementRenderer::ColorChanged() - { - DestroyTextBrush(renderTarget); - CreateTextBrush(renderTarget); - } + INativeClipboardService* ClipboardService() + { + return &clipboardService; + } - void GuiColorizedTextElementRenderer::FontChanged() - { - IWindowsDirect2DResourceManager* resourceManager = GetWindowsDirect2DResourceManager(); - if (textFormat) + INativeImageService* ImageService() { - element->GetLines().SetCharMeasurer(nullptr); - resourceManager->DestroyDirect2DTextFormat(oldFont); - resourceManager->DestroyDirect2DCharMeasurer(oldFont); + return &imageService; } - oldFont = element->GetFont(); - if (oldFont.fontFamily == L"") oldFont.fontFamily = GetCurrentController()->ResourceService()->GetDefaultFont().fontFamily; - if (oldFont.size == 0) oldFont.size = 12; - textFormat = resourceManager->CreateDirect2DTextFormat(oldFont); - element->GetLines().SetCharMeasurer(resourceManager->CreateDirect2DCharMeasurer(oldFont).Obj()); - } + INativeScreenService* ScreenService() + { + return &screenService; + } - text::CharMeasurer* GuiColorizedTextElementRenderer::GetCharMeasurer() - { - return 0; - } + INativeWindowService* WindowService() + { + return this; + } - void GuiColorizedTextElementRenderer::InitializeInternal() - { - textFormat=0; - caretBrush=0; - element->SetCallback(this); - } + INativeInputService* InputService() + { + return &inputService; + } - void GuiColorizedTextElementRenderer::FinalizeInternal() - { - DestroyTextBrush(renderTarget); - DestroyCaretBrush(renderTarget); + INativeDialogService* DialogService() + { + return &dialogService; + } - IWindowsDirect2DResourceManager* resourceManager=GetWindowsDirect2DResourceManager(); - if(textFormat) + WString GetExecutablePath() { - resourceManager->DestroyDirect2DTextFormat(oldFont); - resourceManager->DestroyDirect2DCharMeasurer(oldFont); + Array buffer(65536); + GetModuleFileName(NULL, &buffer[0], (DWORD)buffer.Count()); + return &buffer[0]; } - } - void GuiColorizedTextElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) - { - DestroyTextBrush(oldRenderTarget); - DestroyCaretBrush(oldRenderTarget); - CreateTextBrush(newRenderTarget); - CreateCaretBrush(newRenderTarget); - element->GetLines().SetRenderTarget(newRenderTarget); - } + //======================================================================= - void GuiColorizedTextElementRenderer::Render(Rect bounds) - { - if (renderTarget) + void InvokeGlobalTimer() { - ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); - wchar_t passwordChar = element->GetPasswordChar(); - Point viewPosition = element->GetViewPosition(); - Rect viewBounds(viewPosition, bounds.GetSize()); - vint startRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, viewBounds.y1)).row; - vint endRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, viewBounds.y2)).row; - TextPos selectionBegin = element->GetCaretBegin() < element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); - TextPos selectionEnd = element->GetCaretBegin() > element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); - bool focused = element->GetFocused(); - - renderTarget->SetTextAntialias(oldFont.antialias, oldFont.verticalAntialias); - - for (vint row = startRow; row <= endRow; row++) - { - Rect startRect = element->GetLines().GetRectFromTextPos(TextPos(row, 0)); - Point startPoint = startRect.LeftTop(); - vint startColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, startPoint.y)).column; - vint endColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, startPoint.y)).column; + callbackService.InvokeGlobalTimer(); + } - text::TextLine& line = element->GetLines().GetLine(row); - if (endColumn + 1 < line.dataLength && text::UTF16SPFirst(line.text[endColumn]) && text::UTF16SPSecond(line.text[startColumn + 1])) - { - endColumn++; - } + void InvokeClipboardUpdated() + { + callbackService.InvokeClipboardUpdated(); + } - vint x = startColumn == 0 ? 0 : line.att[startColumn - 1].rightOffset; - for (vint column = startColumn; column <= endColumn; column++) - { - bool inSelection = false; - if (selectionBegin.row == selectionEnd.row) - { - inSelection = (row == selectionBegin.row && selectionBegin.column <= column && column < selectionEnd.column); - } - else if (row == selectionBegin.row) - { - inSelection = selectionBegin.column <= column; - } - else if (row == selectionEnd.row) - { - inSelection = column < selectionEnd.column; - } - else - { - inSelection = selectionBegin.row < row && row < selectionEnd.row; - } + void InvokeGlobalShortcutkeyActivated(vint id) + { + callbackService.InvokeGlobalShortcutKeyActivated(id); + } + }; - bool crlf = column == line.dataLength; - vint colorIndex = crlf ? 0 : line.att[column].colorIndex; - if (colorIndex >= colors.Count()) - { - colorIndex = 0; - } - ColorItemResource& color = - !inSelection ? colors[colorIndex].normal : - focused ? colors[colorIndex].selectedFocused : - colors[colorIndex].selectedUnfocused; - vint x2 = crlf ? x + startRect.Height() / 2 : line.att[column].rightOffset; - vint tx = x - viewPosition.x + bounds.x1; - vint ty = startPoint.y - viewPosition.y + bounds.y1; +/*********************************************************************** +Windows Procedure +***********************************************************************/ - if (color.background.a > 0) - { - d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)tx, (FLOAT)ty, (FLOAT)(tx + (x2 - x)), (FLOAT)(ty + startRect.Height())), color.backgroundBrush); - } - if (!crlf) - { - UINT32 count = text::UTF16SPFirst(line.text[column]) && column + 1 < line.dataLength && text::UTF16SPSecond(line.text[column + 1]) ? 2 : 1; - d2dRenderTarget->DrawText( - (passwordChar ? &passwordChar : &line.text[column]), - count, - textFormat->textFormat.Obj(), - D2D1::RectF((FLOAT)tx, (FLOAT)ty, (FLOAT)tx + 1, (FLOAT)ty + 1), - color.textBrush, - D2D1_DRAW_TEXT_OPTIONS_NO_SNAP, - DWRITE_MEASURING_MODE_GDI_NATURAL - ); - if (count == 2) column++; - } - x = x2; - } - } + WindowsController* windowsController = nullptr; - if (element->GetCaretVisible() && element->GetLines().IsAvailable(element->GetCaretEnd())) + LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) + { + if (windowsController) + { + LRESULT result = 0; + if (windowsController->HandleMessage(hwnd, uMsg, wParam, lParam, result)) { - Point caretPoint = element->GetLines().GetPointFromTextPos(element->GetCaretEnd()); - vint height = element->GetLines().GetRowHeight(); - Point p1(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); - Point p2(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); - d2dRenderTarget->DrawLine( - D2D1::Point2F((FLOAT)p1.x + 0.5f, (FLOAT)p1.y), - D2D1::Point2F((FLOAT)p2.x + 0.5f, (FLOAT)p2.y), - caretBrush - ); - d2dRenderTarget->DrawLine( - D2D1::Point2F((FLOAT)p1.x - 0.5f, (FLOAT)p1.y), - D2D1::Point2F((FLOAT)p2.x - 0.5f, (FLOAT)p2.y), - caretBrush - ); + return result; } } + return DefWindowProc(hwnd, uMsg, wParam, lParam); } - void GuiColorizedTextElementRenderer::OnElementStateChanged() + LRESULT CALLBACK GodProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - if(renderTarget) + if (windowsController) { - Color caretColor=element->GetCaretColor(); - if(oldCaretColor!=caretColor) + switch (uMsg) { - DestroyCaretBrush(renderTarget); - CreateCaretBrush(renderTarget); + case WM_TIMER: + windowsController->InvokeGlobalTimer(); + break; + case WM_CLIPBOARDUPDATE: + windowsController->InvokeClipboardUpdated(); + break; + case WM_HOTKEY: + if (wParam > 0) + { + windowsController->InvokeGlobalShortcutkeyActivated((vint)wParam); + } + break; } } + return DefWindowProc(hwnd, uMsg, wParam, lParam); } /*********************************************************************** -GuiDirect2DElementRenderer +Windows Platform Native Controller ***********************************************************************/ - void GuiDirect2DElementRenderer::InitializeInternal() + void StartWindowsNativeController(HINSTANCE hInstance) { + CHECK_ERROR(!windowsController, L"vl::presentation::windows::StartWindowsNativeController(HINSTANCE)#The Windows native controller has been started."); + windowsController = new WindowsController(hInstance); } - void GuiDirect2DElementRenderer::FinalizeInternal() + INativeController* GetWindowsNativeController() { + return windowsController; } - void GuiDirect2DElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + IWindowsForm* GetWindowsFormFromHandle(HWND hwnd) { - IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); - ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory(); - if(oldRenderTarget) - { - GuiDirect2DElementEventArgs arguments(element, oldRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect()); - element->BeforeRenderTargetChanged.Execute(arguments); - } - if(newRenderTarget) + if (windowsController) { - GuiDirect2DElementEventArgs arguments(element, newRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect()); - element->AfterRenderTargetChanged.Execute(arguments); + return windowsController->GetWindowsFormFromHandle(hwnd); } + return nullptr; } - GuiDirect2DElementRenderer::GuiDirect2DElementRenderer() + IWindowsForm* GetWindowsForm(INativeWindow* window) { + return dynamic_cast(window); } - GuiDirect2DElementRenderer::~GuiDirect2DElementRenderer() - { - } - - void GuiDirect2DElementRenderer::Render(Rect bounds) + void GetAllCreatedWindows(collections::List& windows, bool rootWindowOnly) { - if(renderTarget) + if (windowsController) { - IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); - ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory(); - renderTarget->PushClipper(bounds); - if(!renderTarget->IsClipperCoverWholeTarget()) - { - ID2D1RenderTarget* rt=renderTarget->GetDirect2DRenderTarget(); - GuiDirect2DElementEventArgs arguments(element, rt, fdw, fd2d, bounds); - element->Rendering.Execute(arguments); - } - renderTarget->PopClipper(); + windowsController->GetAllCreatedWindows(windows, rootWindowOnly); } } - void GuiDirect2DElementRenderer::OnElementStateChanged() + void StopWindowsNativeController() + { + CHECK_ERROR(windowsController, L"vl::presentation::windows::StopWindowsNativeController()#The Windows native controller has been stopped."); + delete windowsController; + windowsController = nullptr; + } + + void EnableCrossKernelCrashing() { + /* + "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" + DWORD DisableUserModeCallbackFilter = 1 + + "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\TestCppCodegen.exe" + DWORD DisableUserModeCallbackFilter = 1 + */ + typedef BOOL (WINAPI *tGetPolicy)(LPDWORD lpFlags); + typedef BOOL (WINAPI *tSetPolicy)(DWORD dwFlags); + const DWORD EXCEPTION_SWALLOWING = 0x1; + + HMODULE kernel32 = LoadLibrary(L"kernel32.dll"); + tGetPolicy pGetPolicy = (tGetPolicy)GetProcAddress(kernel32, "GetProcessUserModeExceptionPolicy"); + tSetPolicy pSetPolicy = (tSetPolicy)GetProcAddress(kernel32, "SetProcessUserModeExceptionPolicy"); + if (pGetPolicy && pSetPolicy) + { + DWORD dwFlags; + if (pGetPolicy(&dwFlags)) + { + // Turn off the filter + pSetPolicy(dwFlags & ~EXCEPTION_SWALLOWING); + } + } } } } } /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSWINDOWSDIRECT2D.CPP +.\DIRECT2D\WINDIRECT2DAPPLICATION.CPP ***********************************************************************/ +#pragma comment(lib, "d2d1.lib") +#pragma comment(lib, "dxguid.lib") +#pragma comment(lib, "dwrite.lib") +#pragma comment(lib, "d3d11.lib") + namespace vl { namespace presentation { - namespace elements - { - -/*********************************************************************** -GuiDirect2DElement -***********************************************************************/ - - GuiDirect2DElement::GuiDirect2DElement() - { - } - } + using namespace elements; - namespace elements_windows_d2d + namespace windows { - using namespace elements; - using namespace collections; - using namespace windows; - - D2D1::ColorF GetD2DColor(Color color) - { - return D2D1::ColorF(color.r/255.0f, color.g/255.0f, color.b/255.0f, color.a/255.0f); - } + using namespace vl::collections; /*********************************************************************** -CachedResourceAllocator +WindowListener ***********************************************************************/ - class CachedSolidBrushAllocator + class Direct2DWindowsNativeWindowListener : public Object, public INativeWindowListener { - DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, ComPtr) + protected: + ID2D1Factory* d2dFactory; + INativeWindow* window; + bool rendering = false; + bool movedWhileRendering = false; - IWindowsDirect2DRenderTarget* guiRenderTarget; + virtual void RebuildCanvas(NativeSize size) = 0; public: - CachedSolidBrushAllocator() - :guiRenderTarget(0) + Direct2DWindowsNativeWindowListener(INativeWindow* _window, ID2D1Factory* _d2dFactory) + :window(_window) + ,d2dFactory(_d2dFactory) { } - void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) + void Moved()override { - guiRenderTarget = _guiRenderTarget; + if (rendering) + { + movedWhileRendering = true; + } + else + { + ResizeRenderTarget(); + } } - ComPtr CreateInternal(Color color) + void ResizeRenderTarget() { - ID2D1SolidColorBrush* brush = 0; - auto renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); - HRESULT hr = renderTarget->CreateSolidColorBrush(GetD2DColor(color), &brush); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - return brush; + RebuildCanvas(window->GetClientSize()); } - }; - - class CachedLinearBrushAllocator - { - typedef Pair ColorPair; - DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr) - IWindowsDirect2DRenderTarget* guiRenderTarget; - public: - CachedLinearBrushAllocator() - :guiRenderTarget(0) + void StartRendering() { + rendering = true; } - void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) + void StopRendering() { - guiRenderTarget = _guiRenderTarget; + rendering = false; } - ComPtr CreateInternal(ColorPair colors) + bool RetrieveAndResetMovedWhileRendering() { - ID2D1RenderTarget* renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); - ID2D1GradientStopCollection* stopCollection = 0; - { - D2D1_GRADIENT_STOP stops[2]; - stops[0].color = GetD2DColor(colors.key); - stops[0].position = 0.0f; - stops[1].color = GetD2DColor(colors.value); - stops[1].position = 1.0f; - - HRESULT hr = renderTarget->CreateGradientStopCollection( - stops, - 2, - D2D1_GAMMA_2_2, - D2D1_EXTEND_MODE_CLAMP, - &stopCollection); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - } - - ID2D1LinearGradientBrush* brush = 0; - { - D2D1_POINT_2F points[2] = { {0, 0}, {0, 0} }; - HRESULT hr = renderTarget->CreateLinearGradientBrush( - D2D1::LinearGradientBrushProperties(points[0], points[1]), - stopCollection, - &brush); - stopCollection->Release(); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - } - return brush; + bool result = movedWhileRendering; + movedWhileRendering = false; + return result; } - }; - class CachedRadialBrushAllocator - { - typedef Pair ColorPair; - DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr) + virtual ID2D1RenderTarget* GetDirect2DRenderTarget() = 0; + virtual void RecreateRenderTarget() = 0; + virtual bool PresentRenderTarget() = 0; + }; - IWindowsDirect2DRenderTarget* guiRenderTarget; - public: - CachedRadialBrushAllocator() - :guiRenderTarget(0) - { - } +/*********************************************************************** +WindowListener 1.0 +***********************************************************************/ - void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) - { - guiRenderTarget = _guiRenderTarget; - } + class Direct2DWindowsNativeWindowListener_1_0 : public Direct2DWindowsNativeWindowListener + { + protected: + ComPtr d2dRenderTarget; + NativeSize previousSize; - ComPtr CreateInternal(ColorPair colors) + void RebuildCanvas(NativeSize size)override { - ID2D1RenderTarget* renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); - ID2D1GradientStopCollection* stopCollection = 0; + if (size.x <= 1) size.x = 1; + if (size.y <= 1) size.y = 1; + if (!d2dRenderTarget) { - D2D1_GRADIENT_STOP stops[2]; - stops[0].color = GetD2DColor(colors.key); - stops[0].position = 0.0f; - stops[1].color = GetD2DColor(colors.value); - stops[1].position = 1.0f; - - HRESULT hr = renderTarget->CreateGradientStopCollection( - stops, - 2, - D2D1_GAMMA_2_2, - D2D1_EXTEND_MODE_CLAMP, - &stopCollection); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + ID2D1HwndRenderTarget* renderTarget = 0; + IWindowsForm* form = GetWindowsForm(window); + D2D1_RENDER_TARGET_PROPERTIES tp = D2D1::RenderTargetProperties(); + { + UINT dpiX = 0; + UINT dpiY = 0; + DpiAwared_GetDpiForWindow(form->GetWindowHandle(), &dpiX, &dpiY); + tp.dpiX = (FLOAT)dpiX; + tp.dpiY = (FLOAT)dpiY; + } + HRESULT hr = d2dFactory->CreateHwndRenderTarget( + tp, + D2D1::HwndRenderTargetProperties( + form->GetWindowHandle(), + D2D1::SizeU((int)size.x.value, (int)size.y.value) + ), + &renderTarget + ); + if (!FAILED(hr)) + { + d2dRenderTarget = renderTarget; + d2dRenderTarget->SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE); + } } - - ID2D1RadialGradientBrush* brush = 0; + else if (previousSize != size) { - D2D1_POINT_2F points[2] = { {0, 0}, {0, 0} }; - HRESULT hr = renderTarget->CreateRadialGradientBrush( - D2D1::RadialGradientBrushProperties(points[0], points[1], 1, 1), - stopCollection, - &brush); - stopCollection->Release(); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + d2dRenderTarget->Resize(D2D1::SizeU((int)size.x.value, (int)size.y.value)); } - return brush; + previousSize = size; } - }; - - class CachedTextFormatAllocator - { - private: - DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) public: - - static ComPtr CreateDirect2DFont(const FontProperties& fontProperties) + Direct2DWindowsNativeWindowListener_1_0(INativeWindow* _window, ID2D1Factory* _d2dFactory) + :Direct2DWindowsNativeWindowListener(_window, _d2dFactory) { - IDWriteFactory* dwriteFactory = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); - IDWriteTextFormat* format = 0; - HRESULT hr = dwriteFactory->CreateTextFormat( - fontProperties.fontFamily.Buffer(), - NULL, - (fontProperties.bold ? DWRITE_FONT_WEIGHT_BOLD : DWRITE_FONT_WEIGHT_NORMAL), - (fontProperties.italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL), - DWRITE_FONT_STRETCH_NORMAL, - (FLOAT)fontProperties.size, - L"", - &format); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - format->SetWordWrapping(DWRITE_WORD_WRAPPING_NO_WRAP); - return format; } - Ptr CreateInternal(const FontProperties& fontProperties) + ID2D1RenderTarget* GetDirect2DRenderTarget()override { - Ptr textFormat = new Direct2DTextFormatPackage; - textFormat->textFormat = CreateDirect2DFont(fontProperties); - textFormat->trimming.granularity = DWRITE_TRIMMING_GRANULARITY_CHARACTER; - textFormat->trimming.delimiter = 0; - textFormat->trimming.delimiterCount = 0; - - IDWriteInlineObject* ellipseInlineObject = 0; - GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateEllipsisTrimmingSign(textFormat->textFormat.Obj(), &ellipseInlineObject); - textFormat->ellipseInlineObject = ellipseInlineObject; - return textFormat; + if(!d2dRenderTarget) Moved(); + return d2dRenderTarget.Obj(); } - }; - - class CachedCharMeasurerAllocator - { - DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) - protected: - class Direct2DCharMeasurer : public text::CharMeasurer + void RecreateRenderTarget()override { - protected: - ComPtr font; - vint size; - - Size MeasureInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) - { - Size charSize(0, 0); - IDWriteTextLayout* textLayout = 0; - - UINT32 count = text::UTF16SPFirst(codePoint.characters[0]) && text::UTF16SPSecond(codePoint.characters[1]) ? 2 : 1; - HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateTextLayout( - codePoint.characters, - count, - font.Obj(), - 0, - 0, - &textLayout); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - - DWRITE_TEXT_METRICS metrics; - hr = textLayout->GetMetrics(&metrics); - if (!FAILED(hr)) - { - charSize = Size((vint)ceil(metrics.widthIncludingTrailingWhitespace), (vint)ceil(metrics.height)); - } - textLayout->Release(); - return charSize; - } - - vint MeasureWidthInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) + if (d2dRenderTarget) { - return MeasureInternal(codePoint, renderTarget).x; + d2dRenderTarget = nullptr; } + } - vint GetRowHeightInternal(IGuiGraphicsRenderTarget* renderTarget) - { - return MeasureInternal({ L' ' }, renderTarget).y; - } - public: - Direct2DCharMeasurer(ComPtr _font, vint _size) - :text::CharMeasurer(_size) - ,size(_size) - ,font(_font) - { - } - }; - public: - Ptr CreateInternal(const FontProperties& value) + bool PresentRenderTarget()override { - return new Direct2DCharMeasurer(CachedTextFormatAllocator::CreateDirect2DFont(value), value.size); + return true; } }; /*********************************************************************** -WindowsDirect2DRenderTarget +WindowListener 1.1 ***********************************************************************/ - class WindowsDirect2DImageFrameCache : public Object, public INativeImageFrameCache + class Direct2DWindowsNativeWindowListener_1_1 : public Direct2DWindowsNativeWindowListener { protected: - IWindowsDirect2DRenderTarget* renderTarget; - INativeImageFrame* cachedFrame; - ComPtr bitmap; - ComPtr disabledBitmap; - public: - WindowsDirect2DImageFrameCache(IWindowsDirect2DRenderTarget* _renderTarget) - :renderTarget(_renderTarget) - { - } + ComPtr d2dFactory1; + ID3D11Device* d3d11Device; + ComPtr dxgiDevice; + ComPtr dxgiSwapChain; + ComPtr d2dDeviceContext; + NativeSize previousSize; - ~WindowsDirect2DImageFrameCache() + ComPtr GetDXGIDevice() { + IDXGIDevice* device = nullptr; + HRESULT hr = d3d11Device->QueryInterface(&device); + if (!SUCCEEDED(hr)) return nullptr; + return device; } - void OnAttach(INativeImageFrame* frame)override + ComPtr CreateSwapChain(IDXGIDevice* dxgiDevice) { - cachedFrame = frame; - ID2D1Bitmap* d2dBitmap = 0; - HRESULT hr = renderTarget->GetDirect2DRenderTarget()->CreateBitmapFromWicBitmap( - GetWindowsDirect2DObjectProvider()->GetWICBitmap(frame), - &d2dBitmap - ); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - bitmap = d2dBitmap; - } - - void OnDetach(INativeImageFrame* frame)override - { - renderTarget->DestroyBitmapCache(cachedFrame); - } - - INativeImageFrame* GetFrame() - { - return cachedFrame; - } - - ComPtr GetBitmap(bool enabled) - { - if(enabled) - { - return bitmap; - } - else + ComPtr dxgiAdapter; { - if (!disabledBitmap) - { - IWICBitmap* frameBitmap = GetWindowsDirect2DObjectProvider()->GetWICBitmap(cachedFrame); - ID2D1Bitmap* d2dBitmap = 0; - HRESULT hr = renderTarget->GetDirect2DRenderTarget()->CreateBitmapFromWicBitmap( - frameBitmap, - &d2dBitmap - ); - CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - - disabledBitmap = d2dBitmap; - WICRect rect; - rect.X = 0; - rect.Y = 0; - rect.Width = bitmap->GetPixelSize().width; - rect.Height = bitmap->GetPixelSize().height; - BYTE* buffer = new BYTE[rect.Width*rect.Height * 4]; - hr = frameBitmap->CopyPixels(&rect, rect.Width * 4, rect.Width*rect.Height * 4, buffer); - if (SUCCEEDED(hr)) - { - vint count = rect.Width*rect.Height; - BYTE* read = buffer; - for (vint i = 0; i < count; i++) - { - BYTE g = (read[0] + read[1] + read[2]) / 6 + read[3] / 2; - read[0] = g; - read[1] = g; - read[2] = g; - read += 4; - } - D2D1_RECT_U d2dRect; - d2dRect.left = 0; - d2dRect.top = 0; - d2dRect.right = rect.Width; - d2dRect.bottom = rect.Height; - d2dBitmap->CopyFromMemory(&d2dRect, buffer, rect.Width * 4); - } - delete[] buffer; - } - return disabledBitmap; + IDXGIAdapter* adapter = nullptr; + HRESULT hr = dxgiDevice->GetAdapter(&adapter); + if (!SUCCEEDED(hr)) return nullptr; + dxgiAdapter = adapter; } - } - }; - class WindowsDirect2DRenderTarget : public Object, public IWindowsDirect2DRenderTarget - { - typedef SortedList> ImageCacheList; - protected: - INativeWindow* window; - ID2D1RenderTarget* d2dRenderTarget = nullptr; - ID2D1DeviceContext* d2dDeviceContext = nullptr; - List clippers; - vint clipperCoverWholeTargetCounter = 0; - - CachedSolidBrushAllocator solidBrushes; - CachedLinearBrushAllocator linearBrushes; - CachedRadialBrushAllocator radialBrushes; - ImageCacheList imageCaches; - ComPtr focusRectangleEffect; - - ComPtr noAntialiasParams; - ComPtr horizontalAntialiasParams; - ComPtr bidirectionalAntialiasParams; - - ComPtr CreateRenderingParams(DWRITE_RENDERING_MODE renderingMode, IDWriteRenderingParams* defaultParams, IDWriteFactory* dwriteFactory) - { - IDWriteRenderingParams* renderingParams=0; - FLOAT gamma=defaultParams->GetGamma(); - FLOAT enhancedContrast=defaultParams->GetEnhancedContrast(); - FLOAT clearTypeLevel=defaultParams->GetClearTypeLevel(); - DWRITE_PIXEL_GEOMETRY pixelGeometry=defaultParams->GetPixelGeometry(); - HRESULT hr=dwriteFactory->CreateCustomRenderingParams( - gamma, - enhancedContrast, - clearTypeLevel, - pixelGeometry, - renderingMode, - &renderingParams); - if(!FAILED(hr)) - { - return renderingParams; - } - else + ComPtr dxgiFactory; { - return 0; + IDXGIFactory2* factory = nullptr; + HRESULT hr = dxgiAdapter->GetParent(__uuidof(IDXGIFactory2), (void**)&factory); + if (!SUCCEEDED(hr)) return nullptr; + dxgiFactory = factory; } - } - public: - WindowsDirect2DRenderTarget(INativeWindow* _window) - :window(_window) - { - solidBrushes.SetRenderTarget(this); - linearBrushes.SetRenderTarget(this); - radialBrushes.SetRenderTarget(this); - IDWriteFactory* dwriteFactory = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); - IDWriteRenderingParams* defaultParams = 0; - HRESULT hr = dwriteFactory->CreateRenderingParams(&defaultParams); - if (!FAILED(hr)) + IWindowsForm* form = GetWindowsForm(window); + ComPtr dxgiSwapChain; { - noAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL, defaultParams, dwriteFactory); - horizontalAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL, defaultParams, dwriteFactory); - bidirectionalAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC, defaultParams, dwriteFactory); - defaultParams->Release(); - } - } + DXGI_SWAP_CHAIN_DESC1 props = {}; + props.Format = DXGI_FORMAT_B8G8R8A8_UNORM; + props.SampleDesc.Count = 1; + props.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + props.BufferCount = 2; - ~WindowsDirect2DRenderTarget() - { - while(imageCaches.Count()) - { - Ptr cache=imageCaches[imageCaches.Count()-1]; - cache->GetFrame()->RemoveCache(this); + IDXGISwapChain1* swapChain = nullptr; + HRESULT hr = dxgiFactory->CreateSwapChainForHwnd(d3d11Device, form->GetWindowHandle(), &props, nullptr, nullptr, &swapChain); + if (!SUCCEEDED(hr)) return nullptr; + dxgiSwapChain = swapChain; } - } - ID2D1RenderTarget* GetDirect2DRenderTarget()override - { - return d2dRenderTarget ? d2dRenderTarget : GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); + return dxgiSwapChain; } - ComPtr GetBitmap(INativeImageFrame* frame, bool enabled)override + ComPtr CreateDeviceContext(IDXGIDevice* dxgiDevice) { - Ptr cache=frame->GetCache(this); - if(cache) + ComPtr d2d1Device; { - return cache.Cast()->GetBitmap(enabled); + ID2D1Device* device = nullptr; + HRESULT hr = d2dFactory1->CreateDevice(dxgiDevice, &device); + if (!SUCCEEDED(hr)) return nullptr; + d2d1Device = device; } - else + + ComPtr d2dDeviceContext; { - Ptr d2dCache=new WindowsDirect2DImageFrameCache(this); - if(frame->SetCache(this, d2dCache)) - { - imageCaches.Add(d2dCache); - return d2dCache->GetBitmap(enabled); - } - else - { - return 0; - } + ID2D1DeviceContext* deviceContext = nullptr; + HRESULT hr = d2d1Device->CreateDeviceContext(D2D1_DEVICE_CONTEXT_OPTIONS_NONE, &deviceContext); + if (!SUCCEEDED(hr)) return nullptr; + d2dDeviceContext = deviceContext; } - } - void DestroyBitmapCache(INativeImageFrame* frame)override - { - WindowsDirect2DImageFrameCache* cache=frame->GetCache(this).Cast().Obj(); - imageCaches.Remove(cache); + return d2dDeviceContext; } - void SetTextAntialias(bool antialias, bool verticalAntialias)override + ComPtr CreateBitmap(IDXGISwapChain1* swapChain, ID2D1DeviceContext* deviceContext) { - ComPtr params; - if(!antialias) - { - params=noAntialiasParams; - } - else if(!verticalAntialias) - { - params=horizontalAntialiasParams; - } - else + ComPtr dxgiSurface; { - params=bidirectionalAntialiasParams; + IDXGISurface* surface = nullptr; + HRESULT hr = swapChain->GetBuffer(0, __uuidof(IDXGISurface), (void**)&surface); + if (!SUCCEEDED(hr))return nullptr; + dxgiSurface = surface; } - if(params && d2dRenderTarget) + + ComPtr d2dBitmap; { - d2dRenderTarget->SetTextRenderingParams(params.Obj()); - } - } + auto props = D2D1::BitmapProperties1(D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW, D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_IGNORE)); - void StartRendering()override - { - d2dRenderTarget = GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); - CHECK_ERROR(d2dRenderTarget, L"vl::presentation::elements_windows_d2d::WindowsDirect2DRenderTarget::StartRendering()#Invalid render target."); + ID2D1Bitmap1* bitmap = nullptr; + HRESULT hr = deviceContext->CreateBitmapFromDxgiSurface(dxgiSurface.Obj(), props, &bitmap); + if (!SUCCEEDED(hr)) return nullptr; + d2dBitmap = bitmap; + } - GetWindowsDirect2DObjectProvider()->StartRendering(window); + return d2dBitmap; } - RenderTargetFailure StopRendering()override + void RebuildCanvas(NativeSize size)override { - CHECK_ERROR(d2dRenderTarget, L"vl::presentation::elements_windows_d2d::WindowsDirect2DRenderTarget::StartRendering()#Invalid render target."); - auto result = GetWindowsDirect2DObjectProvider()->StopRenderingAndPresent(window); - d2dRenderTarget = nullptr; - return result; - } + if (size.x <= 1) size.x = 1; + if (size.y <= 1) size.y = 1; - void PushClipper(Rect clipper)override - { - if(clipperCoverWholeTargetCounter>0) - { - clipperCoverWholeTargetCounter++; - } - else + if(!d2dDeviceContext) { - Rect previousClipper=GetClipper(); - Rect currentClipper; + if (!dxgiDevice) + { + dxgiDevice = GetDXGIDevice(); + } - currentClipper.x1=(previousClipper.x1>clipper.x1?previousClipper.x1:clipper.x1); - currentClipper.y1=(previousClipper.y1>clipper.y1?previousClipper.y1:clipper.y1); - currentClipper.x2=(previousClipper.x2SetTarget(d2dBitmap.Obj()); + IWindowsForm* form = GetWindowsForm(window); { - clippers.Add(currentClipper); - d2dRenderTarget->PushAxisAlignedClip( - D2D1::RectF((FLOAT)currentClipper.x1, (FLOAT)currentClipper.y1, (FLOAT)currentClipper.x2, (FLOAT)currentClipper.y2), - D2D1_ANTIALIAS_MODE_PER_PRIMITIVE - ); + UINT dpiX = 0; + UINT dpiY = 0; + DpiAwared_GetDpiForWindow(form->GetWindowHandle(), &dpiX, &dpiY); + d2dDeviceContext->SetDpi((FLOAT)dpiX, (FLOAT)dpiY); } - else + } + else if(previousSize!=size) + { + d2dDeviceContext->SetTarget(nullptr); + HRESULT hr = dxgiSwapChain->ResizeBuffers(0, 0, 0, DXGI_FORMAT_UNKNOWN, 0); + if (SUCCEEDED(hr)) { - clipperCoverWholeTargetCounter++; + auto d2dBitmap = CreateBitmap(dxgiSwapChain.Obj(), d2dDeviceContext.Obj()); + d2dDeviceContext->SetTarget(d2dBitmap.Obj()); } } + previousSize=size; } - - void PopClipper()override + public: + Direct2DWindowsNativeWindowListener_1_1(INativeWindow* _window, ComPtr _d2dFactory1, ID3D11Device* _d3d11Device) + :Direct2DWindowsNativeWindowListener(_window, _d2dFactory1.Obj()) + ,d2dFactory1(_d2dFactory1) + ,d3d11Device(_d3d11Device) { - if(clipperCoverWholeTargetCounter>0) - { - clipperCoverWholeTargetCounter--; - } - else if(clippers.Count()>0) - { - clippers.RemoveAt(clippers.Count()-1); - d2dRenderTarget->PopAxisAlignedClip(); - } } - Rect GetClipper()override + ID2D1RenderTarget* GetDirect2DRenderTarget()override { - if (clippers.Count() == 0) - { - return Rect(Point(0, 0), window->Convert(window->GetClientSize())); - } - else - { - return clippers[clippers.Count() - 1]; - } + if(!d2dDeviceContext) Moved(); + return d2dDeviceContext.Obj(); } - bool IsClipperCoverWholeTarget()override + void RecreateRenderTarget()override { - return clipperCoverWholeTargetCounter>0; + if (d2dDeviceContext) + { + d2dDeviceContext = nullptr; + dxgiSwapChain = nullptr; + } } - ID2D1Effect* GetFocusRectangleEffect()override + bool PresentRenderTarget()override { - if (!focusRectangleEffect) + if (d2dDeviceContext) { - ID2D1RenderTarget* d2dRenderTarget = GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); - ID2D1DeviceContext* d2dDeviceContext = nullptr; - HRESULT hr = d2dRenderTarget->QueryInterface(&d2dDeviceContext); - if (d2dDeviceContext) + if (dxgiSwapChain) { - if (auto wicFactory = GetWICImagingFactory()) - { - // this is the content of EffectBuffer.png in the same folder where this cpp file is in - static const char EffectBuffer[] = - "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x08\x00\x00\x00\x08\x08\x06\x00\x00" - "\x00\xC4\x0F\xBE\x8B\x00\x00\x00\x01\x73\x52\x47\x42\x00\xAE\xCE\x1C\xE9\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00" - "\xB1\x8F\x0B\xFC\x61\x05\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0E\xC3\x00\x00\x0E\xC3\x01\xC7\x6F\xA8\x64\x00" - "\x00\x00\x2F\x49\x44\x41\x54\x28\x53\x75\xC8\xB1\x0D\x00\x30\x0C\x02\x41\xEF\xBF\x34\xB1\x68\xA2\x47\xF8\x9B\x13" - "\x8C\xB6\xD9\x2E\x5D\x9E\x10\xA3\xE8\xF2\x84\x18\x45\x97\x27\xC4\x28\xBA\x3C\xBF\xD2\x03\xC2\xD7\x7F\x81\x23\x94" - "\x3E\x1F\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"; - auto effectImage = GetCurrentController()->ImageService()->CreateImageFromMemory((void*)EffectBuffer, (vint)(sizeof(EffectBuffer) - 1)); - IWICBitmap* wicEffectBitmap = effectImage ? GetWICBitmap(effectImage->GetFrame(0)) : nullptr; - if (wicEffectBitmap) - { - ID2D1Bitmap* d2dEffectBitmap = nullptr; - hr = d2dRenderTarget->CreateBitmapFromWicBitmap(wicEffectBitmap, &d2dEffectBitmap); - if (d2dEffectBitmap) - { - ID2D1Effect* d2dEffect = nullptr; - hr = d2dDeviceContext->CreateEffect(CLSID_D2D1Tile, &d2dEffect); - if (d2dEffect) - { - d2dEffect->SetInput(0, d2dEffectBitmap); - d2dEffect->SetValue(D2D1_TILE_PROP_RECT, D2D1::RectF(0, 0, 2, 2)); - focusRectangleEffect = d2dEffect; - } - d2dEffectBitmap->Release(); - } - } - } - d2dDeviceContext->Release(); + DXGI_PRESENT_PARAMETERS parameters = {0}; + HRESULT hr = dxgiSwapChain->Present1(1, 0, ¶meters); + return hr == S_OK || hr == DXGI_STATUS_OCCLUDED; } } - return focusRectangleEffect.Obj(); - } - - ID2D1SolidColorBrush* CreateDirect2DBrush(Color color)override - { - return solidBrushes.Create(color).Obj(); - } - - void DestroyDirect2DBrush(Color color)override - { - solidBrushes.Destroy(color); - } - - ID2D1LinearGradientBrush* CreateDirect2DLinearBrush(Color c1, Color c2)override - { - return linearBrushes.Create(Pair(c1, c2)).Obj(); - } - - void DestroyDirect2DLinearBrush(Color c1, Color c2)override - { - linearBrushes.Destroy(Pair(c1, c2)); - } - - ID2D1RadialGradientBrush* CreateDirect2DRadialBrush(Color c1, Color c2)override - { - return radialBrushes.Create(Pair(c1, c2)).Obj(); - } - - void DestroyDirect2DRadialBrush(Color c1, Color c2)override - { - radialBrushes.Destroy(Pair(c1, c2)); + return false; } }; /*********************************************************************** -WindowsGDIResourceManager +ControllerListener ***********************************************************************/ - class WindowsDirect2DResourceManager : public GuiGraphicsResourceManager, public IWindowsDirect2DResourceManager, public INativeControllerListener + class Direct2DWindowsNativeControllerListener : public Object, public INativeControllerListener { - protected: - SortedList> renderTargets; - Ptr layoutProvider; - - CachedTextFormatAllocator textFormats; - CachedCharMeasurerAllocator charMeasurers; public: - WindowsDirect2DResourceManager() - { - layoutProvider=new WindowsDirect2DLayoutProvider; - } + Dictionary> nativeWindowListeners; + ComPtr d2dFactory; + ComPtr dwrite; + ComPtr d3d11Device; - IGuiGraphicsRenderTarget* GetRenderTarget(INativeWindow* window)override - { - return GetWindowsDirect2DObjectProvider()->GetBindedRenderTarget(window); - } - - void RecreateRenderTarget(INativeWindow* window)override + Direct2DWindowsNativeControllerListener() { - NativeWindowDestroying(window); - GetWindowsDirect2DObjectProvider()->RecreateRenderTarget(window); - NativeWindowCreated(window); - } + { + D2D1_FACTORY_OPTIONS fo = {}; + #ifdef _DEBUG + fo.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION; + #endif - void ResizeRenderTarget(INativeWindow* window) - { - GetWindowsDirect2DObjectProvider()->ResizeRenderTarget(window); + ID2D1Factory* factory=0; + HRESULT hr=D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, fo, &factory); + if(!FAILED(hr)) + { + d2dFactory=factory; + } + } + { + IDWriteFactory* factory=0; + HRESULT hr=DWriteCreateFactory(DWRITE_FACTORY_TYPE_ISOLATED, __uuidof(IDWriteFactory), reinterpret_cast(&factory)); + if(!FAILED(hr)) + { + dwrite=factory; + } + } } - IGuiGraphicsLayoutProvider* GetLayoutProvider()override + ~Direct2DWindowsNativeControllerListener() { - return layoutProvider.Obj(); + for (vint i = 0; i < nativeWindowListeners.Count(); i++) + { + auto window = nativeWindowListeners.Keys()[i]; + auto listener = nativeWindowListeners.Values()[i]; + window->UninstallListener(listener.Obj()); + } } - void NativeWindowCreated(INativeWindow* window)override + ComPtr CreateD3D11Device(D3D_DRIVER_TYPE driverType) { - WindowsDirect2DRenderTarget* renderTarget=new WindowsDirect2DRenderTarget(window); - renderTargets.Add(renderTarget); - GetWindowsDirect2DObjectProvider()->SetBindedRenderTarget(window, renderTarget); - } + UINT flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + #ifdef _DEBUG + flags |= D3D11_CREATE_DEVICE_DEBUG; + #endif - void NativeWindowDestroying(INativeWindow* window)override - { - WindowsDirect2DRenderTarget* renderTarget=dynamic_cast(GetWindowsDirect2DObjectProvider()->GetBindedRenderTarget(window)); - GetWindowsDirect2DObjectProvider()->SetBindedRenderTarget(window, 0); - renderTargets.Remove(renderTarget); - } + D3D_FEATURE_LEVEL featureLevels[] = + { + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1 + }; - Direct2DTextFormatPackage* CreateDirect2DTextFormat(const FontProperties& fontProperties)override - { - return textFormats.Create(fontProperties).Obj(); - } - void DestroyDirect2DTextFormat(const FontProperties& fontProperties)override - { - textFormats.Destroy(fontProperties); + ID3D11Device* device = nullptr; + HRESULT hr = D3D11CreateDevice( + nullptr, + driverType, + nullptr, + flags, + featureLevels, + sizeof(featureLevels) / sizeof(*featureLevels), + D3D11_SDK_VERSION, + &device, + nullptr, + nullptr); + if (SUCCEEDED(hr)) + { + return device; + } + else if (device) + { + device->Release(); + } + return nullptr; } - Ptr CreateDirect2DCharMeasurer(const FontProperties& fontProperties)override + void NativeWindowCreated(INativeWindow* window) { - return charMeasurers.Create(fontProperties); + ComPtr d2dfactory1; + { + ID2D1Factory1* factory = nullptr; + HRESULT hr = windows::GetDirect2DFactory()->QueryInterface(&factory); + if (SUCCEEDED(hr)) + { + d2dfactory1 = factory; + } + } + + Ptr listener; + if (d2dfactory1) + { + if (!d3d11Device) + { + d3d11Device = CreateD3D11Device(D3D_DRIVER_TYPE_HARDWARE); + if (!d3d11Device) + { + d3d11Device = CreateD3D11Device(D3D_DRIVER_TYPE_WARP); + } + } +#if _DEBUG + CHECK_ERROR(d3d11Device, + L"Direct2DWindowsNativeControllerListener::NativeWindowCreated(INativeWindow*)#" + L"Failed to create Direct3D 11 Device. " + L"If you are running in Debug mode on Windows 10, please ensure the optional feature [Graphics Tools] is correctly installed. " + L"This error will be skipped in Release mode and GacUI will fallback to use Direct2D 1.0, but you still need to check your Windows SDK Installation." + ); +#endif + } + + if (d2dfactory1 && d3d11Device) + { + listener = Ptr(new Direct2DWindowsNativeWindowListener_1_1(window, d2dfactory1, d3d11Device.Obj())); + } + else + { + listener = Ptr(new Direct2DWindowsNativeWindowListener_1_0(window, d2dFactory.Obj())); + } + window->InstallListener(listener.Obj()); + nativeWindowListeners.Add(window, listener); } - void DestroyDirect2DCharMeasurer(const FontProperties& fontProperties)override + void NativeWindowDestroying(INativeWindow* window) { - charMeasurers.Destroy(fontProperties); + Ptr listener=nativeWindowListeners[window]; + nativeWindowListeners.Remove(window); + window->UninstallListener(listener.Obj()); } }; - } - namespace elements_windows_d2d - { - IWindowsDirect2DResourceManager* windowsDirect2DResourceManager=0; + Direct2DWindowsNativeControllerListener* direct2DListener = nullptr; - IWindowsDirect2DResourceManager* GetWindowsDirect2DResourceManager() + ID2D1Factory* GetDirect2DFactory() { - return windowsDirect2DResourceManager; + return direct2DListener->d2dFactory.Obj(); } - void SetWindowsDirect2DResourceManager(IWindowsDirect2DResourceManager* resourceManager) + IDWriteFactory* GetDirectWriteFactory() + { + return direct2DListener->dwrite.Obj(); + } + + ID3D11Device* GetD3D11Device() { - windowsDirect2DResourceManager=resourceManager; + return direct2DListener->d3d11Device.Obj(); } + } + namespace elements_windows_d2d + { /*********************************************************************** OS Supporting ***********************************************************************/ - IWindowsDirect2DObjectProvider* windowsDirect2DObjectProvider=0; - - IWindowsDirect2DObjectProvider* GetWindowsDirect2DObjectProvider() + class WinDirect2DApplicationDirect2DObjectProvider : public IWindowsDirect2DObjectProvider { - return windowsDirect2DObjectProvider; - } + protected: - void SetWindowsDirect2DObjectProvider(IWindowsDirect2DObjectProvider* provider) - { - windowsDirect2DObjectProvider=provider; - } - } + windows::Direct2DWindowsNativeWindowListener* GetNativeWindowListener(INativeWindow* window) + { + vint index = windows::direct2DListener->nativeWindowListeners.Keys().IndexOf(window); + return index == -1 + ? nullptr + : windows::direct2DListener->nativeWindowListeners.Values().Get(index).Obj(); + } + + public: + void RecreateRenderTarget(INativeWindow* window)override + { + if (auto listener = GetNativeWindowListener(window)) + { + return listener->RecreateRenderTarget(); + } + } + + void ResizeRenderTarget(INativeWindow* window)override + { + if (auto listener = GetNativeWindowListener(window)) + { + return listener->ResizeRenderTarget(); + } + } + + ID2D1RenderTarget* GetNativeWindowDirect2DRenderTarget(INativeWindow* window)override + { + if (auto listener = GetNativeWindowListener(window)) + { + return listener->GetDirect2DRenderTarget(); + } + return nullptr; + } + + void StartRendering(INativeWindow* window)override + { + if (auto listener = GetNativeWindowListener(window)) + { + listener->StartRendering(); + if (auto renderTarget = listener->GetDirect2DRenderTarget()) + { + renderTarget->BeginDraw(); + renderTarget->Clear(D2D1::ColorF(D2D1::ColorF::Black)); + } + } + } + + RenderTargetFailure StopRenderingAndPresent(INativeWindow* window)override + { + if (auto listener = GetNativeWindowListener(window)) + { + listener->StopRendering(); + bool moved = listener->RetrieveAndResetMovedWhileRendering(); + + if (auto renderTarget = listener->GetDirect2DRenderTarget()) + { + HRESULT hr = renderTarget->EndDraw(); + if (hr == S_OK) + { + if (moved) + { + return RenderTargetFailure::ResizeWhileRendering; + } + else if (listener->PresentRenderTarget()) + { + return RenderTargetFailure::None; + } + } + } + } + return RenderTargetFailure::LostDevice; + } + + ID2D1Factory* GetDirect2DFactory()override + { + return vl::presentation::windows::GetDirect2DFactory(); + } + + IDWriteFactory* GetDirectWriteFactory()override + { + return vl::presentation::windows::GetDirectWriteFactory(); + } + + IWindowsDirect2DRenderTarget* GetBindedRenderTarget(INativeWindow* window)override + { + auto windowsForm = vl::presentation::windows::GetWindowsForm(window); + auto graphicsHandler = windowsForm->GetGraphicsHandler(); + return dynamic_cast(graphicsHandler); + } + + void SetBindedRenderTarget(INativeWindow* window, IWindowsDirect2DRenderTarget* renderTarget)override + { + vl::presentation::windows::GetWindowsForm(window)->SetGraphicsHandler(renderTarget); + } + + IWICImagingFactory* GetWICImagingFactory()override + { + return vl::presentation::windows::GetWICImagingFactory(); + } + + IWICBitmap* GetWICBitmap(INativeImageFrame* frame)override + { + return vl::presentation::windows::GetWICBitmap(frame); + } + }; + } } } -/*********************************************************************** -NativeMain -***********************************************************************/ - +using namespace vl; using namespace vl::presentation; -using namespace vl::presentation::elements; +using namespace vl::presentation::windows; +using namespace vl::presentation::elements_windows_d2d; -void RendererMainDirect2D() +int SetupWindowsDirect2DRendererInternal(bool hosted) { - elements_windows_d2d::WindowsDirect2DResourceManager resourceManager; - SetGuiGraphicsResourceManager(&resourceManager); - elements_windows_d2d::SetWindowsDirect2DResourceManager(&resourceManager); - GetCurrentController()->CallbackService()->InstallListener(&resourceManager); - - elements_windows_d2d::GuiFocusRectangleElementRenderer::Register(); - elements_windows_d2d::GuiSolidBorderElementRenderer::Register(); - elements_windows_d2d::Gui3DBorderElementRenderer::Register(); - elements_windows_d2d::Gui3DSplitterElementRenderer::Register(); - elements_windows_d2d::GuiSolidBackgroundElementRenderer::Register(); - elements_windows_d2d::GuiGradientBackgroundElementRenderer::Register(); - elements_windows_d2d::GuiInnerShadowElementRenderer::Register(); - elements_windows_d2d::GuiSolidLabelElementRenderer::Register(); - elements_windows_d2d::GuiImageFrameElementRenderer::Register(); - elements_windows_d2d::GuiPolygonElementRenderer::Register(); - elements_windows_d2d::GuiColorizedTextElementRenderer::Register(); - elements_windows_d2d::GuiDirect2DElementRenderer::Register(); - elements::GuiDocumentElement::GuiDocumentElementRenderer::Register(); - - GuiApplicationMain(); - elements_windows_d2d::SetWindowsDirect2DResourceManager(0); - SetGuiGraphicsResourceManager(0); + InitDpiAwareness(true); + CoInitializeEx(NULL, COINIT_MULTITHREADED); + HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL); + WinDirect2DApplicationDirect2DObjectProvider objectProvider; + SetWindowsDirect2DObjectProvider(&objectProvider); + EnableCrossKernelCrashing(); + + // create controller + GuiHostedController* hostedController = nullptr; + StartWindowsNativeController(hInstance); + auto nativeController = GetWindowsNativeController(); + if (hosted) hostedController = new GuiHostedController(nativeController); + SetNativeController(hostedController ? hostedController : nativeController); + + { + // install listener + Direct2DWindowsNativeControllerListener listener; + nativeController->CallbackService()->InstallListener(&listener); + direct2DListener = &listener; + // main + RendererMainDirect2D(hostedController); + // uninstall listener + direct2DListener = nullptr; + nativeController->CallbackService()->UninstallListener(&listener); + } + + // destroy controller + SetNativeController(nullptr); + if (hostedController) delete hostedController; + StopWindowsNativeController(); + return 0; +} + +int SetupWindowsDirect2DRenderer() +{ + return SetupWindowsDirect2DRendererInternal(false); +} + +int SetupHostedWindowsDirect2DRenderer() +{ + return SetupWindowsDirect2DRendererInternal(true); } /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI.CPP +.\DIRECT2D\RENDERERS\GUIGRAPHICSLAYOUTPROVIDERWINDOWSDIRECT2D.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace elements_windows_gdi + using namespace elements; + using namespace collections; + + namespace elements_windows_d2d { - using namespace elements; - using namespace collections; - using namespace windows; /*********************************************************************** -WindowsGDIParagraph +WindowsDirect2DElementInlineObject ***********************************************************************/ - class WindowsGDIParagraph : public Object, public IGuiGraphicsParagraph, protected UniscribeRun::IRendererCallback + class WindowsDirect2DElementInlineObject : public IDWriteInlineObject { - protected: - IGuiGraphicsLayoutProvider* provider; - Ptr paragraph; - WString text; - IWindowsGDIRenderTarget* renderTarget; + public: + class IRendererCallback : public Interface + { + public: + virtual Color GetBackgroundColor(vint textPosition) = 0; + virtual IWindowsDirect2DRenderTarget* GetDirect2DRenderTarget() = 0; + virtual Point GetParagraphOffset() = 0; + virtual IGuiGraphicsParagraphCallback* GetParagraphCallback() = 0; + }; - vint caret; - Color caretColor; - bool caretFrontSide; - Ptr caretPen; + protected: + vint counter; + IGuiGraphicsParagraph::InlineObjectProperties properties; + IRendererCallback* rendererCallback; + vint start; + vint length; - WinDC* paragraphDC; - Point paragraphOffset; - IGuiGraphicsParagraphCallback* paragraphCallback; + public: + WindowsDirect2DElementInlineObject( + const IGuiGraphicsParagraph::InlineObjectProperties& _properties, + IRendererCallback* _rendererCallback, + vint _start, + vint _length + ) + :counter(1) + ,properties(_properties) + ,rendererCallback(_rendererCallback) + ,start(_start) + ,length(_length) + { + } - void PrepareUniscribeData() + ~WindowsDirect2DElementInlineObject() { - if(paragraph->BuildUniscribeData(renderTarget->GetDC())) + if (properties.backgroundImage) { - vint width=paragraph->lastAvailableWidth==-1?65536:paragraph->lastAvailableWidth; - paragraph->Layout(width, paragraph->paragraphAlignment); + IGuiGraphicsRenderer* graphicsRenderer=properties.backgroundImage->GetRenderer(); + if(graphicsRenderer) + { + graphicsRenderer->SetRenderTarget(0); + } } } - WinDC* GetWinDC() + vint GetStart() { - return paragraphDC; + return start; } - Point GetParagraphOffset() + vint GetLength() { - return paragraphOffset; + return length; } - IGuiGraphicsParagraphCallback* GetParagraphCallback() + const IGuiGraphicsParagraph::InlineObjectProperties& GetProperties() { - return paragraphCallback; + return properties; } - public: - WindowsGDIParagraph(IGuiGraphicsLayoutProvider* _provider, const WString& _text, IGuiGraphicsRenderTarget* _renderTarget, IGuiGraphicsParagraphCallback* _paragraphCallback) - :provider(_provider) - ,text(_text) - ,renderTarget(dynamic_cast(_renderTarget)) - ,caret(-1) - ,caretFrontSide(false) - ,paragraphDC(nullptr) - ,paragraphCallback(_paragraphCallback) - { - paragraph=new UniscribeParagraph; - paragraph->paragraphText=text; - Ptr fragment=new UniscribeFragment(_text); - fragment->fontStyle=GetCurrentController()->ResourceService()->GetDefaultFont(); - paragraph->documentFragments.Add(fragment); + Ptr GetElement() + { + return properties.backgroundImage; } - ~WindowsGDIParagraph() + HRESULT STDMETHODCALLTYPE QueryInterface( + REFIID riid, + void __RPC_FAR *__RPC_FAR *ppvObject + ) { - CloseCaret(); + if(ppvObject) + { + *ppvObject=NULL; + } + return E_NOINTERFACE; } - IGuiGraphicsLayoutProvider* GetProvider()override + ULONG STDMETHODCALLTYPE AddRef(void) { - return provider; + ++counter; + return S_OK; } - IGuiGraphicsRenderTarget* GetRenderTarget()override + ULONG STDMETHODCALLTYPE Release(void) { - return renderTarget; + if(--counter==0) + { + delete this; + } + return S_OK; } - bool GetWrapLine()override - { - return true; - } - - void SetWrapLine(bool value)override - { - } - - vint GetMaxWidth()override - { - return paragraph->lastAvailableWidth; - } - - void SetMaxWidth(vint value)override + STDMETHOD(Draw)( + void* clientDrawingContext, + IDWriteTextRenderer* renderer, + FLOAT originX, + FLOAT originY, + BOOL isSideways, + BOOL isRightToLeft, + IUnknown* clientDrawingEffect + )override { - paragraph->BuildUniscribeData(renderTarget->GetDC()); - paragraph->Layout(value, paragraph->paragraphAlignment); - } + Rect bounds(Point((vint)originX, (vint)originY), properties.size); + if (properties.backgroundImage) + { + IGuiGraphicsRenderer* graphicsRenderer=properties.backgroundImage->GetRenderer(); + if(graphicsRenderer) + { + graphicsRenderer->Render(bounds); + } + } - Alignment GetParagraphAlignment()override - { - return paragraph->paragraphAlignment; - } + Color color=rendererCallback->GetBackgroundColor(start); + if(color.a!=0) + { + color.a/=2; + if(IWindowsDirect2DRenderTarget* renderTarget=rendererCallback->GetDirect2DRenderTarget()) + { + ID2D1SolidColorBrush* brush=renderTarget->CreateDirect2DBrush(color); - void SetParagraphAlignment(Alignment value)override - { - paragraph->BuildUniscribeData(renderTarget->GetDC()); - paragraph->Layout(paragraph->lastAvailableWidth, value); - } + renderTarget->GetDirect2DRenderTarget()->FillRectangle( + D2D1::RectF(bounds.x1-0.5f, bounds.y1-0.5f, bounds.x2+0.5f, bounds.y2+0.5f), + brush + ); - bool SetFont(vint start, vint length, const WString& value)override - { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) - { - return paragraph->SetFont(start, length, value); + renderTarget->DestroyDirect2DBrush(color); + } } - else + + if (properties.callbackId != -1) { - return false; + if (auto callback = rendererCallback->GetParagraphCallback()) + { + auto offset = rendererCallback->GetParagraphOffset(); + auto size = callback->OnRenderInlineObject(properties.callbackId, Rect(Point(bounds.x1 - offset.x, bounds.y1 - offset.y), bounds.GetSize())); + properties.size = size; + } } + return S_OK; } - bool SetSize(vint start, vint length, vint value)override + STDMETHOD(GetMetrics)( + DWRITE_INLINE_OBJECT_METRICS* metrics + )override { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) - { - return paragraph->SetSize(start, length, value); - } - else - { - return false; - } + metrics->width=(FLOAT)properties.size.x; + metrics->height=(FLOAT)properties.size.y; + metrics->baseline=(FLOAT)(properties.baseline==-1?properties.size.y:properties.baseline); + metrics->supportsSideways=TRUE; + return S_OK; } - bool SetStyle(vint start, vint length, TextStyle value)override + STDMETHOD(GetOverhangMetrics)( + DWRITE_OVERHANG_METRICS* overhangs + )override { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) - { - return paragraph->SetStyle(start, length, (value&Bold)!=0, (value&Italic)!=0, (value&Underline)!=0, (value&Strikeline)!=0); - } - else - { - return false; - } + overhangs->left=0; + overhangs->right=0; + overhangs->top=0; + overhangs->bottom=0; + return S_OK; } - bool SetColor(vint start, vint length, Color value)override + STDMETHOD(GetBreakConditions)( + DWRITE_BREAK_CONDITION* breakConditionBefore, + DWRITE_BREAK_CONDITION* breakConditionAfter + )override { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) - { - return paragraph->SetColor(start, length, value); - } - else + switch(properties.breakCondition) { - return false; + case IGuiGraphicsParagraph::StickToPreviousRun: + *breakConditionBefore=DWRITE_BREAK_CONDITION_MAY_NOT_BREAK; + *breakConditionAfter=DWRITE_BREAK_CONDITION_CAN_BREAK; + break; + case IGuiGraphicsParagraph::StickToNextRun: + *breakConditionBefore=DWRITE_BREAK_CONDITION_CAN_BREAK; + *breakConditionAfter=DWRITE_BREAK_CONDITION_MAY_NOT_BREAK; + break; + default: + *breakConditionBefore=DWRITE_BREAK_CONDITION_CAN_BREAK; + *breakConditionAfter=DWRITE_BREAK_CONDITION_CAN_BREAK; } + return S_OK; } + }; - bool SetBackgroundColor(vint start, vint length, Color value)override +/*********************************************************************** +WindowsDirect2DParagraph +***********************************************************************/ + + class WindowsDirect2DParagraph : public Object, public IGuiGraphicsParagraph, public WindowsDirect2DElementInlineObject::IRendererCallback + { + protected: + struct TextRange { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) - { - return paragraph->SetBackgroundColor(start, length, value); - } - else - { - return false; - } - } + vint start; + vint end; - bool SetInlineObject(vint start, vint length, const InlineObjectProperties& properties)override + TextRange(){} + TextRange(vint _start, vint _end):start(_start),end(_end){} + + GUI_DEFINE_COMPARE_OPERATORS(TextRange) + }; + + typedef Dictionary> InlineElementMap; + typedef Dictionary ColorMap; + typedef Dictionary GraphicsElementMap; + protected: + IGuiGraphicsLayoutProvider* provider; + ID2D1SolidColorBrush* defaultTextColor; + IDWriteFactory* dwriteFactory; + IWindowsDirect2DRenderTarget* renderTarget; + WString paragraphText; + ComPtr textLayout; + bool wrapLine; + vint maxWidth; + List usedColors; + + InlineElementMap inlineElements; + GraphicsElementMap graphicsElements; + ColorMap backgroundColors; + + vint caret; + Color caretColor; + bool caretFrontSide; + ID2D1SolidColorBrush* caretBrush; + + bool formatDataAvailable; + Array lineMetrics; + Array lineStarts; + Array lineTops; + Array clusterMetrics; + Array hitTestMetrics; + Array charHitTestMap; + + Point paragraphOffset; + IGuiGraphicsParagraphCallback* paragraphCallback; + +/*********************************************************************** +WindowsDirect2DParagraph (Ranges) +***********************************************************************/ + + template + void CutMap(Dictionary& map, vint start, vint length) { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + vint end=start+length; + for(vint i=map.Count()-1;i>=0;i--) { - if(paragraph->SetInlineObject(start, length, properties)) + TextRange key=map.Keys()[i]; + if(key.startstart?key.start:start; + vint s3=key.endGetRenderer(); - if(renderer) - { - renderer->SetRenderTarget(renderTarget); - } + map.Add(TextRange(s1, s2), value); + } + if(s2 + void UpdateOverlappedMap(Dictionary& map, vint start, vint length, const T& value) { - if(length==0) return true; - if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + vint end=start+length; + for(vint i=map.Count()-1;i>=0;i--) { - if (auto inlineObject = paragraph->ResetInlineObject(start, length)) + TextRange key=map.Keys()[i]; + if(key.startGetRenderer(); - if(renderer) - { - renderer->SetRenderTarget(0); - } - } - return true; + map.Set(key, value); } } - return false; } - - vint GetHeight()override + + template + void DefragmentMap(Dictionary& map) { - PrepareUniscribeData(); - return paragraph->bounds.Height(); - } + vint lastIndex=map.Count()-1; + T lastValue=map.Values()[lastIndex]; + for(vint i=map.Count()-2;i>=-1;i--) + { + if(i==-1 || map.Values()[i]!=lastValue) + { + if(lastIndex-i>0) + { + vint start=map.Keys()[i+1].start; + vint end=map.Keys()[lastIndex].end; + TextRange key(start, end); - bool OpenCaret(vint _caret, Color _color, bool _frontSide)override + for(vint j=lastIndex;j>i;j--) + { + map.Remove(map.Keys()[j]); + } + map.Add(key, lastValue); + } + lastIndex=i; + if(i!=-1) + { + lastValue=map.Values()[i]; + } + } + } + } + + template + void SetMap(Dictionary& map, vint start, vint length, const T& value) { - if(!IsValidCaret(_caret)) return false; - if(caret!=-1) CloseCaret(); - caret=_caret; - caretColor=_color; - caretFrontSide=_frontSide; - caretPen=GetWindowsGDIResourceManager()->CreateGdiPen(caretColor); - return true; + CutMap(map, start, length); + UpdateOverlappedMap(map, start, length, value); + DefragmentMap(map); } - bool CloseCaret()override + template + bool GetMap(Dictionary& map, vint textPosition, T& value) { - if(caret==-1) return false; - caret=-1; - GetWindowsGDIResourceManager()->DestroyGdiPen(caretColor); - caretPen=0; - return true; + vint start=0; + vint end=map.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + TextRange key=map.Keys()[middle]; + if(textPosition=key.end) + { + start=middle+1; + } + else + { + value=map.Values()[middle]; + return true; + } + } + return false; } - void Render(Rect bounds)override +/*********************************************************************** +WindowsDirect2DParagraph (Layout Retriving) +***********************************************************************/ + + void PrepareFormatData() { - PrepareUniscribeData(); + if(!formatDataAvailable) + { + formatDataAvailable=true; + { + UINT32 lineCount=0; + textLayout->GetLineMetrics(NULL, 0, &lineCount); + lineMetrics.Resize(lineCount); + if(lineCount>0) + { + textLayout->GetLineMetrics(&lineMetrics[0], lineCount, &lineCount); + } - paragraphDC = renderTarget->GetDC(); - paragraphOffset = bounds.LeftTop(); - paragraph->Render(this, true); - paragraph->Render(this, false); - paragraphDC = 0; + lineStarts.Resize(lineCount); + lineTops.Resize(lineCount); + vint start=0; + FLOAT top=0; + for(vint i=0;iGetDC(); - dc->SetPen(caretPen); - dc->MoveTo(x-1, y1); - dc->LineTo(x-1, y2); - dc->MoveTo(x, y1); - dc->LineTo(x, y2); + lineTops[i]=top; + top+=metrics.height; + } + } + { + UINT32 clusterCount=0; + textLayout->GetClusterMetrics(NULL, 0, &clusterCount); + clusterMetrics.Resize(clusterCount); + if(clusterCount>0) + { + textLayout->GetClusterMetrics(&clusterMetrics[0], clusterCount, &clusterCount); + } + } + { + vint textPos=0; + hitTestMetrics.Resize(clusterMetrics.Count()); + for(vint i=0;iHitTestTextPosition((UINT32)textPos, FALSE, &x, &y, &metrics); + textPos+=metrics.length; + } + } + { + charHitTestMap.Resize(paragraphText.Length()); + for(vint i=0;iGetCaret(comparingCaret, position, preferFrontSide); - } +/*********************************************************************** +WindowsDirect2DParagraph (Initialization) +***********************************************************************/ - Rect GetCaretBounds(vint caret, bool frontSide)override + WindowsDirect2DParagraph(IGuiGraphicsLayoutProvider* _provider, const WString& _text, IGuiGraphicsRenderTarget* _renderTarget, IGuiGraphicsParagraphCallback* _paragraphCallback) + :provider(_provider) + ,dwriteFactory(GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()) + ,renderTarget(dynamic_cast(_renderTarget)) + ,paragraphText(_text) + ,textLayout(nullptr) + ,wrapLine(true) + ,maxWidth(-1) + ,caret(-1) + ,caretFrontSide(false) + ,caretBrush(0) + ,formatDataAvailable(false) + ,paragraphCallback(_paragraphCallback) { - PrepareUniscribeData(); - return paragraph->GetCaretBounds(caret, frontSide); + FontProperties defaultFont= windows::GetWindowsNativeController()->ResourceService()->GetDefaultFont(); + Direct2DTextFormatPackage* package=GetWindowsDirect2DResourceManager()->CreateDirect2DTextFormat(defaultFont); + defaultTextColor=renderTarget->CreateDirect2DBrush(Color(0, 0, 0)); + usedColors.Add(Color(0, 0, 0)); + + IDWriteTextLayout* rawTextLayout=0; + HRESULT hr=dwriteFactory->CreateTextLayout( + _text.Buffer(), + (int)_text.Length(), + package->textFormat.Obj(), + 0, + 0, + &rawTextLayout); + if(!FAILED(hr)) + { + textLayout=rawTextLayout; + textLayout->SetMaxWidth(65536); + textLayout->SetWordWrapping(DWRITE_WORD_WRAPPING_WRAP); + } + graphicsElements.Add(TextRange(0, _text.Length()), nullptr); + backgroundColors.Add(TextRange(0, _text.Length()), Color(0, 0, 0, 0)); + + GetWindowsDirect2DResourceManager()->DestroyDirect2DTextFormat(defaultFont); } - vint GetCaretFromPoint(Point point)override + ~WindowsDirect2DParagraph() { - PrepareUniscribeData(); - return paragraph->GetCaretFromPoint(point); + CloseCaret(); + for (auto color : usedColors) + { + renderTarget->DestroyDirect2DBrush(color); + } } - Nullable GetInlineObjectFromPoint(Point point, vint& start, vint& length)override + IGuiGraphicsLayoutProvider* GetProvider()override { - PrepareUniscribeData(); - return paragraph->GetInlineObjectFromPoint(point, start, length); + return provider; } - vint GetNearestCaretFromTextPos(vint textPos, bool frontSide)override + IGuiGraphicsRenderTarget* GetRenderTarget()override { - PrepareUniscribeData(); - return paragraph->GetNearestCaretFromTextPos(textPos, frontSide); + return renderTarget; } - bool IsValidCaret(vint caret)override + Point GetParagraphOffset()override { - PrepareUniscribeData(); - return paragraph->IsValidCaret(caret); + return paragraphOffset; } - bool IsValidTextPos(vint textPos)override + IGuiGraphicsParagraphCallback* GetParagraphCallback()override { - PrepareUniscribeData(); - return paragraph->IsValidTextPos(textPos); + return paragraphCallback; } - }; /*********************************************************************** -WindowsGDILayoutProvider +WindowsDirect2DParagraph (Formatting) ***********************************************************************/ - Ptr WindowsGDILayoutProvider::CreateParagraph(const WString& text, IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback) - { - return new WindowsGDIParagraph(this, text, renderTarget, callback); - } - } - } -} - -/*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSRENDERERSWINDOWSGDI.CPP -***********************************************************************/ + bool GetWrapLine()override + { + return wrapLine; + } -namespace vl -{ - namespace presentation - { - namespace elements_windows_gdi - { - using namespace windows; - using namespace collections; - -/*********************************************************************** -GuiSolidBorderElementRenderer -***********************************************************************/ - - void GuiFocusRectangleElementRenderer::InitializeInternal() - { - auto resourceManager = GetWindowsGDIResourceManager(); - pen = resourceManager->GetFocusRectanglePen(); - } - - void GuiFocusRectangleElementRenderer::FinalizeInternal() - { - } - - void GuiFocusRectangleElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } - - void GuiFocusRectangleElementRenderer::Render(Rect bounds) - { - int originRop2 = renderTarget->GetDC()->SetRasterOperation(R2_XORPEN); - renderTarget->GetDC()->SetPen(pen); - renderTarget->GetDC()->Rectangle(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1); - renderTarget->GetDC()->SetRasterOperation(originRop2); - } - - void GuiFocusRectangleElementRenderer::OnElementStateChanged() - { - } - -/*********************************************************************** -GuiSolidBorderElementRenderer -***********************************************************************/ - - void GuiSolidBorderElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - oldColor=element->GetColor(); - pen=resourceManager->CreateGdiPen(oldColor); - brush=resourceManager->CreateGdiBrush(Color(0, 0, 0, 0)); - } + void SetWrapLine(bool value)override + { + if(wrapLine!=value) + { + wrapLine=value; + textLayout->SetWordWrapping(value?DWRITE_WORD_WRAPPING_WRAP:DWRITE_WORD_WRAPPING_NO_WRAP); + formatDataAvailable=false; + } + } - void GuiSolidBorderElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor); - resourceManager->DestroyGdiBrush(Color(0, 0, 0, 0)); - } + vint GetMaxWidth()override + { + return maxWidth; + } - void GuiSolidBorderElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + void SetMaxWidth(vint value)override + { + if(maxWidth!=value) + { + maxWidth=value; + textLayout->SetMaxWidth(value==-1?65536:(FLOAT)value); + formatDataAvailable=false; + } + } - void GuiSolidBorderElementRenderer::Render(Rect bounds) - { - if(oldColor.a>0) + Alignment GetParagraphAlignment()override { - renderTarget->GetDC()->SetBrush(brush); - renderTarget->GetDC()->SetPen(pen); - auto shape = element->GetShape(); + switch(textLayout->GetTextAlignment()) + { + case DWRITE_TEXT_ALIGNMENT_LEADING: + return Alignment::Left; + case DWRITE_TEXT_ALIGNMENT_CENTER: + return Alignment::Center; + case DWRITE_TEXT_ALIGNMENT_TRAILING: + return Alignment::Right; + default: + return Alignment::Left; + } + } - switch(shape.shapeType) + void SetParagraphAlignment(Alignment value)override + { + formatDataAvailable=false; + switch(value) { - case ElementShapeType::Rectangle: - renderTarget->GetDC()->Rectangle(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); + case Alignment::Left: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING); break; - case ElementShapeType::Ellipse: - renderTarget->GetDC()->Ellipse(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); + case Alignment::Center: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER); break; - case ElementShapeType::RoundRect: - renderTarget->GetDC()->RoundRect(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1, shape.radiusX * 2, shape.radiusY * 2); + case Alignment::Right: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING); break; } } - } - void GuiSolidBorderElementRenderer::OnElementStateChanged() - { - Color color=element->GetColor(); - if(oldColor!=color) + bool SetFont(vint start, vint length, const WString& value)override { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor); - oldColor=color; - pen=resourceManager->CreateGdiPen(oldColor); + if(length==0) return true; + formatDataAvailable=false; + + DWRITE_TEXT_RANGE range; + range.startPosition=(int)start; + range.length=(int)length; + HRESULT hr=textLayout->SetFontFamilyName(value.Buffer(), range); + return !FAILED(hr); } - } -/*********************************************************************** -Gui3DBorderElementRenderer -***********************************************************************/ + bool SetSize(vint start, vint length, vint value)override + { + if(length==0) return true; + formatDataAvailable=false; - void Gui3DBorderElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - oldColor1=element->GetColor1(); - oldColor2=element->GetColor2(); - pen1=resourceManager->CreateGdiPen(oldColor1); - pen2=resourceManager->CreateGdiPen(oldColor2); - } + DWRITE_TEXT_RANGE range; + range.startPosition=(int)start; + range.length=(int)length; + HRESULT hr=textLayout->SetFontSize((FLOAT)value, range); + return !FAILED(hr); + } - void Gui3DBorderElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor1); - resourceManager->DestroyGdiPen(oldColor2); - } + bool SetStyle(vint start, vint length, TextStyle value)override + { + if(length==0) return true; + formatDataAvailable=false; - void Gui3DBorderElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + DWRITE_TEXT_RANGE range; + range.startPosition=(int)start; + range.length=(int)length; + HRESULT hr=S_OK; - void Gui3DBorderElementRenderer::Render(Rect bounds) - { - if(oldColor1.a>0) - { - renderTarget->GetDC()->SetPen(pen1); - renderTarget->GetDC()->MoveTo(bounds.x1, bounds.y1); - renderTarget->GetDC()->LineTo(bounds.x2, bounds.y1); - renderTarget->GetDC()->MoveTo(bounds.x1, bounds.y1); - renderTarget->GetDC()->LineTo(bounds.x1, bounds.y2); - } - if(oldColor2.a>0) - { - renderTarget->GetDC()->SetPen(pen2); - renderTarget->GetDC()->MoveTo(bounds.x2-1, bounds.y2-1); - renderTarget->GetDC()->LineTo(bounds.x1, bounds.y2-1); - renderTarget->GetDC()->MoveTo(bounds.x2-1, bounds.y2-1); - renderTarget->GetDC()->LineTo(bounds.x2-1, bounds.y1); - } - } + hr=textLayout->SetFontStyle(value&Italic?DWRITE_FONT_STYLE_ITALIC:DWRITE_FONT_STYLE_NORMAL, range); + if(FAILED(hr)) return false; + hr=textLayout->SetFontWeight(value&Bold?DWRITE_FONT_WEIGHT_BOLD:DWRITE_FONT_WEIGHT_NORMAL, range); + if(FAILED(hr)) return false; + hr=textLayout->SetUnderline(value&Underline?TRUE:FALSE, range); + if(FAILED(hr)) return false; + hr=textLayout->SetStrikethrough(value&Strikeline?TRUE:FALSE, range); + if(FAILED(hr)) return false; - void Gui3DBorderElementRenderer::OnElementStateChanged() - { - Color color1=element->GetColor1(); - if(oldColor1!=color1) - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor1); - oldColor1=color1; - pen1=resourceManager->CreateGdiPen(oldColor1); + return true; } - Color color2=element->GetColor2(); - if(oldColor2!=color2) + bool SetColor(vint start, vint length, Color value)override { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor2); - oldColor2=color2; - pen2=resourceManager->CreateGdiPen(oldColor2); - } - } - -/*********************************************************************** -Gui3DSplitterElementRenderer -***********************************************************************/ + if(length==0) return true; + formatDataAvailable=false; - void Gui3DSplitterElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - oldColor1=element->GetColor1(); - oldColor2=element->GetColor2(); - pen1=resourceManager->CreateGdiPen(oldColor1); - pen2=resourceManager->CreateGdiPen(oldColor2); - } + ID2D1SolidColorBrush* brush=renderTarget->CreateDirect2DBrush(value); + usedColors.Add(value); - void Gui3DSplitterElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor1); - resourceManager->DestroyGdiPen(oldColor2); - } + DWRITE_TEXT_RANGE range; + range.startPosition=(int)start; + range.length=(int)length; + HRESULT hr=textLayout->SetDrawingEffect(brush, range); + return !FAILED(hr); + } - void Gui3DSplitterElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + bool SetBackgroundColor(vint start, vint length, Color value)override + { + SetMap(backgroundColors, start, length, value); + return true; + } - void Gui3DSplitterElementRenderer::Render(Rect bounds) - { - Point p11, p12, p21, p22; - switch(element->GetDirection()) + bool SetInlineObject(vint start, vint length, const InlineObjectProperties& properties)override { - case Gui3DSplitterElement::Horizontal: + if(inlineElements.Keys().Contains(properties.backgroundImage.Obj())) { - vint y=bounds.y1+bounds.Height()/2-1; - p11=Point(bounds.x1, y); - p12=Point(bounds.x2, y); - p21=Point(bounds.x1, y+1); - p22=Point(bounds.x2, y+1); + return false; } - break; - case Gui3DSplitterElement::Vertical: + for(vint i=0;i inlineObject=inlineElements.Values().Get(i); + if(startGetStart()+inlineObject->GetLength() && inlineObject->GetStart() inlineObject=new WindowsDirect2DElementInlineObject(properties, this, start, length); + DWRITE_TEXT_RANGE range; + range.startPosition=(int)start; + range.length=(int)length; + HRESULT hr=textLayout->SetInlineObject(inlineObject.Obj(), range); + if(!FAILED(hr)) + { + if (properties.backgroundImage) + { + IGuiGraphicsRenderer* renderer=properties.backgroundImage->GetRenderer(); + if(renderer) + { + renderer->SetRenderTarget(renderTarget); + } + inlineElements.Add(properties.backgroundImage.Obj(), inlineObject); + } + SetMap(graphicsElements, start, length, properties.backgroundImage.Obj()); + return true; + } + else + { + return false; } - break; - } - if(oldColor1.a>0) - { - renderTarget->GetDC()->SetPen(pen1); - renderTarget->GetDC()->MoveTo(p11.x, p11.y); - renderTarget->GetDC()->LineTo(p12.x, p12.y); - } - if(oldColor2.a>0) - { - renderTarget->GetDC()->SetPen(pen2); - renderTarget->GetDC()->MoveTo(p21.x, p21.y); - renderTarget->GetDC()->LineTo(p22.x, p22.y); } - } - void Gui3DSplitterElementRenderer::OnElementStateChanged() - { - Color color1=element->GetColor1(); - if(oldColor1!=color1) + bool ResetInlineObject(vint start, vint length)override { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor1); - oldColor1=color1; - pen1=resourceManager->CreateGdiPen(oldColor1); + IGuiGraphicsElement* element=0; + if(GetMap(graphicsElements, start, element) && element) + { + ComPtr inlineObject=inlineElements[element]; + DWRITE_TEXT_RANGE range; + range.startPosition=(int)inlineObject->GetStart(); + range.length=(int)inlineObject->GetLength(); + HRESULT hr=textLayout->SetInlineObject(NULL, range); + if(!FAILED(hr)) + { + formatDataAvailable=false; + inlineElements.Remove(element); + SetMap(graphicsElements, inlineObject->GetStart(), inlineObject->GetLength(), (IGuiGraphicsElement*)0); + return true; + } + else + { + return false; + } + } + return false; } - Color color2=element->GetColor2(); - if(oldColor2!=color2) + vint GetHeight()override { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor2); - oldColor2=color2; - pen2=resourceManager->CreateGdiPen(oldColor2); + DWRITE_TEXT_METRICS metrics; + textLayout->GetMetrics(&metrics); + return (vint)ceil(metrics.height); } - } /*********************************************************************** -GuiSolidBackgroundElementRenderer +WindowsDirect2DParagraph (IRenderingCallback) ***********************************************************************/ - void GuiSolidBackgroundElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - oldColor=element->GetColor(); - pen=resourceManager->CreateGdiPen(oldColor); - brush=resourceManager->CreateGdiBrush(oldColor); - } - - void GuiSolidBackgroundElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor); - resourceManager->DestroyGdiBrush(oldColor); - } - - void GuiSolidBackgroundElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } - - void GuiSolidBackgroundElementRenderer::Render(Rect bounds) - { - if(oldColor.a>0) + Color GetBackgroundColor(vint textPosition)override { - renderTarget->GetDC()->SetPen(pen); - renderTarget->GetDC()->SetBrush(brush); - auto shape = element->GetShape(); - - switch(shape.shapeType) + Color color; + if(GetMap(backgroundColors, textPosition, color)) { - case ElementShapeType::Rectangle: - renderTarget->GetDC()->FillRect(bounds.Left(), bounds.Top(), bounds.Right(), bounds.Bottom()); - break; - case ElementShapeType::Ellipse: - renderTarget->GetDC()->Ellipse(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); - break; - case ElementShapeType::RoundRect: - renderTarget->GetDC()->RoundRect(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1, shape.radiusX * 2, shape.radiusY * 2); - break; + return color; + } + else + { + return Color(0, 0, 0, 0); } } - } - void GuiSolidBackgroundElementRenderer::OnElementStateChanged() - { - Color color=element->GetColor(); - if(oldColor!=color) + IWindowsDirect2DRenderTarget* GetDirect2DRenderTarget()override { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldColor); - resourceManager->DestroyGdiBrush(oldColor); - oldColor=color; - pen=resourceManager->CreateGdiPen(oldColor); - brush=resourceManager->CreateGdiBrush(oldColor); + return renderTarget; } - } /*********************************************************************** -GuiGradientBackgroundElementRenderer +WindowsDirect2DParagraph (Rendering) ***********************************************************************/ - void GuiGradientBackgroundElementRenderer::InitializeInternal() - { - } - - void GuiGradientBackgroundElementRenderer::FinalizeInternal() - { - } + bool OpenCaret(vint _caret, Color _color, bool _frontSide)override + { + if(!IsValidCaret(_caret)) return false; + if(caret!=-1) CloseCaret(); + caret=_caret; + caretColor=_color; + caretFrontSide=_frontSide; + caretBrush=renderTarget->CreateDirect2DBrush(caretColor); + return true; + } - void GuiGradientBackgroundElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + bool CloseCaret()override + { + if(caret==-1) return false; + caret=-1; + renderTarget->DestroyDirect2DBrush(caretColor); + caretBrush=0; + return true; + } - void GuiGradientBackgroundElementRenderer::Render(Rect bounds) - { - Color color1 = element->GetColor1(); - Color color2 = element->GetColor2(); - if (color1.a > 0 || color2.a > 0) + struct BackgroundRenderer { - Ptr targetRegion, oldRegion, newRegion; - auto shape = element->GetShape(); - switch (shape.shapeType) - { - case ElementShapeType::Ellipse: - targetRegion = new WinRegion(bounds.x1, bounds.y1, bounds.x2 + 1, bounds.y2 + 1, false); - break; - case ElementShapeType::RoundRect: - targetRegion = new WinRegion(bounds.x1, bounds.y1, bounds.x2 + 1, bounds.y2 + 1, shape.radiusX * 2, shape.radiusY * 2); - break; - } + IWindowsDirect2DRenderTarget* renderTarget = nullptr; + ID2D1SolidColorBrush* lastBackgroundBrush = nullptr; + FLOAT lbx1, lby1, lbx2, lby2; - if (targetRegion) + void RenderBackground() { - oldRegion = renderTarget->GetDC()->GetClipRegion(); - newRegion = new WinRegion(oldRegion, targetRegion, RGN_AND); - renderTarget->GetDC()->ClipRegion(newRegion); + if (lastBackgroundBrush) + { + renderTarget->GetDirect2DRenderTarget()->FillRectangle( + D2D1::RectF(lbx1, lby1, lbx2, lby2), + lastBackgroundBrush + ); + lastBackgroundBrush = nullptr; + } } - switch (element->GetDirection()) + void SubmitBackground(ID2D1SolidColorBrush* brush, FLOAT x1, FLOAT y1, FLOAT x2, FLOAT y2) { - case GuiGradientBackgroundElement::Horizontal: - case GuiGradientBackgroundElement::Vertical: + if (lastBackgroundBrush) { - TRIVERTEX vertices[2]; - GRADIENT_RECT rectangles[1]; - - vertices[0].x = (int)bounds.x1; - vertices[0].y = (int)bounds.y1; - vertices[1].x = (int)bounds.x2; - vertices[1].y = (int)bounds.y2; - - rectangles[0].UpperLeft = 0; - rectangles[0].LowerRight = 1; - - vertices[0].Red = color1.r << 8; - vertices[0].Green = color1.g << 8; - vertices[0].Blue = color1.b << 8; - vertices[0].Alpha = color1.a << 8; - - vertices[1].Red = color2.r << 8; - vertices[1].Green = color2.g << 8; - vertices[1].Blue = color2.b << 8; - vertices[1].Alpha = color2.a << 8; - - switch (element->GetDirection()) + if (lastBackgroundBrush != brush) { - case GuiGradientBackgroundElement::Horizontal: - renderTarget->GetDC()->GradientRectH(vertices, sizeof(vertices) / sizeof(*vertices), rectangles, sizeof(rectangles) / sizeof(*rectangles)); - break; - case GuiGradientBackgroundElement::Vertical: - renderTarget->GetDC()->GradientRectV(vertices, sizeof(vertices) / sizeof(*vertices), rectangles, sizeof(rectangles) / sizeof(*rectangles)); - break; + RenderBackground(); + } + else + { + FLOAT yc = (y1 + y2) / 2; + if (yclby2) + { + RenderBackground(); + } } } - break; - case GuiGradientBackgroundElement::Slash: - case GuiGradientBackgroundElement::Backslash: + + if (lastBackgroundBrush) { - TRIVERTEX vertices[4]; - GRADIENT_TRIANGLE triangles[2]; + if (lbx1 > x1) lbx1 = x1; + if (lby1 > y1) lby1 = y1; + if (lbx2 < x2) lbx2 = x2; + if (lby2 < y2) lby2 = y2; + } + else + { + lastBackgroundBrush = brush; + lbx1 = x1; + lby1 = y1; + lbx2 = x2; + lby2 = y2; + } + } + }; - switch (element->GetDirection()) + void Render(Rect bounds)override + { + paragraphOffset = bounds.LeftTop(); + PrepareFormatData(); + { + BackgroundRenderer backgroundRenderer; + backgroundRenderer.renderTarget = renderTarget; + + for (vint i = 0; i < backgroundColors.Count(); i++) + { + TextRange key = backgroundColors.Keys()[i]; + Color color = backgroundColors.Values()[i]; + if (color.a > 0) { - case GuiGradientBackgroundElement::Slash: - vertices[0].x = (int)bounds.x2; - vertices[0].y = (int)bounds.y1; - vertices[1].x = (int)bounds.x1; - vertices[1].y = (int)bounds.y1; - vertices[2].x = (int)bounds.x2; - vertices[2].y = (int)bounds.y2; - vertices[3].x = (int)bounds.x1; - vertices[3].y = (int)bounds.y2; - break; - case GuiGradientBackgroundElement::Backslash: - vertices[0].x = (int)bounds.x1; - vertices[0].y = (int)bounds.y1; - vertices[1].x = (int)bounds.x1; - vertices[1].y = (int)bounds.y2; - vertices[2].x = (int)bounds.x2; - vertices[2].y = (int)bounds.y1; - vertices[3].x = (int)bounds.x2; - vertices[3].y = (int)bounds.y2; - break; - } + ID2D1SolidColorBrush* brush = renderTarget->CreateDirect2DBrush(color); - triangles[0].Vertex1 = 0; - triangles[0].Vertex2 = 1; - triangles[0].Vertex3 = 2; - triangles[1].Vertex1 = 1; - triangles[1].Vertex2 = 2; - triangles[1].Vertex3 = 3; + vint start = key.start; + if (start < 0) + { + start = 0; + } - vertices[0].Red = color1.r << 8; - vertices[0].Green = color1.g << 8; - vertices[0].Blue = color1.b << 8; - vertices[0].Alpha = color1.a << 8; + while (start < charHitTestMap.Count() && start < key.end) + { + vint index = charHitTestMap[start]; + DWRITE_HIT_TEST_METRICS& hitTest = hitTestMetrics[index]; - vertices[1].Red = ((color1.r + color2.r) / 2) << 8; - vertices[1].Green = ((color1.g + color2.g) / 2) << 8; - vertices[1].Blue = ((color1.b + color2.b) / 2) << 8; - vertices[1].Alpha = ((color1.a + color2.a) / 2) << 8; + FLOAT x1 = hitTest.left + (FLOAT)bounds.x1; + FLOAT y1 = hitTest.top + (FLOAT)bounds.y1; + FLOAT x2 = x1 + hitTest.width; + FLOAT y2 = y1 + hitTest.height; - vertices[2].Red = ((color1.r + color2.r) / 2) << 8; - vertices[2].Green = ((color1.g + color2.g) / 2) << 8; - vertices[2].Blue = ((color1.b + color2.b) / 2) << 8; - vertices[2].Alpha = ((color1.a + color2.a) / 2) << 8; + x1 -= 0.5f; + y1 -= 0.0f; + x2 += 0.5f; + y2 += 0.5f; - vertices[3].Red = color2.r << 8; - vertices[3].Green = color2.g << 8; - vertices[3].Blue = color2.b << 8; - vertices[3].Alpha = color2.a << 8; + backgroundRenderer.SubmitBackground(brush, x1, y1, x2, y2); + start = hitTest.textPosition + hitTest.length; + } - renderTarget->GetDC()->GradientTriangle(vertices, sizeof(vertices) / sizeof(*vertices), triangles, sizeof(triangles) / sizeof(*triangles)); + renderTarget->DestroyDirect2DBrush(color); + } } - break; - } - if (targetRegion) - { - renderTarget->GetDC()->ClipRegion(oldRegion); + backgroundRenderer.RenderBackground(); } - } - } - - void GuiGradientBackgroundElementRenderer::OnElementStateChanged() - { - } - -/*********************************************************************** -GuiSolidLabelElementRenderer -***********************************************************************/ - - void GuiInnerShadowElementRenderer::InitializeInternal() - { - } - - void GuiInnerShadowElementRenderer::FinalizeInternal() - { - } - - void GuiInnerShadowElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } - GuiInnerShadowElementRenderer::GuiInnerShadowElementRenderer() - { - } + renderTarget->GetDirect2DRenderTarget()->DrawTextLayout( + D2D1::Point2F((FLOAT)bounds.Left(), (FLOAT)bounds.Top()), + textLayout.Obj(), + defaultTextColor, + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP); - void GuiInnerShadowElementRenderer::Render(Rect bounds) - { - } + if (caret != -1) + { + Rect caretBounds = GetCaretBounds(caret, caretFrontSide); + vint x = caretBounds.x1 + bounds.x1; + vint y1 = caretBounds.y1 + bounds.y1; + vint y2 = y1 + caretBounds.Height(); - void GuiInnerShadowElementRenderer::OnElementStateChanged() - { - } + renderTarget->GetDirect2DRenderTarget()->DrawLine( + D2D1::Point2F((FLOAT)x - 0.5f, (FLOAT)y1 + 0.5f), + D2D1::Point2F((FLOAT)x - 0.5f, (FLOAT)y2 + 0.5f), + caretBrush + ); + renderTarget->GetDirect2DRenderTarget()->DrawLine( + D2D1::Point2F((FLOAT)x + 0.5f, (FLOAT)y1 + 0.5f), + D2D1::Point2F((FLOAT)x + 0.5f, (FLOAT)y2 + 0.5f), + caretBrush + ); + } + } /*********************************************************************** -GuiSolidLabelElementRenderer +WindowsDirect2DParagraph (Caret Helper) ***********************************************************************/ - void GuiSolidLabelElementRenderer::UpdateMinSize() - { - if(renderTarget) + void GetLineIndexFromTextPos(vint textPos, vint& frontLineIndex, vint& backLineIndex) { - renderTarget->GetDC()->SetFont(font); - SIZE size={0}; - const WString& text=element->GetText(); - if(element->GetWrapLine()) + frontLineIndex=-1; + backLineIndex=-1; + vint start=0; + vint end=lineMetrics.Count()-1; + while(start<=end) { - if(element->GetWrapLineHeightCalculation()) + vint middle=(start+end)/2; + DWRITE_LINE_METRICS& metrics=lineMetrics[middle]; + vint lineStart=lineStarts[middle]; + vint lineEnd=lineStart+metrics.length-metrics.newlineLength; + + if(textPosGetDC()->MeasureBuffer(L" "); - } - else - { - size=renderTarget->GetDC()->MeasureWrapLineString(text, oldMaxWidth); - } + end=middle-1; + } + else if(textPos>lineEnd) + { + start=middle+1; + } + else if(textPos==lineStart && middle!=0) + { + DWRITE_LINE_METRICS& anotherLine=lineMetrics[middle-1]; + frontLineIndex=anotherLine.newlineLength==0?middle-1:middle; + backLineIndex=middle; + return; + } + else if(textPos==lineEnd && middle!=lineMetrics.Count()-1) + { + frontLineIndex=middle; + backLineIndex=metrics.newlineLength==0?middle+1:middle; + return; + } + else + { + frontLineIndex=middle; + backLineIndex=middle; + return; } } - else - { - size=text.Length()==0 - ?renderTarget->GetDC()->MeasureBuffer(L" ") - :renderTarget->GetDC()->MeasureString(text) - ; - } - minSize=Size((element->GetEllipse()?0:size.cx), size.cy); } - else + + Pair GetLineYRange(vint lineIndex) { - minSize=Size(); + DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; + FLOAT top=lineTops[lineIndex]; + return Pair(top, top+line.height); } - } - - void GuiSolidLabelElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - oldFont=element->GetFont(); - font=resourceManager->CreateGdiFont(oldFont); - } - void GuiSolidLabelElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiFont(oldFont); - } - - void GuiSolidLabelElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - UpdateMinSize(); - } - - GuiSolidLabelElementRenderer::GuiSolidLabelElementRenderer() - :oldMaxWidth(-1) - { - } - - void GuiSolidLabelElementRenderer::Render(Rect bounds) - { - Color color=element->GetColor(); - if(color.a>0) + vint GetLineIndexFromY(vint y) { - renderTarget->GetDC()->SetFont(font); - renderTarget->GetDC()->SetTextColor(RGB(color.r, color.g, color.b)); - - UINT format=DT_NOPREFIX; - RECT rect; - rect.left=(int)bounds.Left(); - rect.top=(int)bounds.Top(); - rect.right=(int)bounds.Right(); - rect.bottom=(int)bounds.Bottom(); - - if(element->GetMultiline() || element->GetWrapLine()) - { - format|=DT_EDITCONTROL; - } - else - { - format|=DT_SINGLELINE; - switch(element->GetVerticalAlignment()) - { - case Alignment::Top: - format|=DT_TOP; - break; - case Alignment::Center: - format|=DT_VCENTER; - break; - case Alignment::Bottom: - format|=DT_BOTTOM; - break; - } - } - - switch(element->GetHorizontalAlignment()) + if(paragraphText.Length()==0) return 0; + FLOAT minY=0; + FLOAT maxY=0; { - case Alignment::Left: - format|=DT_LEFT; - break; - case Alignment::Center: - format|=DT_CENTER; - break; - case Alignment::Right: - format|=DT_RIGHT; - break; + minY=hitTestMetrics[0].top; + DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[hitTestMetrics.Count()-1]; + maxY=hitTest.top+hitTest.height; } - if(element->GetWrapLine()) + if(yGetEllipse()) + else if(y>=maxY) { - format|=DT_END_ELLIPSIS; + return lineMetrics.Count()-1; } - renderTarget->GetDC()->DrawString(rect, element->GetText(), format); - if(oldMaxWidth!=bounds.Width()) + + vint start=0; + vint end=lineMetrics.Count()-1; + while(start<=end) { - oldMaxWidth=bounds.Width(); - UpdateMinSize(); + vint middle=(start+end)/2; + Pair yRange=GetLineYRange(middle); + minY=yRange.key; + maxY=yRange.value; + + if(y=maxY) + { + start=middle+1; + } + else + { + return middle; + } } + return -1; } - } - void GuiSolidLabelElementRenderer::OnElementStateChanged() - { - FontProperties fontProperties=element->GetFont(); - if(oldFont!=fontProperties) + vint GetCaretFromXWithLine(vint x, vint lineIndex) { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiFont(oldFont); - oldFont=fontProperties; - font=resourceManager->CreateGdiFont(oldFont); - } - UpdateMinSize(); - } - -/*********************************************************************** -GuiImageFrameElementRenderer -***********************************************************************/ + DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; + vint lineStart=lineStarts[lineIndex]; + vint lineEnd=lineStart+line.length-line.newlineLength; - void GuiImageFrameElementRenderer::UpdateBitmap() - { - if(element->GetImage()) - { - auto resourceManager=GetWindowsGDIResourceManager(); - INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); - bitmap=resourceManager->GetBitmap(frame, element->GetEnabled()); + FLOAT minLineX=0; + FLOAT maxLineX=0; - if (element->GetStretch()) - { - minSize=Size(0,0); - } - else + for(vint i=lineStart;iGetSize(); - } - } - else - { - bitmap=0; - minSize=Size(0, 0); - } - } - - void GuiImageFrameElementRenderer::InitializeInternal() - { - UpdateBitmap(); - } - - void GuiImageFrameElementRenderer::FinalizeInternal() - { - } - - void GuiImageFrameElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + vint index=charHitTestMap[i]; + DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[index]; + FLOAT minX=hitTest.left; + FLOAT maxX=minX+hitTest.width; - GuiImageFrameElementRenderer::GuiImageFrameElementRenderer() - { - } + if(minLineX>minX) minLineX=minX; + if(maxLineXGetDC(); - Rect source(0, 0, minSize.x, minSize.y); - Rect destination; - if(element->GetStretch()) - { - INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); - source = Rect(Point(0, 0), frame->GetSize()); - destination=Rect(bounds.x1, bounds.y1, bounds.x2, bounds.y2); - } - else - { - vint x=0; - vint y=0; - switch(element->GetHorizontalAlignment()) - { - case Alignment::Left: - x=bounds.Left(); - break; - case Alignment::Center: - x=bounds.Left()+(bounds.Width()-minSize.x)/2; - break; - case Alignment::Right: - x=bounds.Right()-minSize.x; - break; - } - switch(element->GetVerticalAlignment()) - { - case Alignment::Top: - y=bounds.Top(); - break; - case Alignment::Center: - y=bounds.Top()+(bounds.Height()-minSize.y)/2; - break; - case Alignment::Bottom: - y=bounds.Bottom()-minSize.y; - break; - } - destination=Rect(x, y, x+minSize.x, y+minSize.y); - } - if(element->GetImage()->GetFormat()==INativeImage::Gif && element->GetFrameIndex()>0) - { - auto resourceManager=GetWindowsGDIResourceManager(); - vint max=element->GetFrameIndex(); - for(vint i=0;i<=max;i++) + if(minX<=x && x frameBitmap=resourceManager->GetBitmap(element->GetImage()->GetFrame(i), element->GetEnabled()); - dc->Draw( - destination.Left(), destination.Top(), destination.Width(), destination.Height(), - frameBitmap, - source.Left(), source.Top(), source.Width(), source.Height() - ); + DWRITE_CLUSTER_METRICS& cluster=clusterMetrics[index]; + FLOAT d1=x-minX; + FLOAT d2=maxX-x; + if(d1<=d2) + { + return cluster.isRightToLeft?i+hitTest.length:i; + } + else + { + return cluster.isRightToLeft?i:i+hitTest.length; + } } + i+=hitTest.length; } - else - { - dc->Draw( - destination.Left(), destination.Top(), destination.Width(), destination.Height(), - bitmap, - source.Left(), source.Top(), source.Width(), source.Height() - ); - } + + if(x=maxLineX) return lineEnd; + return lineStart; } - } - - void GuiImageFrameElementRenderer::OnElementStateChanged() - { - UpdateBitmap(); - } /*********************************************************************** -GuiPolygonElementRenderer +WindowsDirect2DParagraph (Caret) ***********************************************************************/ - void GuiPolygonElementRenderer::InitializeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - pen=resourceManager->CreateGdiPen(oldPenColor); - brush=resourceManager->CreateGdiBrush(oldBrushColor); - } - - void GuiPolygonElementRenderer::FinalizeInternal() - { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldPenColor); - resourceManager->DestroyGdiBrush(oldBrushColor); - } - - void GuiPolygonElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) - { - } + vint GetCaret(vint comparingCaret, CaretRelativePosition position, bool& preferFrontSide)override + { + PrepareFormatData(); + if(position==CaretFirst) return 0; + if(position==CaretLast) return paragraphText.Length(); + if(!IsValidCaret(comparingCaret)) return -1; - GuiPolygonElementRenderer::GuiPolygonElementRenderer() - :points(0) - ,pointCount(0) - ,oldPenColor(0, 0, 0, 0) - ,oldBrushColor(0, 0, 0, 0) - { - } + vint frontLineIndex=-1; + vint backLineIndex=-1; + GetLineIndexFromTextPos(comparingCaret, frontLineIndex, backLineIndex); + vint lineIndex=preferFrontSide?frontLineIndex:backLineIndex; + DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; + vint lineStart=lineStarts[lineIndex]; + vint lineEnd=lineStart+line.length-line.newlineLength; - GuiPolygonElementRenderer::~GuiPolygonElementRenderer() - { - if(points) delete[] points; - } + switch(position) + { + case CaretLineFirst: + return lineStarts[lineIndex]; + case CaretLineLast: + return lineStarts[lineIndex]+line.length-line.newlineLength; + case CaretMoveLeft: + { + if(comparingCaret==0) + { + return 0; + } + else if(comparingCaret==lineStart) + { + vint offset=lineMetrics[lineIndex-1].newlineLength; + if(offset>0) + { + return lineStart-offset; + } + } + return hitTestMetrics[charHitTestMap[comparingCaret-1]].textPosition; + } + case CaretMoveRight: + { + if(comparingCaret==paragraphText.Length()) + { + return paragraphText.Length(); + } + else if(comparingCaret==lineEnd && line.newlineLength!=0) + { + return lineEnd+line.newlineLength; + } + else + { + vint index=charHitTestMap[comparingCaret]; + if(index==hitTestMetrics.Count()-1) return paragraphText.Length(); + return hitTestMetrics[index+1].textPosition; + } + } + case CaretMoveUp: + { + if(lineIndex==0) + { + return comparingCaret; + } + else + { + Rect bounds=GetCaretBounds(comparingCaret, preferFrontSide); + preferFrontSide=true; + return GetCaretFromXWithLine(bounds.x1, lineIndex-1); + } + } + case CaretMoveDown: + { + if(lineIndex==lineMetrics.Count()-1) + { + return comparingCaret; + } + else + { + Rect bounds=GetCaretBounds(comparingCaret, preferFrontSide); + preferFrontSide=false; + return GetCaretFromXWithLine(bounds.x1, lineIndex+1); + } + } + } + return -1; + } - void GuiPolygonElementRenderer::Render(Rect bounds) - { - if(pointCount>=3 && (oldPenColor.a || oldBrushColor.a)) + Rect GetCaretBounds(vint caret, bool frontSide)override { - vint offsetX=(bounds.Width()-minSize.x)/2+bounds.x1; - vint offsetY=(bounds.Height()-minSize.y)/2+bounds.y1; - for(vint i=0;i lineYRange=GetLineYRange(lineIndex); + DWRITE_LINE_METRICS& line=lineMetrics[lineIndex]; + if(line.length-line.newlineLength==0) { - points[i].x+=(int)offsetX; - points[i].y+=(int)offsetY; + return Rect(0, (vint)lineYRange.key, 0, (vint)lineYRange.value); } - renderTarget->GetDC()->SetPen(pen); - renderTarget->GetDC()->SetBrush(brush); - renderTarget->GetDC()->PolyGon(points, pointCount); - for(vint i=0;iGetSize(); + vint GetCaretFromPoint(Point point)override { - if(points) - { - delete[] points; - points=0; - } - pointCount=element->GetPointCount(); - if(pointCount>0) + PrepareFormatData(); + vint lineIndex=GetLineIndexFromY(point.y); + vint caret=GetCaretFromXWithLine(point.x, lineIndex); + return caret; + } + + Nullable GetInlineObjectFromPoint(Point point, vint& start, vint& length)override + { + DWRITE_HIT_TEST_METRICS metrics={0}; + BOOL trailingHit=FALSE; + BOOL inside=FALSE; + start=-1; + length=0; + HRESULT hr=textLayout->HitTestPoint((FLOAT)point.x, (FLOAT)point.y, &trailingHit, &inside, &metrics); + if(hr==S_OK) { - points=new POINT[pointCount]; - for(vint i=0;iGetPoint(i); - points[i].x=(int)p.x; - points[i].y=(int)p.y; + ComPtr inlineObject=inlineElements[element]; + start=inlineObject->GetStart(); + length=inlineObject->GetLength(); + return inlineObject->GetProperties(); } } + return Nullable(); } - auto resourceManager=GetWindowsGDIResourceManager(); - if(oldPenColor!=element->GetBorderColor() || !pen) + vint GetNearestCaretFromTextPos(vint textPos, bool frontSide)override { - resourceManager->DestroyGdiPen(oldPenColor); - oldPenColor=element->GetBorderColor(); - pen=resourceManager->CreateGdiPen(oldPenColor); + PrepareFormatData(); + if(!IsValidTextPos(textPos)) return -1; + if(textPos==0 || textPos==paragraphText.Length()) return textPos; + + vint index=charHitTestMap[textPos]; + DWRITE_HIT_TEST_METRICS& hitTest=hitTestMetrics[index]; + if(hitTest.textPosition==textPos) + { + return textPos; + } + else if(frontSide) + { + return hitTest.textPosition; + } + else + { + return hitTest.textPosition+hitTest.length; + } } - if(oldBrushColor!=element->GetBackgroundColor() || !brush) + + bool IsValidCaret(vint caret)override { - resourceManager->DestroyGdiPen(oldBrushColor); - oldBrushColor=element->GetBackgroundColor(); - brush=resourceManager->CreateGdiBrush(oldBrushColor); + PrepareFormatData(); + if(!IsValidTextPos(caret)) return false; + if(caret==0 || caret==paragraphText.Length()) return true; + if(hitTestMetrics[charHitTestMap[caret]].textPosition==caret) return true; + + vint frontLineIndex=-1; + vint backLineIndex=-1; + GetLineIndexFromTextPos(caret, frontLineIndex, backLineIndex); + if(frontLineIndex==-1 && backLineIndex==-1) return false; + return false; } - } + + bool IsValidTextPos(vint textPos) + { + return 0<=textPos && textPos<=paragraphText.Length(); + } + }; /*********************************************************************** -GuiColorizedTextElementRenderer +WindowsDirect2DLayoutProvider ***********************************************************************/ - void GuiColorizedTextElementRenderer::DestroyColors() + Ptr WindowsDirect2DLayoutProvider::CreateParagraph(const WString& text, IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback) { - auto resourceManager=GetWindowsGDIResourceManager(); - for(vint i=0;i + +namespace vl +{ + namespace presentation + { + namespace elements_windows_d2d + { + using namespace collections; + +/*********************************************************************** +IMPLEMENT_BRUSH_ELEMENT_RENDERER +***********************************************************************/ + +#define IMPLEMENT_BRUSH_ELEMENT_RENDERER(TRENDERER)\ + void TRENDERER::InitializeInternal()\ + {\ + }\ + void TRENDERER::FinalizeInternal()\ + {\ + DestroyBrush(renderTarget);\ + }\ + void TRENDERER::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)\ + {\ + DestroyBrush(oldRenderTarget);\ + CreateBrush(newRenderTarget);\ + }\ + TRENDERER::TRENDERER()\ + {\ + }\ + void TRENDERER::Render(Rect bounds)\ + +#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(TRENDERER)\ + void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ + {\ + if(_renderTarget)\ + {\ + oldColor=element->GetColor();\ + brush=_renderTarget->CreateDirect2DBrush(oldColor);\ + }\ + }\ + void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ + {\ + if(_renderTarget && brush)\ + {\ + _renderTarget->DestroyDirect2DBrush(oldColor);\ + brush=0;\ + }\ + }\ + void TRENDERER::OnElementStateChanged()\ + {\ + if(renderTarget)\ + {\ + Color color=element->GetColor();\ + if(oldColor!=color)\ + {\ + DestroyBrush(renderTarget);\ + CreateBrush(renderTarget);\ + }\ + }\ + }\ + +#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(TRENDERER)\ + void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ + {\ + if(_renderTarget)\ + {\ + oldColor=Pair(element->GetColor1(), element->GetColor2());\ + brush=_renderTarget->CreateDirect2DLinearBrush(oldColor.key, oldColor.value);\ + }\ + }\ + void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\ + {\ + if(_renderTarget && brush)\ + {\ + _renderTarget->DestroyDirect2DLinearBrush(oldColor.key, oldColor.value);\ + brush=0;\ + }\ + }\ + void TRENDERER::OnElementStateChanged()\ + {\ + if(renderTarget)\ + {\ + Pair color=Pair(element->GetColor1(), element->GetColor2());\ + if(oldColor!=color)\ + {\ + DestroyBrush(renderTarget);\ + CreateBrush(renderTarget);\ + }\ + }\ + }\ + +/*********************************************************************** +GuiSolidBorderElementRenderer +***********************************************************************/ + + void GuiFocusRectangleElementRenderer::InitializeInternal() + { + } + + void GuiFocusRectangleElementRenderer::FinalizeInternal() + { + focusRectangleEffect = nullptr; + } + + void GuiFocusRectangleElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + { + focusRectangleEffect = nullptr; + if (newRenderTarget) { - resourceManager->DestroyGdiBrush(colors[i].normal.background); - resourceManager->DestroyGdiBrush(colors[i].selectedFocused.background); - resourceManager->DestroyGdiBrush(colors[i].selectedUnfocused.background); + focusRectangleEffect = newRenderTarget->GetFocusRectangleEffect(); } } - void GuiColorizedTextElementRenderer::ColorChanged() + void GuiFocusRectangleElementRenderer::Render(Rect bounds) { - auto resourceManager=GetWindowsGDIResourceManager(); - ColorArray newColors; - newColors.Resize(element->GetColors().Count()); - for(vint i=0;iGetColors().Get(i); - ColorEntryResource newEntry; + ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); + ID2D1DeviceContext* d2dDeviceContext = nullptr; - newEntry.normal.text=entry.normal.text; - newEntry.normal.background=entry.normal.background; - newEntry.normal.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.normal.background); - newEntry.selectedFocused.text=entry.selectedFocused.text; - newEntry.selectedFocused.background=entry.selectedFocused.background; - newEntry.selectedFocused.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.selectedFocused.background); - newEntry.selectedUnfocused.text=entry.selectedUnfocused.text; - newEntry.selectedUnfocused.background=entry.selectedUnfocused.background; - newEntry.selectedUnfocused.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.selectedUnfocused.background); - newColors[i]=newEntry; + HRESULT hr = d2dRenderTarget->QueryInterface(&d2dDeviceContext); + if (SUCCEEDED(hr)) + { + FLOAT x = (FLOAT)bounds.Left(); + FLOAT y = (FLOAT)bounds.Top(); + FLOAT x2 = (FLOAT)bounds.Right() - 1; + FLOAT y2 = (FLOAT)bounds.Bottom() - 1; + FLOAT w = (FLOAT)bounds.Width(); + FLOAT h = (FLOAT)bounds.Height(); + + d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y), D2D1::RectF(0, 0, w, 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); + d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y2), D2D1::RectF(0, y2 - y, w, h), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); + d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x, y + 1), D2D1::RectF(0, 1, 1, h - 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); + d2dDeviceContext->DrawImage(focusRectangleEffect, D2D1::Point2F(x2, y + 1), D2D1::RectF(x2 - x, 1, w, h - 1), D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR, D2D1_COMPOSITE_MODE_MASK_INVERT); + } + + if (d2dDeviceContext) + { + d2dDeviceContext->Release(); + } } + } - DestroyColors(); - CopyFrom(colors, newColors); + void GuiFocusRectangleElementRenderer::OnElementStateChanged() + { } - void GuiColorizedTextElementRenderer::FontChanged() +/*********************************************************************** +GuiSolidBorderElementRenderer +***********************************************************************/ + + IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBorderElementRenderer) + IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBorderElementRenderer) { - auto resourceManager = GetWindowsGDIResourceManager(); - if (font) + ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); + auto shape = element->GetShape(); + + switch (shape.shapeType) { - element->GetLines().SetCharMeasurer(nullptr); - resourceManager->DestroyGdiFont(oldFont); - resourceManager->DestroyCharMeasurer(oldFont); - font = nullptr; + case ElementShapeType::Rectangle: + d2dRenderTarget->DrawRectangle( + D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), + brush + ); + break; + case ElementShapeType::Ellipse: + d2dRenderTarget->DrawEllipse( + D2D1::Ellipse(D2D1::Point2F((bounds.x1 + bounds.x2) / 2.0f, (bounds.y1 + bounds.y2) / 2.0f), bounds.Width() / 2.0f, bounds.Height() / 2.0f), + brush + ); + break; + case ElementShapeType::RoundRect: + d2dRenderTarget->DrawRoundedRectangle( + D2D1::RoundedRect( + D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), + (FLOAT)shape.radiusX, + (FLOAT)shape.radiusY + ), + brush + ); + break; } - oldFont = element->GetFont(); - font = resourceManager->CreateGdiFont(oldFont); - element->GetLines().SetCharMeasurer(resourceManager->CreateCharMeasurer(oldFont).Obj()); } - void GuiColorizedTextElementRenderer::InitializeInternal() +/*********************************************************************** +Gui3DBorderElementRenderer +***********************************************************************/ + + void Gui3DBorderElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - auto resourceManager=GetWindowsGDIResourceManager(); - element->SetCallback(this); - oldCaretColor=element->GetCaretColor(); - caretPen=resourceManager->CreateGdiPen(oldCaretColor); + if(_renderTarget) + { + oldColor1=element->GetColor1(); + oldColor2=element->GetColor2(); + brush1=_renderTarget->CreateDirect2DBrush(oldColor1); + brush2=_renderTarget->CreateDirect2DBrush(oldColor2); + } } - void GuiColorizedTextElementRenderer::FinalizeInternal() + void Gui3DBorderElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - auto resourceManager=GetWindowsGDIResourceManager(); - if(font) + if(_renderTarget) { - resourceManager->DestroyGdiFont(oldFont); - resourceManager->DestroyCharMeasurer(oldFont); + if(brush1) + { + _renderTarget->DestroyDirect2DBrush(oldColor1); + brush1 = nullptr; + } + if(brush2) + { + _renderTarget->DestroyDirect2DBrush(oldColor2); + brush2 = nullptr; + } } - resourceManager->DestroyGdiPen(oldCaretColor); - DestroyColors(); } - void GuiColorizedTextElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + void Gui3DBorderElementRenderer::InitializeInternal() { - element->GetLines().SetRenderTarget(newRenderTarget); } - void GuiColorizedTextElementRenderer::Render(Rect bounds) + void Gui3DBorderElementRenderer::FinalizeInternal() { - if (renderTarget) - { - WinDC* dc = renderTarget->GetDC(); - dc->SetFont(font); - - wchar_t passwordChar = element->GetPasswordChar(); - Point viewPosition = element->GetViewPosition(); - Rect viewBounds(viewPosition, bounds.GetSize()); - vint startRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, viewBounds.y1)).row; - vint endRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, viewBounds.y2)).row; - TextPos selectionBegin = element->GetCaretBegin() < element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); - TextPos selectionEnd = element->GetCaretBegin() > element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); - bool focused = element->GetFocused(); - Ptr lastBrush = 0; - - for (vint row = startRow; row <= endRow; row++) - { - Rect startRect = element->GetLines().GetRectFromTextPos(TextPos(row, 0)); - Point startPoint = startRect.LeftTop(); - vint startColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, startPoint.y)).column; - vint endColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, startPoint.y)).column; + DestroyBrush(renderTarget); + } - text::TextLine& line = element->GetLines().GetLine(row); - if (text::UTF16SPFirst(line.text[endColumn]) && endColumn + 1 < line.dataLength && text::UTF16SPSecond(line.text[startColumn + 1])) - { - endColumn++; - } + void Gui3DBorderElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + { + DestroyBrush(oldRenderTarget); + CreateBrush(newRenderTarget); + } - vint x = startColumn == 0 ? 0 : line.att[startColumn - 1].rightOffset; - for (vint column = startColumn; column <= endColumn; column++) - { - bool inSelection = false; - if (selectionBegin.row == selectionEnd.row) - { - inSelection = (row == selectionBegin.row && selectionBegin.column <= column && column < selectionEnd.column); - } - else if (row == selectionBegin.row) - { - inSelection = selectionBegin.column <= column; - } - else if (row == selectionEnd.row) - { - inSelection = column < selectionEnd.column; - } - else - { - inSelection = selectionBegin.row < row && row < selectionEnd.row; - } + Gui3DBorderElementRenderer::Gui3DBorderElementRenderer() + { + } - bool crlf = column == line.dataLength; - vint colorIndex = crlf ? 0 : line.att[column].colorIndex; - if (colorIndex >= colors.Count()) - { - colorIndex = 0; - } - ColorItemResource& color = - !inSelection ? colors[colorIndex].normal : - focused ? colors[colorIndex].selectedFocused : - colors[colorIndex].selectedUnfocused; - vint x2 = crlf ? x + startRect.Height() / 2 : line.att[column].rightOffset; - vint tx = x - viewPosition.x + bounds.x1; - vint ty = startPoint.y - viewPosition.y + bounds.y1; + void Gui3DBorderElementRenderer::Render(Rect bounds) + { + D2D1_RECT_F rect=D2D1::RectF((FLOAT)bounds.x1+0.5f, (FLOAT)bounds.y1+0.5f, (FLOAT)bounds.x2-0.5f, (FLOAT)bounds.y2-0.5f); + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); - if (color.background.a) - { - if (lastBrush != color.backgroundBrush) - { - lastBrush = color.backgroundBrush; - dc->SetBrush(lastBrush); - } - dc->FillRect(tx, ty, tx + (x2 - x), ty + startRect.Height()); - } - if (!crlf) - { - vint count = text::UTF16SPFirst(line.text[column]) && column + 1 < line.dataLength && text::UTF16SPSecond(line.text[column + 1]) ? 2 : 1; - if (color.text.a) - { - dc->SetTextColor(RGB(color.text.r, color.text.g, color.text.b)); - dc->DrawBuffer(tx, ty, (passwordChar ? &passwordChar : &line.text[column]), count); - } - if (count == 2) column++; - } - x = x2; - } - } + d2dRenderTarget->DrawLine(D2D1::Point2F(rect.left, rect.top), D2D1::Point2F(rect.right, rect.top), brush1); + d2dRenderTarget->DrawLine(D2D1::Point2F(rect.left, rect.top), D2D1::Point2F(rect.left, rect.bottom), brush1); + d2dRenderTarget->DrawLine(D2D1::Point2F(rect.right, rect.bottom), D2D1::Point2F(rect.left, rect.bottom), brush2); + d2dRenderTarget->DrawLine(D2D1::Point2F(rect.right, rect.bottom), D2D1::Point2F(rect.right, rect.top), brush2); + } - if (element->GetCaretVisible() && element->GetLines().IsAvailable(element->GetCaretEnd())) + void Gui3DBorderElementRenderer::OnElementStateChanged() + { + if(renderTarget) + { + Color color1=element->GetColor1(); + Color color2=element->GetColor2(); + if(oldColor1!=color1 || oldColor2!=color2) { - Point caretPoint = element->GetLines().GetPointFromTextPos(element->GetCaretEnd()); - vint height = element->GetLines().GetRowHeight(); - dc->SetPen(caretPen); - dc->MoveTo(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); - dc->LineTo(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); - dc->MoveTo(caretPoint.x - 1 - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); - dc->LineTo(caretPoint.x - 1 - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); + DestroyBrush(renderTarget); + CreateBrush(renderTarget); } } } - void GuiColorizedTextElementRenderer::OnElementStateChanged() +/*********************************************************************** +Gui3DSplitterElementRenderer +***********************************************************************/ + + void Gui3DSplitterElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - Color caretColor=element->GetCaretColor(); - if(oldCaretColor!=caretColor) + if(_renderTarget) { - auto resourceManager=GetWindowsGDIResourceManager(); - resourceManager->DestroyGdiPen(oldCaretColor); - oldCaretColor=caretColor; - caretPen=resourceManager->CreateGdiPen(oldCaretColor); + oldColor1=element->GetColor1(); + oldColor2=element->GetColor2(); + brush1=_renderTarget->CreateDirect2DBrush(oldColor1); + brush2=_renderTarget->CreateDirect2DBrush(oldColor2); } } -/*********************************************************************** -GuiGDIElementRenderer -***********************************************************************/ - - void GuiGDIElementRenderer::InitializeInternal() + void Gui3DSplitterElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) { + if(_renderTarget) + { + if(brush1) + { + _renderTarget->DestroyDirect2DBrush(oldColor1); + brush1 = nullptr; + } + if(brush2) + { + _renderTarget->DestroyDirect2DBrush(oldColor2); + brush2 = nullptr; + } + } } - void GuiGDIElementRenderer::FinalizeInternal() + void Gui3DSplitterElementRenderer::InitializeInternal() { } - void GuiGDIElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + void Gui3DSplitterElementRenderer::FinalizeInternal() { + DestroyBrush(renderTarget); } - GuiGDIElementRenderer::GuiGDIElementRenderer() + void Gui3DSplitterElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) { + DestroyBrush(oldRenderTarget); + CreateBrush(newRenderTarget); } - GuiGDIElementRenderer::~GuiGDIElementRenderer() + Gui3DSplitterElementRenderer::Gui3DSplitterElementRenderer() { } - - void GuiGDIElementRenderer::Render(Rect bounds) + + void Gui3DSplitterElementRenderer::Render(Rect bounds) { - if(renderTarget) + D2D1_POINT_2F p11, p12, p21, p22; + switch(element->GetDirection()) { - renderTarget->PushClipper(bounds); - if(!renderTarget->IsClipperCoverWholeTarget()) + case Gui3DSplitterElement::Horizontal: { - WinDC* dc=renderTarget->GetDC(); - GuiGDIElementEventArgs arguments(element, dc, bounds); - element->Rendering.Execute(arguments); + vint y=bounds.y1+bounds.Height()/2-1; + p11=D2D1::Point2F((FLOAT)bounds.x1, (FLOAT)y+0.5f); + p12=D2D1::Point2F((FLOAT)bounds.x2, (FLOAT)y+0.5f); + p21=D2D1::Point2F((FLOAT)bounds.x1, (FLOAT)y+1.5f); + p22=D2D1::Point2F((FLOAT)bounds.x2, (FLOAT)y+1.5f); } - renderTarget->PopClipper(); + break; + case Gui3DSplitterElement::Vertical: + { + vint x=bounds.x1+bounds.Width()/2-1; + p11=D2D1::Point2F((FLOAT)x+0.5f, (FLOAT)bounds.y1-0.0f); + p12=D2D1::Point2F((FLOAT)x+0.5f, (FLOAT)bounds.y2+0.0f); + p21=D2D1::Point2F((FLOAT)x+1.5f, (FLOAT)bounds.y1-0.0f); + p22=D2D1::Point2F((FLOAT)x+1.5f, (FLOAT)bounds.y2+0.0f); + } + break; } + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + + d2dRenderTarget->DrawLine(p11, p12, brush1); + d2dRenderTarget->DrawLine(p21, p22, brush2); } - void GuiGDIElementRenderer::OnElementStateChanged() + void Gui3DSplitterElementRenderer::OnElementStateChanged() { + if(renderTarget) + { + Color color1=element->GetColor1(); + Color color2=element->GetColor2(); + if(oldColor1!=color1 || oldColor2!=color2) + { + DestroyBrush(renderTarget); + CreateBrush(renderTarget); + } + } } - } - } -} /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSUNISCRIBE.CPP +GuiSolidBackgroundElementRenderer ***********************************************************************/ + + IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBackgroundElementRenderer) + IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBackgroundElementRenderer) + { + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + auto shape = element->GetShape(); -#pragma comment(lib, "usp10.lib") - -namespace vl -{ - namespace presentation - { - namespace elements_windows_gdi - { - using namespace regex; + switch(shape.shapeType) + { + case ElementShapeType::Rectangle: + d2dRenderTarget->FillRectangle( + D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2), + brush + ); + break; + case ElementShapeType::Ellipse: + d2dRenderTarget->FillEllipse( + D2D1::Ellipse(D2D1::Point2F((bounds.x1+bounds.x2)/2.0f, (bounds.y1+bounds.y2)/2.0f), bounds.Width()/2.0f, bounds.Height()/2.0f), + brush + ); + break; + case ElementShapeType::RoundRect: + d2dRenderTarget->FillRoundedRectangle( + D2D1::RoundedRect( + D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), + (FLOAT)shape.radiusX, + (FLOAT)shape.radiusY + ), + brush + ); + break; + } + } /*********************************************************************** -UniscribeFragment +GuiGradientBackgroundElementRenderer ***********************************************************************/ - UniscribeFragment::UniscribeFragment(const WString& _text) - :text(_text) + IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(GuiGradientBackgroundElementRenderer) + IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiGradientBackgroundElementRenderer) { - colors.Add(UniscribeColorRange(0, text.Length()), UniscribeColor(Color(0, 0, 0), Color(0, 0, 0, 0))); - } - - WString UniscribeFragment::GetFingerprint() - { - return fontStyle.fontFamily+L"#" - +itow(fontStyle.size)+L"#" - +(fontStyle.bold?L"B":L"N")+L"#" - +(fontStyle.italic?L"I":L"N")+L"#" - +(fontStyle.underline?L"U":L"N")+L"#" - +(fontStyle.strikeline?L"S":L"N")+L"#" - ; - } - - void UniscribeFragment::CutColors(vint start, vint length) - { - vint end=start+length; - for(vint i=colors.Count()-1;i>=0;i--) + D2D1_POINT_2F points[2]; + switch(element->GetDirection()) { - UniscribeColorRange key=colors.Keys()[i]; - if(key.startstart?key.start:start; - vint s3=key.end=0;i--) - { - UniscribeColorRange key=colors.Keys()[i]; - if(key.start=-1;i--) - { - if(lastIndex==-1) + break; + case GuiGradientBackgroundElement::Slash: { - lastIndex=i; - if(i!=-1) - { - lastColor=colors.Values()[i]; - } + points[0].x=(FLOAT)bounds.x2; + points[0].y=(FLOAT)bounds.y1; + points[1].x=(FLOAT)bounds.x1; + points[1].y=(FLOAT)bounds.y2; } - else if(i==-1 || colors.Values()[i]!=lastColor) + break; + case GuiGradientBackgroundElement::Backslash: { - if(lastIndex-i>0) - { - vint start=colors.Keys()[i+1].start; - vint end=colors.Keys()[lastIndex].end; - UniscribeColorRange key(start, end); - - for(vint j=lastIndex;j>i;j--) - { - colors.Remove(colors.Keys()[j]); - } - colors.Add(key, lastColor); - } - lastIndex=i; - if(i!=-1) - { - lastColor=colors.Values()[i]; - } + points[0].x=(FLOAT)bounds.x1; + points[0].y=(FLOAT)bounds.y1; + points[1].x=(FLOAT)bounds.x2; + points[1].y=(FLOAT)bounds.y2; } + break; + } + + brush->SetStartPoint(points[0]); + brush->SetEndPoint(points[1]); + + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + auto shape = element->GetShape(); + + switch(shape.shapeType) + { + case ElementShapeType::Rectangle: + d2dRenderTarget->FillRectangle( + D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2), + brush + ); + break; + case ElementShapeType::Ellipse: + d2dRenderTarget->FillEllipse( + D2D1::Ellipse(D2D1::Point2F((bounds.x1+bounds.x2)/2.0f, (bounds.y1+bounds.y2)/2.0f), bounds.Width()/2.0f, bounds.Height()/2.0f), + brush + ); + break; + case ElementShapeType::RoundRect: + d2dRenderTarget->FillRoundedRectangle( + D2D1::RoundedRect( + D2D1::RectF((FLOAT)bounds.x1 + 0.5f, (FLOAT)bounds.y1 + 0.5f, (FLOAT)bounds.x2 - 0.5f, (FLOAT)bounds.y2 - 0.5f), + (FLOAT)shape.radiusX, + (FLOAT)shape.radiusY + ), + brush + ); + break; } } - UniscribeColor UniscribeFragment::GetCharColor(vint charIndex) +/*********************************************************************** +GuiInnerShadowElementRenderer +***********************************************************************/ + + void GuiInnerShadowElementRenderer::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - vint start=0; - vint end=colors.Count()-1; - while(start<=end) + if (_renderTarget) { - vint middle=(start+end)/2; - UniscribeColorRange key=colors.Keys()[middle]; - if(charIndex=key.end) - { - start=middle+1; - } - else - { - return colors.Values()[middle]; - } + oldColor = element->GetColor(); + transparentColor = Color(oldColor.r, oldColor.g, oldColor.b, 0); + linearBrush = _renderTarget->CreateDirect2DLinearBrush(transparentColor, oldColor); + radialBrush = _renderTarget->CreateDirect2DRadialBrush(transparentColor, oldColor); } - return UniscribeColor(); } - Ptr UniscribeFragment::Copy(vint start, vint length) + void GuiInnerShadowElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - vint end=start+length; - Ptr fragment=new UniscribeFragment(length==0?L"":text.Sub(start, length)); - fragment->fontStyle=fontStyle; - fragment->fontObject=fontObject; - - if(length!=0) + if (_renderTarget) { - fragment->colors.Clear(); - CutColors(start, length); - for(vint i=0;icolors.Add(UniscribeColorRange(key.start-start, key.end-start), value); - } - } + _renderTarget->DestroyDirect2DLinearBrush(transparentColor, oldColor); + _renderTarget->DestroyDirect2DRadialBrush(transparentColor, oldColor); + + linearBrush = nullptr; + radialBrush = nullptr; } - return fragment; } -/*********************************************************************** -UniscribeGlyphData -***********************************************************************/ + void GuiInnerShadowElementRenderer::InitializeInternal() + { + } - UniscribeGlyphData::UniscribeGlyphData() + void GuiInnerShadowElementRenderer::FinalizeInternal() { - ClearUniscribeData(0, 0); + DestroyBrush(renderTarget); } - void UniscribeGlyphData::ClearUniscribeData(vint glyphCount, vint length) + void GuiInnerShadowElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) { - glyphs.Resize(glyphCount); - glyphVisattrs.Resize(glyphCount); - glyphAdvances.Resize(glyphCount); - glyphOffsets.Resize(glyphCount); - charCluster.Resize(length); - memset(&runAbc, 0, sizeof(runAbc)); - memset(&sa, 0, sizeof(sa)); + DestroyBrush(oldRenderTarget); + CreateBrush(newRenderTarget); } - bool UniscribeGlyphData::BuildUniscribeData(WinDC* dc, SCRIPT_ITEM* scriptItem, SCRIPT_CACHE& scriptCache, const wchar_t* runText, vint length, List& breakings, List& breakingAvailabilities) + GuiInnerShadowElementRenderer::GuiInnerShadowElementRenderer() { - vint glyphCount=glyphs.Count(); - bool resizeGlyphData=false; - if(glyphCount==0) - { - glyphCount=(vint)(1.5*length+16); - resizeGlyphData=true; - } - sa=scriptItem->a; - WinDC* dcParameter=0; + } + + void GuiInnerShadowElementRenderer::Render(Rect bounds) + { + vint w = bounds.Width(); + vint h = bounds.Height(); + vint t = element->GetThickness(); + vint bW = w - 2 * t; + vint bH = h - 2 * t; + if (bW > 0 && bH > 0) { - // generate shape information - if(resizeGlyphData) - { - glyphs.Resize(glyphCount); - glyphVisattrs.Resize(glyphCount); - charCluster.Resize(length); - } + vint x1 = bounds.Left(); + vint x4 = bounds.Right(); + vint x2 = x1 + t; + vint x3 = x4 - t; - while(true) - { - int availableGlyphCount=0; - HRESULT hr=ScriptShape( - (dcParameter?dcParameter->GetHandle():NULL), - &scriptCache, - runText, - (int)length, - (int)glyphCount, - &sa, - &glyphs[0], - &charCluster[0], - &glyphVisattrs[0], - &availableGlyphCount - ); - if(hr==0) - { - glyphCount=availableGlyphCount; - break; - } - else if(hr==E_PENDING) - { - dcParameter=dc; - } - else if(hr==E_OUTOFMEMORY) - { - if(resizeGlyphData) - { - glyphCount+=length; - } - else - { - goto BUILD_UNISCRIBE_DATA_FAILED; - } - } - else if(hr==USP_E_SCRIPT_NOT_IN_FONT) - { - if(sa.eScript==SCRIPT_UNDEFINED) - { - goto BUILD_UNISCRIBE_DATA_FAILED; - } - else - { - sa.eScript=SCRIPT_UNDEFINED; - } - } - else - { - goto BUILD_UNISCRIBE_DATA_FAILED; - } + vint y1 = bounds.Top(); + vint y4 = bounds.Bottom(); + vint y2 = y1 + t; + vint y3 = y4 - t; + + auto d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); + { + // top + linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); + linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y1)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x2, (FLOAT)y1, (FLOAT)x3, (FLOAT)y2), linearBrush); } - if(resizeGlyphData) { - glyphs.Resize(glyphCount); - glyphVisattrs.Resize(glyphCount); + // bottom + linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y3)); + linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y4)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x2, (FLOAT)y3, (FLOAT)x3, (FLOAT)y4), linearBrush); } - } - - { - SCRIPT_FONTPROPERTIES fp; - memset(&fp, 0, sizeof(fp)); - fp.cBytes=sizeof(fp); - HRESULT hr=ScriptGetFontProperties( - (dcParameter?dcParameter->GetHandle():NULL), - &scriptCache, - &fp - ); - WORD invalidGlyph=fp.wgDefault; - if(hr!=S_OK) { - invalidGlyph=0; + // left + linearBrush->SetStartPoint(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); + linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x1, (FLOAT)y2)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y2, (FLOAT)x2, (FLOAT)y3), linearBrush); } - - // generate breaking information - breakings.Add(0); - vint charIndex=0; - bool lastGlyphAvailable=false; - while(charIndexa.fRTL) - { - glyphCount=-glyphCount; - glyphIndex-=glyphCount-1; - } - - bool available=true; - for(vint i=0;iSetStartPoint(D2D1::Point2F((FLOAT)x3, (FLOAT)y2)); + linearBrush->SetEndPoint(D2D1::Point2F((FLOAT)x4, (FLOAT)y2)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y2, (FLOAT)x4, (FLOAT)y3), linearBrush); } - } - if(breakings.Count()==1) - { - // generate place information - WinDC* dcParameter=0; - if(resizeGlyphData) + radialBrush->SetRadiusX((FLOAT)t); + radialBrush->SetRadiusY((FLOAT)t); { - glyphAdvances.Resize(glyphCount); - glyphOffsets.Resize(glyphCount); + // left-top + radialBrush->SetCenter(D2D1::Point2F((FLOAT)x2, (FLOAT)y2)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y1, (FLOAT)x2, (FLOAT)y2), radialBrush); } - while(true) { - HRESULT hr=ScriptPlace( - (dcParameter?dcParameter->GetHandle():NULL), - &scriptCache, - &glyphs[0], - (int)glyphCount, - &glyphVisattrs[0], - &sa, - &glyphAdvances[0], - &glyphOffsets[0], - &runAbc - ); - if(hr==0) - { - break; - } - else if(hr==E_PENDING) - { - dcParameter=dc; - } - else - { - goto BUILD_UNISCRIBE_DATA_FAILED; - } + // left-bottom + radialBrush->SetCenter(D2D1::Point2F((FLOAT)x3, (FLOAT)y2)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y1, (FLOAT)x4, (FLOAT)y2), radialBrush); + } + { + // right-top + radialBrush->SetCenter(D2D1::Point2F((FLOAT)x2, (FLOAT)y3)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x1, (FLOAT)y3, (FLOAT)x2, (FLOAT)y4), radialBrush); + } + { + // right-bottom + radialBrush->SetCenter(D2D1::Point2F((FLOAT)x3, (FLOAT)y3)); + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)x3, (FLOAT)y3, (FLOAT)x4, (FLOAT)y4), radialBrush); } } - - return true; - BUILD_UNISCRIBE_DATA_FAILED: - return false; } - void UniscribeGlyphData::BuildUniscribeData(WinDC* dc, SCRIPT_ITEM* scriptItem, SCRIPT_LOGATTR* charLogattrs, const wchar_t* runText, vint length) + void GuiInnerShadowElementRenderer::OnElementStateChanged() { - vint glyphCount=0; - for(vint i=0;iGetColor()) { - glyphCount++; + DestroyBrush(renderTarget); + CreateBrush(renderTarget); } } + } - ClearUniscribeData(glyphCount, length); - sa=scriptItem->a; - memset(&glyphs[0], 0, sizeof(glyphs[0])*glyphs.Count()); - memset(&glyphVisattrs[0], 0, sizeof(glyphVisattrs[0])*glyphVisattrs.Count()); - memset(&glyphAdvances[0], 0, sizeof(glyphAdvances[0])*glyphAdvances.Count()); - memset(&glyphOffsets[0], 0, sizeof(glyphOffsets[0])*glyphOffsets.Count()); - memset(&charCluster[0], 0, sizeof(charCluster[0])*charCluster.Count()); +/*********************************************************************** +GuiSolidLabelElementRenderer +***********************************************************************/ - for(vint i=0;iGetColor(); + brush=_renderTarget->CreateDirect2DBrush(oldColor); } + } - if(sa.fRTL) + void GuiSolidLabelElementRenderer::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget) + { + if(_renderTarget && brush) { - vint currentGlyphCount=0; - for(vint i=0;iDestroyDirect2DBrush(oldColor); + brush = nullptr; } - else + } + + void GuiSolidLabelElementRenderer::CreateTextFormat(IWindowsDirect2DRenderTarget* _renderTarget) + { + if(_renderTarget) { - vint currentGlyphCount=0; - for(vint i=0;iGetFont(); + if (oldFont.fontFamily == L"") oldFont.fontFamily = windows::GetWindowsNativeController()->ResourceService()->GetDefaultFont().fontFamily; + if (oldFont.size == 0) oldFont.size = 12; + textFormat=resourceManager->CreateDirect2DTextFormat(oldFont); } + } + void GuiSolidLabelElementRenderer::DestroyTextFormat(IWindowsDirect2DRenderTarget* _renderTarget) + { + if(_renderTarget && textFormat) { - vint lastCharIndex=0; - vint lastGlyphIndex=0; - for(vint i=1;i<=length;i++) - { - if(i==0 || charLogattrs[i].fCharStop) - { - vint glyphLength=i-lastCharIndex; - const wchar_t* glyphText=sa.fRTL?runText+length-lastCharIndex-glyphLength:runText+lastCharIndex; - SIZE size=dc->MeasureBuffer(runText, glyphLength, -1); - glyphAdvances[lastGlyphIndex]=size.cx; - lastCharIndex=i; - lastGlyphIndex++; - } - } - } - - for(vint i=0;iDestroyDirect2DTextFormat(oldFont); + textFormat = nullptr; } } -/*********************************************************************** -UniscribeItem -***********************************************************************/ - - UniscribeItem::UniscribeItem() - :startFromLine(0) - ,length(0) - ,itemText(0) - { - } - - UniscribeItem::~UniscribeItem() + void GuiSolidLabelElementRenderer::CreateTextLayout() { - } + if (textFormat) + { + HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateTextLayout( + oldText.Buffer(), + (int)oldText.Length(), + textFormat->textFormat.Obj(), + 0, + 0, + &textLayout); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - void UniscribeItem::ClearUniscribeData() - { - charLogattrs.Resize(0); + if (oldFont.underline) + { + DWRITE_TEXT_RANGE textRange; + textRange.startPosition = 0; + textRange.length = (int)oldText.Length(); + textLayout->SetUnderline(TRUE, textRange); + } + if (oldFont.strikeline) + { + DWRITE_TEXT_RANGE textRange; + textRange.startPosition = 0; + textRange.length = (int)oldText.Length(); + textLayout->SetStrikethrough(TRUE, textRange); + } + } } - bool UniscribeItem::BuildUniscribeData() + void GuiSolidLabelElementRenderer::DestroyTextLayout() { - // generate break information - charLogattrs.Resize(length); - - HRESULT hr=ScriptBreak( - itemText, - (int)length, - &scriptItem.a, - &charLogattrs[0] - ); - if(hr!=0) + if(textLayout) { - goto BUILD_UNISCRIBE_DATA_FAILED; + textLayout->Release(); + textLayout = nullptr; } - - return true; - BUILD_UNISCRIBE_DATA_FAILED: - ClearUniscribeData(); - return false; } - bool UniscribeItem::IsRightToLeft() + void GuiSolidLabelElementRenderer::UpdateMinSize() { - return scriptItem.a.fRTL; + float maxWidth=0; + DestroyTextLayout(); + bool calculateSizeFromTextLayout=false; + if(renderTarget) + { + if(element->GetWrapLine()) + { + if(element->GetWrapLineHeightCalculation()) + { + CreateTextLayout(); + if(textLayout) + { + maxWidth=textLayout->GetMaxWidth(); + if(oldMaxWidth!=-1) + { + textLayout->SetWordWrapping(DWRITE_WORD_WRAPPING_WRAP); + textLayout->SetMaxWidth((float)oldMaxWidth); + } + calculateSizeFromTextLayout=true; + } + } + } + else + { + CreateTextLayout(); + if(textLayout) + { + maxWidth=textLayout->GetMaxWidth(); + calculateSizeFromTextLayout=true; + } + } + } + if(calculateSizeFromTextLayout) + { + DWRITE_TEXT_METRICS metrics; + HRESULT hr=textLayout->GetMetrics(&metrics); + if(!FAILED(hr)) + { + vint width=0; + if(!element->GetEllipse() && !element->GetWrapLine() && !element->GetMultiline()) + { + width=(vint)ceil(metrics.widthIncludingTrailingWhitespace); + } + minSize=Size(width, (vint)ceil(metrics.height)); + } + textLayout->SetMaxWidth(maxWidth); + } + else + { + minSize=Size(); + } } -/*********************************************************************** -UniscribeRun -***********************************************************************/ - - UniscribeRun::UniscribeRun() - :documentFragment(0) - ,scriptItem(0) - ,startFromLine(0) - ,startFromFragment(0) - ,length(0) - ,runText(0) + void GuiSolidLabelElementRenderer::InitializeInternal() { } - UniscribeRun::~UniscribeRun() + void GuiSolidLabelElementRenderer::FinalizeInternal() { + DestroyTextLayout(); + DestroyBrush(renderTarget); + DestroyTextFormat(renderTarget); } -/*********************************************************************** -UniscribeTextRun -***********************************************************************/ - - UniscribeTextRun::UniscribeTextRun() - :scriptCache(0) - ,advance(0) - ,needFontFallback(false) + void GuiSolidLabelElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) { + DestroyBrush(oldRenderTarget); + DestroyTextFormat(oldRenderTarget); + CreateBrush(newRenderTarget); + CreateTextFormat(newRenderTarget); + UpdateMinSize(); } - UniscribeTextRun::~UniscribeTextRun() + GuiSolidLabelElementRenderer::GuiSolidLabelElementRenderer() { - ClearUniscribeData(); } - void UniscribeTextRun::ClearUniscribeData() + void GuiSolidLabelElementRenderer::Render(Rect bounds) { - if(scriptCache) + if(!textLayout) { - ScriptFreeCache(&scriptCache); - scriptCache=0; + CreateTextLayout(); } - advance=0; - needFontFallback=false; - wholeGlyph.ClearUniscribeData(0, 0); - } - void UniscribeTextRun::SearchSingleGlyphCluster(vint charStart, vint& charLength, vint& cluster, vint& nextCluster) - { - cluster=wholeGlyph.charCluster[charStart]; - vint nextChar=charStart; - while(nextCharGetHorizontalAlignment()) { - if(wholeGlyph.charCluster[nextChar]!=cluster) - { - break; - } - nextChar++; + case Alignment::Left: + x=bounds.Left(); + break; + case Alignment::Center: + x=bounds.Left()+(bounds.Width()-minSize.x)/2; + break; + case Alignment::Right: + x=bounds.Right()-minSize.x; + break; } - charLength=nextChar-charStart; - SearchGlyphCluster(charStart, charLength, cluster, nextCluster); - } - - void UniscribeTextRun::SearchSingleChar(vint charStart, vint& charLength, vint& cluster, vint& nextCluster) - { - charLength=0; - vint startFromItem=charStart+startFromLine-scriptItem->startFromLine; - vint currentFromItem=startFromItem; - while(++currentFromItemlength) + switch(element->GetVerticalAlignment()) { - if(scriptItem->charLogattrs[currentFromItem].fCharStop) - { - break; - } + case Alignment::Top: + y=bounds.Top(); + break; + case Alignment::Center: + y=bounds.Top()+(bounds.Height()-minSize.y)/2; + break; + case Alignment::Bottom: + y=bounds.Bottom()-minSize.y; + break; } - charLength=currentFromItem-startFromItem; - SearchGlyphCluster(charStart, charLength, cluster, nextCluster); - } - void UniscribeTextRun::SearchGlyphCluster(vint charStart, vint charLength, vint& cluster, vint& nextCluster) - { - cluster=wholeGlyph.charCluster[charStart]; - if(charStart+charLength>length) - { - charLength=length-charStart; - } - if(scriptItem->IsRightToLeft()) + renderTarget->SetTextAntialias(oldFont.antialias, oldFont.verticalAntialias); + + if(!element->GetEllipse() && !element->GetMultiline() && !element->GetWrapLine()) { - nextCluster - =charStart+charLength==length - ?-1 - :wholeGlyph.charCluster[charStart+charLength]; + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + d2dRenderTarget->DrawTextLayout( + D2D1::Point2F((FLOAT)x, (FLOAT)y), + textLayout, + brush, + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP + ); } else { - nextCluster - =charStart+charLength==length - ?wholeGlyph.glyphs.Count() - :wholeGlyph.charCluster[charStart+charLength]; + IDWriteFactory* dwriteFactory=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); + DWRITE_TRIMMING trimming; + IDWriteInlineObject* inlineObject; + { + HRESULT hr = textLayout->GetTrimming(&trimming, &inlineObject); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + } + + textLayout->SetWordWrapping(element->GetWrapLine()?DWRITE_WORD_WRAPPING_WRAP:DWRITE_WORD_WRAPPING_NO_WRAP); + if(element->GetEllipse()) + { + textLayout->SetTrimming(&textFormat->trimming, textFormat->ellipseInlineObject.Obj()); + } + switch(element->GetHorizontalAlignment()) + { + case Alignment::Left: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_LEADING); + break; + case Alignment::Center: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_CENTER); + break; + case Alignment::Right: + textLayout->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING); + break; + } + if(!element->GetMultiline() && !element->GetWrapLine()) + { + switch(element->GetVerticalAlignment()) + { + case Alignment::Top: + textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_NEAR); + break; + case Alignment::Center: + textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_CENTER); + break; + case Alignment::Bottom: + textLayout->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_FAR); + break; + } + } + + Rect textBounds=bounds; + if(element->GetEllipse() && !element->GetMultiline() && !element->GetWrapLine()) + { + textBounds=Rect(Point(textBounds.x1, y), Size(bounds.Width(), minSize.y)); + } + + textLayout->SetMaxWidth((FLOAT)textBounds.Width()); + textLayout->SetMaxHeight((FLOAT)textBounds.Height()); + + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + d2dRenderTarget->DrawTextLayout( + D2D1::Point2F((FLOAT)textBounds.Left(), (FLOAT)textBounds.Top()), + textLayout, + brush, + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP + ); + + textLayout->SetTrimming(&trimming, inlineObject); + if(oldMaxWidth!=textBounds.Width()) + { + oldMaxWidth=textBounds.Width(); + UpdateMinSize(); + } } } - bool UniscribeTextRun::BuildUniscribeData(WinDC* dc, List& breakings) + void GuiSolidLabelElementRenderer::OnElementStateChanged() { - ClearUniscribeData(); - - dc->SetFont(documentFragment->fontObject); - List breakingAvailabilities; - if(!wholeGlyph.BuildUniscribeData(dc, &scriptItem->scriptItem, scriptCache, runText, length, breakings, breakingAvailabilities)) + if(renderTarget) { - goto BUILD_UNISCRIBE_DATA_FAILED; - } + Color color=element->GetColor(); + if(oldColor!=color) + { + DestroyBrush(renderTarget); + CreateBrush(renderTarget); + } - if(breakings.Count()==1 && !breakingAvailabilities[0]) - { - SCRIPT_LOGATTR* charLogattrs=&scriptItem->charLogattrs[0]+startFromLine-scriptItem->startFromLine; - wholeGlyph.BuildUniscribeData(dc, &scriptItem->scriptItem, charLogattrs, runText, length); - needFontFallback=true; + FontProperties font=element->GetFont(); + if(oldFont!=font) + { + DestroyTextFormat(renderTarget); + CreateTextFormat(renderTarget); + } } - advance=wholeGlyph.runAbc.abcA+wholeGlyph.runAbc.abcB+wholeGlyph.runAbc.abcC; - - return true; - BUILD_UNISCRIBE_DATA_FAILED: - ClearUniscribeData(); - return false; + oldText=element->GetText(); + UpdateMinSize(); } - vint UniscribeTextRun::SumWidth(vint charStart, vint charLength) +/*********************************************************************** +GuiImageFrameElementRenderer +***********************************************************************/ + + void GuiImageFrameElementRenderer::UpdateBitmap(IWindowsDirect2DRenderTarget* renderTarget) { - vint cluster=0; - vint nextCluster=0; - SearchGlyphCluster(charStart, charLength, cluster, nextCluster); - vint width=0; - if(scriptItem->IsRightToLeft()) + if(renderTarget && element->GetImage()) { - for(vint i=cluster;i>nextCluster;i--) + INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); + bitmap=renderTarget->GetBitmap(frame, element->GetEnabled()); + + if (element->GetStretch()) { - width+=wholeGlyph.glyphAdvances[i]; + minSize=Size(0,0); + } + else + { + minSize=frame->GetSize(); } } else { - for(vint i=cluster;ifontStyle.size; } - vint UniscribeTextRun::SumTextHeight() + void GuiImageFrameElementRenderer::FinalizeInternal() { - return SumHeight(); } - void UniscribeTextRun::SearchForLineBreak(vint tempStart, vint maxWidth, bool firstRun, vint& charLength, vint& charAdvances) + void GuiImageFrameElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) { - vint width=0; - charLength=0; - charAdvances=0; - for(vint i=tempStart;i<=length;) + UpdateBitmap(newRenderTarget); + } + + GuiImageFrameElementRenderer::GuiImageFrameElementRenderer() + { + } + + void GuiImageFrameElementRenderer::Render(Rect bounds) + { + if(bitmap) { - if(i==length || scriptItem->charLogattrs[i+(startFromLine-scriptItem->startFromLine)].fSoftBreak==TRUE) + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + D2D1_RECT_F source=D2D1::RectF(0, 0, (FLOAT)minSize.x, (FLOAT)minSize.y); + D2D1_RECT_F destination; + if(element->GetStretch()) { - if(width<=maxWidth || (firstRun && charLength==0)) + INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); + auto size = frame->GetSize(); + source = D2D1::RectF(0, 0, (FLOAT)size.x, (FLOAT)size.y); + destination=D2D1::RectF((FLOAT)bounds.x1, (FLOAT)bounds.y1, (FLOAT)bounds.x2, (FLOAT)bounds.y2); + } + else + { + vint x=0; + vint y=0; + switch(element->GetHorizontalAlignment()) { - charLength=i-tempStart; - charAdvances=width; + case Alignment::Left: + x=bounds.Left(); + break; + case Alignment::Center: + x=bounds.Left()+(bounds.Width()-minSize.x)/2; + break; + case Alignment::Right: + x=bounds.Right()-minSize.x; + break; } - else + switch(element->GetVerticalAlignment()) { - return; + case Alignment::Top: + y=bounds.Top(); + break; + case Alignment::Center: + y=bounds.Top()+(bounds.Height()-minSize.y)/2; + break; + case Alignment::Bottom: + y=bounds.Bottom()-minSize.y; + break; } + destination=D2D1::RectF((FLOAT)x, (FLOAT)y, (FLOAT)(x+minSize.x), (FLOAT)(y+minSize.y)); } - if(i==length) break; - vint cluster=wholeGlyph.charCluster[i]; - vint clusterLength=1; - while(i+clusterLengthQueryInterface(&d2dDeviceContext); + if (!SUCCEEDED(hr)) { - break; + if (d2dDeviceContext) + { + d2dDeviceContext->Release(); + } + d2dDeviceContext = nullptr; } } - if(scriptItem->IsRightToLeft()) + if(element->GetImage()->GetFormat()==INativeImage::Gif && element->GetFrameIndex()>0) { - vint nextCluster - =i+clusterLength==length - ?-1 - :wholeGlyph.charCluster[i+clusterLength]; - for(vint j=cluster;j>nextCluster;j--) + vint max = element->GetFrameIndex(); + for (vint i = 0; i <= max; i++) { - width+=wholeGlyph.glyphAdvances[j]; + ComPtr frameBitmap=renderTarget->GetBitmap(element->GetImage()->GetFrame(i), element->GetEnabled()); + if (d2dDeviceContext) + { + d2dDeviceContext->DrawBitmap(frameBitmap.Obj(), destination, 1.0f, D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC, source); + } + else + { + d2dRenderTarget->DrawBitmap(frameBitmap.Obj(), destination, 1.0f, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, source); + } } } else { - vint nextCluster - =i+clusterLength==length - ?wholeGlyph.glyphs.Count() - :wholeGlyph.charCluster[i+clusterLength]; - for(vint j=cluster;jDrawBitmap(bitmap.Obj(), destination, 1.0f, D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC, source); + } + else + { + d2dRenderTarget->DrawBitmap(bitmap.Obj(), destination, 1.0f, D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, source); } } - i+=clusterLength; + + if (d2dDeviceContext) + { + d2dDeviceContext->Release(); + } } } - void UniscribeTextRun::Render(IRendererCallback* callback, vint fragmentBoundsIndex, vint offsetX, vint offsetY, bool renderBackground) + void GuiImageFrameElementRenderer::OnElementStateChanged() { - auto dc = callback->GetWinDC(); - RunFragmentBounds& fragment=fragmentBounds[fragmentBoundsIndex]; - if(fragment.length==0) return; + UpdateBitmap(renderTarget); + } - vint startFromFragmentBounds=0; - vint accumulatedWidth=0; - while(startFromFragmentBoundsGetPointCount()); + if (oldPoints.Count() > 0) { - vint charIndex=fragment.startFromRun+startFromFragmentBounds; - vint charLength=0; - vint cluster=0; - vint nextCluster=0; - SearchSingleGlyphCluster(charIndex, charLength, cluster, nextCluster); + memcpy(&oldPoints[0], &element->GetPoint(0), sizeof(Point)*element->GetPointCount()); + } + if (oldPoints.Count() >= 3) + { + ID2D1PathGeometry* pg = 0; + HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirect2DFactory()->CreatePathGeometry(&pg); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - vint clusterStart=0; - vint clusterCount=0; - if(scriptItem->IsRightToLeft()) - { - clusterStart=nextCluster+1; - clusterCount=cluster-nextCluster; - } - else - { - clusterStart=cluster; - clusterCount=nextCluster-cluster; - } + geometry = pg; + FillGeometry(Point(0, 0)); + } + } - vint clusterWidth=0; - for(vint i=0;iIsRightToLeft()) - { - x=fragment.bounds.x2-accumulatedWidth-clusterWidth; - } - else - { - x=fragment.bounds.x1+accumulatedWidth; - } - RECT rect; - rect.left=(int)(x+offsetX); - rect.top=(int)(fragment.bounds.Top()+offsetY); - rect.right=(int)(rect.left+clusterWidth); - rect.bottom=(int)(rect.top+fragment.bounds.Height()*1.5); + void GuiPolygonElementRenderer::FillGeometry(Point offset) + { + if (geometry) + { + ID2D1GeometrySink* pgs = 0; + HRESULT hr = geometry->Open(&pgs); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); - UniscribeColor color=documentFragment->GetCharColor(charIndex+startFromFragment); - if(renderBackground) + D2D1_POINT_2F p; + p.x = (FLOAT)(oldPoints[0].x + offset.x) + 0.5f; + p.y = (FLOAT)(oldPoints[0].y + offset.y) + 0.5f; + pgs->BeginFigure(p, D2D1_FIGURE_BEGIN_FILLED); + for (vint i = 1; i < oldPoints.Count(); i++) { - Color backgroundColor=color.backgroundColor; - - if(backgroundColor.a>0) - { - Ptr brush=new WinBrush(RGB(backgroundColor.r, backgroundColor.g, backgroundColor.b)); - dc->SetBrush(brush); - dc->FillRect(rect); - } + p.x = (FLOAT)(oldPoints[i].x + offset.x) + 0.5f; + p.y = (FLOAT)(oldPoints[i].y + offset.y) + 0.5f; + pgs->AddLine(p); } - else - { - Color fontColor=color.fontColor; - dc->SetFont(documentFragment->fontObject); - dc->SetTextColor(RGB(fontColor.r, fontColor.g, fontColor.b)); + pgs->EndFigure(D2D1_FIGURE_END_CLOSED); + pgs->Close(); + pgs->Release(); + } + } - if(needFontFallback) + void GuiPolygonElementRenderer::RecreateResource(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + { + if(oldRenderTarget==newRenderTarget) + { + if(oldRenderTarget) + { + if(oldBorderColor!=element->GetBorderColor()) { - dc->DrawBuffer(rect.left, rect.top, runText+charIndex, charLength); + oldRenderTarget->DestroyDirect2DBrush(oldBorderColor); + oldBorderColor=element->GetBorderColor(); + borderBrush=newRenderTarget->CreateDirect2DBrush(oldBorderColor); } - else + if(oldBackgroundColor!=element->GetBackgroundColor()) { - HRESULT hr=ScriptTextOut( - dc->GetHandle(), - &scriptCache, - rect.left, - rect.top, - 0, - &rect, - &wholeGlyph.sa, - NULL, - 0, - &wholeGlyph.glyphs[clusterStart], - (int)(clusterCount), - &wholeGlyph.glyphAdvances[clusterStart], - NULL, - &wholeGlyph.glyphOffsets[clusterStart] - ); + oldRenderTarget->DestroyDirect2DBrush(oldBackgroundColor); + oldBackgroundColor=element->GetBackgroundColor(); + backgroundBrush=newRenderTarget->CreateDirect2DBrush(oldBackgroundColor); } } - - startFromFragmentBounds+=charLength; - accumulatedWidth+=clusterWidth; + } + else + { + if(oldRenderTarget) + { + oldRenderTarget->DestroyDirect2DBrush(oldBorderColor); + oldRenderTarget->DestroyDirect2DBrush(oldBackgroundColor); + } + if(newRenderTarget) + { + oldBorderColor=element->GetBorderColor(); + oldBackgroundColor=element->GetBackgroundColor(); + borderBrush=newRenderTarget->CreateDirect2DBrush(oldBorderColor); + backgroundBrush=newRenderTarget->CreateDirect2DBrush(oldBackgroundColor); + } } } -/*********************************************************************** -UniscribeEmbeddedObjectRun -***********************************************************************/ - - UniscribeEmbeddedObjectRun::UniscribeEmbeddedObjectRun() + void GuiPolygonElementRenderer::InitializeInternal() { + oldBorderColor=element->GetBorderColor(); + oldBackgroundColor=element->GetBackgroundColor(); + RecreateResource(0, renderTarget); + CreateGeometry(); } - UniscribeEmbeddedObjectRun::~UniscribeEmbeddedObjectRun() + void GuiPolygonElementRenderer::FinalizeInternal() { + DestroyGeometry(); + RecreateResource(renderTarget, 0); } - bool UniscribeEmbeddedObjectRun::BuildUniscribeData(WinDC* dc, List& breakings) + void GuiPolygonElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) { - breakings.Add(0); - return true; + RecreateResource(oldRenderTarget, newRenderTarget); } - vint UniscribeEmbeddedObjectRun::SumWidth(vint charStart, vint charLength) + GuiPolygonElementRenderer::GuiPolygonElementRenderer() { - return properties.size.x; } - vint UniscribeEmbeddedObjectRun::SumHeight() + void GuiPolygonElementRenderer::Render(Rect bounds) { - return properties.size.y; - } + if(renderTarget && geometry) + { + ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget(); + vint offsetX=(bounds.Width()-minSize.x)/2+bounds.x1; + vint offsetY=(bounds.Height()-minSize.y)/2+bounds.y1; - vint UniscribeEmbeddedObjectRun::SumTextHeight() - { - return 0; - } + D2D1_MATRIX_3X2_F oldT, newT; + d2dRenderTarget->GetTransform(&oldT); + newT=D2D1::Matrix3x2F::Translation((FLOAT)offsetX, (FLOAT)offsetY); + d2dRenderTarget->SetTransform(&newT); - void UniscribeEmbeddedObjectRun::SearchForLineBreak(vint tempStart, vint maxWidth, bool firstRun, vint& charLength, vint& charAdvances) - { - if (firstRun || properties.size.x <= maxWidth) - { - charLength = length - tempStart; - charAdvances = properties.size.x; - } - else - { - charLength = 0; - charAdvances = 0; + d2dRenderTarget->FillGeometry(geometry.Obj(), backgroundBrush); + d2dRenderTarget->DrawGeometry(geometry.Obj(), borderBrush); + d2dRenderTarget->SetTransform(&oldT); } } - void UniscribeEmbeddedObjectRun::Render(IRendererCallback* callback, vint fragmentBoundsIndex, vint offsetX, vint offsetY, bool renderBackground) + void GuiPolygonElementRenderer::OnElementStateChanged() { - auto dc = callback->GetWinDC(); - RunFragmentBounds& fragment=fragmentBounds[fragmentBoundsIndex]; - if(renderBackground) - { - RECT rect; - rect.left=(int)(fragment.bounds.Left()+offsetX)-2; - rect.top=(int)(fragment.bounds.Top()+offsetY)-2; - rect.right=(int)(fragment.bounds.Right()+offsetX)+2; - rect.bottom=(int)(fragment.bounds.Bottom()+offsetY)+2; - - Color backgroundColor=documentFragment->colors.Values()[0].backgroundColor; + minSize=element->GetSize(); + RecreateResource(renderTarget, renderTarget); - if(backgroundColor.a>0) - { - Ptr brush=new WinBrush(RGB(backgroundColor.r, backgroundColor.g, backgroundColor.b)); - dc->SetBrush(brush); - dc->FillRect(rect); - } + bool polygonModified=false; + if(oldPoints.Count()!=element->GetPointCount()) + { + polygonModified=true; } else { - if (properties.backgroundImage) - { - Rect bounds=fragment.bounds; - bounds.x1+=offsetX; - bounds.x2+=offsetX; - bounds.y1+=offsetY; - bounds.y2+=offsetY; - IGuiGraphicsRenderer* renderer=properties.backgroundImage->GetRenderer(); - if(renderer) - { - renderer->Render(bounds); - } - } - - if (properties.callbackId != -1) + for(vint i=0;iGetParagraphCallback()) + if(oldPoints[i]!=element->GetPoint(i)) { - auto offset = callback->GetParagraphOffset(); - vint x = fragment.bounds.x1 + offsetX - offset.x; - vint y = fragment.bounds.y1 + offsetY - offset.y; - auto size = paragraphCallback->OnRenderInlineObject(properties.callbackId, Rect(Point(x, y), fragment.bounds.GetSize())); - properties.size = size; + polygonModified=true; + break; } } } + if(polygonModified) + { + DestroyGeometry(); + CreateGeometry(); + } } /*********************************************************************** -UniscribeVirtualLine +GuiColorizedTextElementRenderer ***********************************************************************/ - UniscribeVirtualLine::UniscribeVirtualLine() - :startFromLine(0) - ,length(0) - ,runText(0) - ,firstRunIndex(-1) - ,firstRunBoundsIndex(-1) - ,lastRunIndex(-1) - ,lastRunBoundsIndex(-1) + void GuiColorizedTextElementRenderer::CreateTextBrush(IWindowsDirect2DRenderTarget* _renderTarget) { + if(_renderTarget) + { + colors.Resize(element->GetColors().Count()); + for(vint i=0;iGetColors().Get(i); + ColorEntryResource newEntry; + + newEntry.normal.text=entry.normal.text; + newEntry.normal.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.normal.text); + newEntry.normal.background=entry.normal.background; + newEntry.normal.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.normal.background); + newEntry.selectedFocused.text=entry.selectedFocused.text; + newEntry.selectedFocused.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedFocused.text); + newEntry.selectedFocused.background=entry.selectedFocused.background; + newEntry.selectedFocused.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedFocused.background); + newEntry.selectedUnfocused.text=entry.selectedUnfocused.text; + newEntry.selectedUnfocused.textBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedUnfocused.text); + newEntry.selectedUnfocused.background=entry.selectedUnfocused.background; + newEntry.selectedUnfocused.backgroundBrush=_renderTarget->CreateDirect2DBrush(newEntry.selectedUnfocused.background); + colors[i]=newEntry; + } + } } -/*********************************************************************** -UniscribeLine -***********************************************************************/ + void GuiColorizedTextElementRenderer::DestroyTextBrush(IWindowsDirect2DRenderTarget* _renderTarget) + { + if(_renderTarget) + { + for(vint i=0;iDestroyDirect2DBrush(colors[i].normal.text); + _renderTarget->DestroyDirect2DBrush(colors[i].normal.background); + _renderTarget->DestroyDirect2DBrush(colors[i].selectedFocused.text); + _renderTarget->DestroyDirect2DBrush(colors[i].selectedFocused.background); + _renderTarget->DestroyDirect2DBrush(colors[i].selectedUnfocused.text); + _renderTarget->DestroyDirect2DBrush(colors[i].selectedUnfocused.background); + } + colors.Resize(0); + } + } - UniscribeLine::UniscribeLine() - :startFromParagraph(0) + void GuiColorizedTextElementRenderer::CreateCaretBrush(IWindowsDirect2DRenderTarget* _renderTarget) { + if(_renderTarget) + { + oldCaretColor=element->GetCaretColor(); + caretBrush=_renderTarget->CreateDirect2DBrush(oldCaretColor); + } } - void UniscribeLine::ClearUniscribeData() + void GuiColorizedTextElementRenderer::DestroyCaretBrush(IWindowsDirect2DRenderTarget* _renderTarget) { - scriptItems.Clear(); - scriptRuns.Clear(); - virtualLines.Clear(); + if(_renderTarget) + { + if(caretBrush) + { + _renderTarget->DestroyDirect2DBrush(oldCaretColor); + caretBrush=0; + } + } } - bool UniscribeLine::BuildUniscribeData(WinDC* dc) + void GuiColorizedTextElementRenderer::ColorChanged() { - lineText=L""; - ClearUniscribeData(); - vint current=0; - List fragmentStarts; - for (auto fragment : documentFragments) + DestroyTextBrush(renderTarget); + CreateTextBrush(renderTarget); + } + + void GuiColorizedTextElementRenderer::FontChanged() + { + IWindowsDirect2DResourceManager* resourceManager = GetWindowsDirect2DResourceManager(); + if (textFormat) { - fragmentStarts.Add(current); - lineText+=fragment->text; - current+=fragment->text.Length(); + element->GetLines().SetCharMeasurer(nullptr); + resourceManager->DestroyDirect2DTextFormat(oldFont); + resourceManager->DestroyDirect2DCharMeasurer(oldFont); + } + oldFont = element->GetFont(); + if (oldFont.fontFamily == L"") oldFont.fontFamily = windows::GetWindowsNativeController()->ResourceService()->GetDefaultFont().fontFamily; + if (oldFont.size == 0) oldFont.size = 12; + + textFormat = resourceManager->CreateDirect2DTextFormat(oldFont); + element->GetLines().SetCharMeasurer(resourceManager->CreateDirect2DCharMeasurer(oldFont).Obj()); + } + + text::CharMeasurer* GuiColorizedTextElementRenderer::GetCharMeasurer() + { + return 0; + } + + void GuiColorizedTextElementRenderer::InitializeInternal() + { + textFormat=0; + caretBrush=0; + element->SetCallback(this); + } + + void GuiColorizedTextElementRenderer::FinalizeInternal() + { + DestroyTextBrush(renderTarget); + DestroyCaretBrush(renderTarget); + + IWindowsDirect2DResourceManager* resourceManager=GetWindowsDirect2DResourceManager(); + if(textFormat) + { + resourceManager->DestroyDirect2DTextFormat(oldFont); + resourceManager->DestroyDirect2DCharMeasurer(oldFont); } + } - if(lineText!=L"") + void GuiColorizedTextElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + { + DestroyTextBrush(oldRenderTarget); + DestroyCaretBrush(oldRenderTarget); + CreateTextBrush(newRenderTarget); + CreateCaretBrush(newRenderTarget); + element->GetLines().SetRenderTarget(newRenderTarget); + } + + void GuiColorizedTextElementRenderer::Render(Rect bounds) + { + if (renderTarget) { + ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget(); + wchar_t passwordChar = element->GetPasswordChar(); + Point viewPosition = element->GetViewPosition(); + Rect viewBounds(viewPosition, bounds.GetSize()); + vint startRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, viewBounds.y1)).row; + vint endRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, viewBounds.y2)).row; + TextPos selectionBegin = element->GetCaretBegin() < element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); + TextPos selectionEnd = element->GetCaretBegin() > element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); + bool focused = element->GetFocused(); + + renderTarget->SetTextAntialias(oldFont.antialias, oldFont.verticalAntialias); + + for (vint row = startRow; row <= endRow; row++) { - SCRIPT_DIGITSUBSTITUTE sds={0}; - ScriptRecordDigitSubstitution(LOCALE_USER_DEFAULT, &sds); - SCRIPT_CONTROL sc={0}; - SCRIPT_STATE ss={0}; - ScriptApplyDigitSubstitution(&sds, &sc, &ss); + Rect startRect = element->GetLines().GetRectFromTextPos(TextPos(row, 0)); + Point startPoint = startRect.LeftTop(); + vint startColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, startPoint.y)).column; + vint endColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, startPoint.y)).column; - // itemize a line - Array items(lineText.Length()+2); - int scriptItemCount=0; - HRESULT hr=ScriptItemize( - lineText.Buffer(), - (int)lineText.Length(), - (int)(items.Count()-1), - &sc, - &ss, - &items[0], - &scriptItemCount - ); - if(hr!=0) + text::TextLine& line = element->GetLines().GetLine(row); + if (endColumn + 1 < line.dataLength && text::UTF16SPFirst(line.text[endColumn]) && text::UTF16SPSecond(line.text[startColumn + 1])) { - goto BUILD_UNISCRIBE_DATA_FAILED; + endColumn++; } - items.Resize(scriptItemCount+1); - for(vint i=0;i scriptItem=new UniscribeItem; - scriptItem->startFromLine=item.iCharPos; - scriptItem->length=items[i+1].iCharPos-item.iCharPos; - scriptItem->itemText=lineText.Buffer()+item.iCharPos; - scriptItem->scriptItem=item; + bool inSelection = false; + if (selectionBegin.row == selectionEnd.row) + { + inSelection = (row == selectionBegin.row && selectionBegin.column <= column && column < selectionEnd.column); + } + else if (row == selectionBegin.row) + { + inSelection = selectionBegin.column <= column; + } + else if (row == selectionEnd.row) + { + inSelection = column < selectionEnd.column; + } + else + { + inSelection = selectionBegin.row < row && row < selectionEnd.row; + } - if(!scriptItem->BuildUniscribeData()) + bool crlf = column == line.dataLength; + vint colorIndex = crlf ? 0 : line.att[column].colorIndex; + if (colorIndex >= colors.Count()) { - goto BUILD_UNISCRIBE_DATA_FAILED; + colorIndex = 0; } - scriptItems.Add(scriptItem); + ColorItemResource& color = + !inSelection ? colors[colorIndex].normal : + focused ? colors[colorIndex].selectedFocused : + colors[colorIndex].selectedUnfocused; + vint x2 = crlf ? x + startRect.Height() / 2 : line.att[column].rightOffset; + vint tx = x - viewPosition.x + bounds.x1; + vint ty = startPoint.y - viewPosition.y + bounds.y1; + + if (color.background.a > 0) + { + d2dRenderTarget->FillRectangle(D2D1::RectF((FLOAT)tx, (FLOAT)ty, (FLOAT)(tx + (x2 - x)), (FLOAT)(ty + startRect.Height())), color.backgroundBrush); + } + if (!crlf) + { + UINT32 count = text::UTF16SPFirst(line.text[column]) && column + 1 < line.dataLength && text::UTF16SPSecond(line.text[column + 1]) ? 2 : 1; + d2dRenderTarget->DrawText( + (passwordChar ? &passwordChar : &line.text[column]), + count, + textFormat->textFormat.Obj(), + D2D1::RectF((FLOAT)tx, (FLOAT)ty, (FLOAT)tx + 1, (FLOAT)ty + 1), + color.textBrush, + D2D1_DRAW_TEXT_OPTIONS_NO_SNAP, + DWRITE_MEASURING_MODE_GDI_NATURAL + ); + if (count == 2) column++; + } + x = x2; } } - { - // use item and document fragment information to produce runs - // one item is constructed by one or more runs - // characters in each run contains the same style - vint fragmentIndex=0; - vint fragmentStart=0; - for(vint i=0;i scriptItem=scriptItems[i]; - vint currentStart=scriptItem->startFromLine; - while(currentStartstartFromLine+scriptItem->length) - { - UniscribeFragment* fragment=0; - vint itemRemainLength=scriptItem->length-(currentStart-scriptItem->startFromLine); - vint fragmentRemainLength=0; - while(true) - { - fragment=documentFragments[fragmentIndex].Obj(); - fragmentRemainLength=fragment->text.Length()-(currentStart-fragmentStart); - if(fragmentRemainLength<=0) - { - fragmentStart+=fragment->text.Length(); - fragmentIndex++; - } - else - { - break; - } - } - vint shortLength=itemRemainLengthtext.Length(); - if(elementFragment->inlineObjectProperties) - { - if(elementCurrent<=currentStart && currentStart+shortLength<=elementCurrent+elementLength) - { - if(elementCurrent==currentStart) - { - auto run=MakePtr(); - run->documentFragment=fragment; - run->scriptItem=scriptItem.Obj(); - run->startFromLine=currentStart; - run->startFromFragment=currentStart-fragmentStarts[fragmentIndex]; - run->length=elementLength; - run->runText=lineText.Buffer()+currentStart; - run->properties=elementFragment->inlineObjectProperties.Value(); - scriptRuns.Add(run); - } - skip=true; - break; - } - } - elementCurrent+=elementLength; - } - } - if(!skip) - { - Ptr run=new UniscribeTextRun; - run->documentFragment=fragment; - run->scriptItem=scriptItem.Obj(); - run->startFromLine=currentStart; - run->startFromFragment=currentStart-fragmentStarts[fragmentIndex]; - run->length=shortLength; - run->runText=lineText.Buffer()+currentStart; - scriptRuns.Add(run); - } - currentStart+=shortLength; - } - } - - // for each run, generate shape information - vint runIndex=0; - while(runIndex run=scriptRuns[runIndex]; - List breakings; - if(!run->BuildUniscribeData(dc, breakings)) - { - goto BUILD_UNISCRIBE_DATA_FAILED; - } - else if(breakings.Count()>1) - { - if(Ptr textRun=run.Cast()) - { - scriptRuns.RemoveAt(runIndex); - for(vint i=0;ilength-start:breakings[i+1]-start; + if (element->GetCaretVisible() && element->GetLines().IsAvailable(element->GetCaretEnd())) + { + Point caretPoint = element->GetLines().GetPointFromTextPos(element->GetCaretEnd()); + vint height = element->GetLines().GetRowHeight(); + Point p1(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); + Point p2(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); + d2dRenderTarget->DrawLine( + D2D1::Point2F((FLOAT)p1.x + 0.5f, (FLOAT)p1.y), + D2D1::Point2F((FLOAT)p2.x + 0.5f, (FLOAT)p2.y), + caretBrush + ); + d2dRenderTarget->DrawLine( + D2D1::Point2F((FLOAT)p1.x - 0.5f, (FLOAT)p1.y), + D2D1::Point2F((FLOAT)p2.x - 0.5f, (FLOAT)p2.y), + caretBrush + ); + } + } + } - Ptr newRun=new UniscribeTextRun; - newRun->documentFragment=run->documentFragment; - newRun->scriptItem=run->scriptItem; - newRun->startFromLine=start+run->startFromLine; - newRun->startFromFragment=start+run->startFromFragment; - newRun->length=length; - newRun->runText=run->runText+newRun->startFromLine-run->startFromLine; - scriptRuns.Insert(runIndex+i, newRun); - } - continue; - } - } - runIndex++; - } + void GuiColorizedTextElementRenderer::OnElementStateChanged() + { + if(renderTarget) + { + Color caretColor=element->GetCaretColor(); + if(oldCaretColor!=caretColor) + { + DestroyCaretBrush(renderTarget); + CreateCaretBrush(renderTarget); } } - return true; - BUILD_UNISCRIBE_DATA_FAILED: - ClearUniscribeData(); - return false; } - void UniscribeLine::Layout(vint availableWidth, Alignment alignment, vint top, vint& totalHeight) +/*********************************************************************** +GuiDirect2DElementRenderer +***********************************************************************/ + + void GuiDirect2DElementRenderer::InitializeInternal() { - vint cx=0; - vint cy=top; - virtualLines.Clear(); - if(scriptRuns.Count()==0) + } + + void GuiDirect2DElementRenderer::FinalizeInternal() + { + } + + void GuiDirect2DElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget) + { + IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); + ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory(); + if(oldRenderTarget) { - // if this line doesn't contains any run, skip and render a blank line - vint height=(vint)(documentFragments[0]->fontStyle.size*1.5); - bounds=Rect(Point(cx, cy), Size(0, height)); - cy+=height; + GuiDirect2DElementEventArgs arguments(element, oldRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect()); + element->BeforeRenderTargetChanged.Execute(arguments); } - else + if(newRenderTarget) { - for (auto run : scriptRuns) - { - run->fragmentBounds.Clear(); - } + GuiDirect2DElementEventArgs arguments(element, newRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect()); + element->AfterRenderTargetChanged.Execute(arguments); + } + } - // render this line into lines with auto line wrapping - vint startRun=0; - vint startRunOffset=0; - vint lastRun=0; - vint lastRunOffset=0; - vint currentWidth=0; + GuiDirect2DElementRenderer::GuiDirect2DElementRenderer() + { + } - while(startRunGetDirectWriteFactory(); + ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory(); + renderTarget->PushClipper(bounds); + if(!renderTarget->IsClipperCoverWholeTarget()) { - vint currentWidth=0; - bool firstRun=true; - // search for a range to fit in the given width - for(vint i=startRun;iSearchForLineBreak(lastRunOffset, availableWidth-currentWidth, firstRun, charLength, charAdvances); - firstRun=false; + ID2D1RenderTarget* rt=renderTarget->GetDirect2DRenderTarget(); + GuiDirect2DElementEventArgs arguments(element, rt, fdw, fd2d, bounds); + element->Rendering.Execute(arguments); + } + renderTarget->PopClipper(); + } + } - if(charLength==run->length-lastRunOffset) - { - lastRun=i+1; - lastRunOffset=0; - currentWidth+=charAdvances; - } - else - { - lastRun=i; - lastRunOffset=lastRunOffset+charLength; - break; - } - } + void GuiDirect2DElementRenderer::OnElementStateChanged() + { + } + } + } +} - // if the range is empty, than this should be the end of line, ignore it - if(startRunSumHeight(); - if(maxHeightSumTextHeight(); - if(maxTextHeight levels(availableLastRun-startRun+1); - Array runVisualToLogical(levels.Count()); - Array runLogicalToVisual(levels.Count()); - for(vint i=startRun;i<=availableLastRun;i++) - { - levels[i-startRun]=scriptRuns[i]->scriptItem->scriptItem.a.s.uBidiLevel; - } - ScriptLayout((int)levels.Count(), &levels[0], &runVisualToLogical[0], &runLogicalToVisual[0]); - - // render all runs inside this range - vint startRunFragmentCount=-1; - for(vint i=startRun;i<=availableLastRun;i++) - { - vint runIndex=runVisualToLogical[i-startRun]+startRun; - UniscribeRun* run=scriptRuns[runIndex].Obj(); - vint start=runIndex==startRun?startRunOffset:0; - vint end=runIndex==lastRun?lastRunOffset:run->length; - vint length=end-start; - - if(runIndex==startRun) - { - startRunFragmentCount=run->fragmentBounds.Count(); - } - - UniscribeRun::RunFragmentBounds fragmentBounds; - fragmentBounds.startFromRun=start; - fragmentBounds.length=length; - fragmentBounds.bounds=Rect( - Point(cx, cy+maxHeight-run->SumHeight()), - Size(run->SumWidth(start, length), run->SumHeight()) - ); - run->fragmentBounds.Add(fragmentBounds); - - cx+=run->SumWidth(start, length); - } - - // adjust alignment - vint cxOffset=0; - switch(alignment) - { - case Alignment::Center: - cxOffset=(availableWidth-cx)/2; - break; - case Alignment::Right: - cxOffset=availableWidth-cx; - break; - } - - // shift all bounds using alignment - if(cxOffset!=0) - { - for(vint i=startRun;i<=availableLastRun;i++) - { - UniscribeRun* run=scriptRuns[i].Obj(); - for(vint j=(i==startRun?startRunFragmentCount:0);jfragmentBounds.Count();j++) - { - UniscribeRun::RunFragmentBounds& fragmentBounds=run->fragmentBounds[j]; - fragmentBounds.bounds.x1+=cxOffset; - fragmentBounds.bounds.x2+=cxOffset; - } - } - } - - // create a virtual line - { - Ptr virtualLine=new UniscribeVirtualLine; - virtualLine->firstRunIndex=startRun; - virtualLine->firstRunBoundsIndex=startRunFragmentCount; - virtualLine->lastRunIndex=availableLastRun; - virtualLine->lastRunBoundsIndex=scriptRuns[availableLastRun]->fragmentBounds.Count()-1; - - UniscribeRun* firstRun=scriptRuns[virtualLine->firstRunIndex].Obj(); - UniscribeRun* lastRun=scriptRuns[virtualLine->lastRunIndex].Obj(); - UniscribeRun::RunFragmentBounds& firstBounds=firstRun->fragmentBounds[virtualLine->firstRunBoundsIndex]; - UniscribeRun::RunFragmentBounds& lastBounds=lastRun->fragmentBounds[virtualLine->lastRunBoundsIndex]; - - virtualLine->startFromLine=firstRun->startFromLine+firstBounds.startFromRun; - virtualLine->length=lastRun->startFromLine+lastBounds.startFromRun+lastBounds.length-virtualLine->startFromLine; - virtualLine->runText=lineText.Buffer()+virtualLine->startFromLine; - - bool updateBounds=false; - for(vint i=startRun;i<=availableLastRun;i++) - { - UniscribeRun* run=scriptRuns[i].Obj(); - for(vint j=(i==startRun?startRunFragmentCount:0);jfragmentBounds.Count();j++) - { - UniscribeRun::RunFragmentBounds& fragmentBounds=run->fragmentBounds[j]; - if(updateBounds) - { - if(virtualLine->bounds.x1>fragmentBounds.bounds.x1) virtualLine->bounds.x1=fragmentBounds.bounds.x1; - if(virtualLine->bounds.x2bounds.x2=fragmentBounds.bounds.x2; - if(virtualLine->bounds.y1>fragmentBounds.bounds.y1) virtualLine->bounds.y1=fragmentBounds.bounds.y1; - if(virtualLine->bounds.y2bounds.y2=fragmentBounds.bounds.y2; - } - else - { - virtualLine->bounds=fragmentBounds.bounds; - updateBounds=true; - } - } - } - virtualLines.Add(virtualLine); - } - - cx=0; - cy+=(vint)(maxHeight + maxTextHeight*0.5); - } - - startRun=lastRun; - startRunOffset=lastRunOffset; - } - - // calculate line bounds - vint minX=0; - vint minY=top; - vint maxX=0; - vint maxY=top; - for (auto run : scriptRuns) - { - for (auto fragmentBounds : run->fragmentBounds) - { - Rect bounds=fragmentBounds.bounds; - if(minX>bounds.Left()) minX=bounds.Left(); - if(minY>bounds.Top()) minX=bounds.Top(); - if(maxXfragmentBounds.Count();i++) - { - run->Render(callback, i, offsetX, offsetY, renderBackground); - } - } - } +namespace vl +{ + namespace presentation + { + namespace elements + { /*********************************************************************** -UniscribeParagraph +GuiDirect2DElement ***********************************************************************/ - UniscribeParagraph::UniscribeParagraph() - :lastAvailableWidth(-1) - ,paragraphAlignment(Alignment::Left) - ,built(false) + GuiDirect2DElement::GuiDirect2DElement() { } + } - UniscribeParagraph::~UniscribeParagraph() + namespace elements_windows_d2d + { + using namespace elements; + using namespace collections; + using namespace windows; + + D2D1::ColorF GetD2DColor(Color color) { - ClearUniscribeData(); + return D2D1::ColorF(color.r / 255.0f, color.g / 255.0f, color.b / 255.0f, color.a / 255.0f); } /*********************************************************************** -UniscribeParagraph (Initialization) +CachedResourceAllocator ***********************************************************************/ - void UniscribeParagraph::ClearUniscribeData() + class CachedSolidBrushAllocator { - for (auto fragment : documentFragments) + DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, ComPtr) + + IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr; + public: + CachedSolidBrushAllocator() { - GetWindowsGDIResourceManager()->DestroyGdiFont(fragment->fontStyle); - fragment->fontObject=0; } - lines.Clear(); - lastAvailableWidth=-1; - } - - bool UniscribeParagraph::BuildUniscribeData(WinDC* dc) - { - if(built) return false; - built=true; - ClearUniscribeData(); - Dictionary> fonts; - for (auto fragment : documentFragments) + void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) { - if(!fragment->fontObject) - { - WString fragmentFingerPrint=fragment->GetFingerprint(); - vint index=fonts.Keys().IndexOf(fragmentFingerPrint); - if(index==-1) - { - fragment->fontObject=GetWindowsGDIResourceManager()->CreateGdiFont(fragment->fontStyle); - fonts.Add(fragmentFingerPrint, fragment->fontObject); - } - else - { - fragment->fontObject=fonts.Values().Get(index); - } - } + guiRenderTarget = _guiRenderTarget; } - { - Regex regexLine(L"\r\n"); - Ptr line; - for (auto fragment : documentFragments) - { - if(fragment->inlineObjectProperties) - { - if(!line) - { - line=new UniscribeLine; - lines.Add(line); - } - line->documentFragments.Add(fragment); - } - else - { - RegexMatch::List textLines; - regexLine.Split(fragment->text, true, textLines); - - for(vint i=0;iResult(); - WString text=rs.Value(); - if(i>0) - { - line=0; - } - if(!line) - { - line=new UniscribeLine; - lines.Add(line); - } - if(textLines.Count()==1) - { - line->documentFragments.Add(fragment); - } - else - { - Ptr runFragment=fragment->Copy(rs.Start(), rs.Length()); - line->documentFragments.Add(runFragment); - } - } - } - } + ComPtr CreateInternal(Color color) + { + ID2D1SolidColorBrush* brush = 0; + auto renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); + HRESULT hr = renderTarget->CreateSolidColorBrush(GetD2DColor(color), &brush); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + return brush; } + }; - for (auto line : lines) + class CachedLinearBrushAllocator + { + typedef Pair ColorPair; + DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr) + + IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr; + public: + CachedLinearBrushAllocator() { - line->BuildUniscribeData(dc); } - vint lineStart=0; - for (auto line : lines) + void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) { - line->startFromParagraph=lineStart; - lineStart+=line->lineText.Length()+2; + guiRenderTarget = _guiRenderTarget; } - return true; - } - - void UniscribeParagraph::Layout(vint availableWidth, Alignment alignment) - { - if(lastAvailableWidth==availableWidth && paragraphAlignment==alignment) + ComPtr CreateInternal(ColorPair colors) { - return; + ID2D1RenderTarget* renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); + ID2D1GradientStopCollection* stopCollection = 0; + { + D2D1_GRADIENT_STOP stops[2]; + stops[0].color = GetD2DColor(colors.key); + stops[0].position = 0.0f; + stops[1].color = GetD2DColor(colors.value); + stops[1].position = 1.0f; + + HRESULT hr = renderTarget->CreateGradientStopCollection( + stops, + 2, + D2D1_GAMMA_2_2, + D2D1_EXTEND_MODE_CLAMP, + &stopCollection); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + } + + ID2D1LinearGradientBrush* brush = 0; + { + D2D1_POINT_2F points[2] = { {0, 0}, {0, 0} }; + HRESULT hr = renderTarget->CreateLinearGradientBrush( + D2D1::LinearGradientBrushProperties(points[0], points[1]), + stopCollection, + &brush); + stopCollection->Release(); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + } + return brush; } - lastAvailableWidth=availableWidth; - paragraphAlignment=alignment; + }; - vint cy=0; - for (auto line : lines) + class CachedRadialBrushAllocator + { + typedef Pair ColorPair; + DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr) + + IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr; + public: + CachedRadialBrushAllocator() { - line->Layout(availableWidth, alignment, cy, cy); } - // calculate paragraph bounds - vint minX=0; - vint minY=0; - vint maxX=0; - vint maxY=0; - for (auto line : lines) + void SetRenderTarget(IWindowsDirect2DRenderTarget* _guiRenderTarget) { - Rect bounds=line->bounds; - if(minX>bounds.Left()) minX=bounds.Left(); - if(minY>bounds.Top()) minX=bounds.Top(); - if(maxX CreateInternal(ColorPair colors) { - for (auto fragment : line->documentFragments) + ID2D1RenderTarget* renderTarget = guiRenderTarget->GetDirect2DRenderTarget(); + ID2D1GradientStopCollection* stopCollection = 0; { - vint size=fragment->fontStyle.size/3; - if(size>offsetY) - { - offsetY=size; - } + D2D1_GRADIENT_STOP stops[2]; + stops[0].color = GetD2DColor(colors.key); + stops[0].position = 0.0f; + stops[1].color = GetD2DColor(colors.value); + stops[1].position = 1.0f; + + HRESULT hr = renderTarget->CreateGradientStopCollection( + stops, + 2, + D2D1_GAMMA_2_2, + D2D1_EXTEND_MODE_CLAMP, + &stopCollection); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + } + + ID2D1RadialGradientBrush* brush = 0; + { + D2D1_POINT_2F points[2] = { {0, 0}, {0, 0} }; + HRESULT hr = renderTarget->CreateRadialGradientBrush( + D2D1::RadialGradientBrushProperties(points[0], points[1], 1, 1), + stopCollection, + &brush); + stopCollection->Release(); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); } + return brush; } - bounds=Rect(minX, minY, maxX, maxY+offsetY); - } + }; - void UniscribeParagraph::Render(UniscribeRun::IRendererCallback* callback, bool renderBackground) + class CachedTextFormatAllocator { - auto offset = callback->GetParagraphOffset(); - for (auto line : lines) + private: + DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) + public: + + static ComPtr CreateDirect2DFont(const FontProperties& fontProperties) { - line->Render(callback, offset.x, offset.y, renderBackground); + IDWriteFactory* dwriteFactory = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); + IDWriteTextFormat* format = 0; + HRESULT hr = dwriteFactory->CreateTextFormat( + fontProperties.fontFamily.Buffer(), + NULL, + (fontProperties.bold ? DWRITE_FONT_WEIGHT_BOLD : DWRITE_FONT_WEIGHT_NORMAL), + (fontProperties.italic ? DWRITE_FONT_STYLE_ITALIC : DWRITE_FONT_STYLE_NORMAL), + DWRITE_FONT_STRETCH_NORMAL, + (FLOAT)fontProperties.size, + L"", + &format); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + format->SetWordWrapping(DWRITE_WORD_WRAPPING_NO_WRAP); + return format; } - } -/*********************************************************************** -UniscribeParagraph (Formatting Helper) -***********************************************************************/ + Ptr CreateInternal(const FontProperties& fontProperties) + { + auto textFormat = Ptr(new Direct2DTextFormatPackage); + textFormat->textFormat = CreateDirect2DFont(fontProperties); + textFormat->trimming.granularity = DWRITE_TRIMMING_GRANULARITY_CHARACTER; + textFormat->trimming.delimiter = 0; + textFormat->trimming.delimiterCount = 0; - void UniscribeParagraph::SearchFragment(vint start, vint length, vint& fs, vint& ss, vint& fe, vint& se) + IDWriteInlineObject* ellipseInlineObject = 0; + GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateEllipsisTrimmingSign(textFormat->textFormat.Obj(), &ellipseInlineObject); + textFormat->ellipseInlineObject = ellipseInlineObject; + return textFormat; + } + }; + + class CachedCharMeasurerAllocator { - fs=-1; - ss=-1; - fe=-1; - se=-1; - vint current=0; - for(vint i=0;i) + + protected: + class Direct2DCharMeasurer : public text::CharMeasurer { - vint fragmentLength=documentFragments[i]->text.Length(); - if(current<=start && start font; + vint size; + + Size MeasureInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) { - fs=i; - ss=start-current; + Size charSize(0, 0); + IDWriteTextLayout* textLayout = 0; + + UINT32 count = text::UTF16SPFirst(codePoint.characters[0]) && text::UTF16SPSecond(codePoint.characters[1]) ? 2 : 1; + HRESULT hr = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory()->CreateTextLayout( + codePoint.characters, + count, + font.Obj(), + 0, + 0, + &textLayout); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + + DWRITE_TEXT_METRICS metrics; + hr = textLayout->GetMetrics(&metrics); + if (!FAILED(hr)) + { + charSize = Size((vint)ceil(metrics.widthIncludingTrailingWhitespace), (vint)ceil(metrics.height)); + } + textLayout->Release(); + return charSize; } - if(current<=start+length && start+length<=current+fragmentLength) + + vint MeasureWidthInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) { - fe=i; - se=start+length-current; + return MeasureInternal(codePoint, renderTarget).x; } - if(fs!=-1 && fe!=-1) + + vint GetRowHeightInternal(IGuiGraphicsRenderTarget* renderTarget) { - break; + return MeasureInternal({ L' ' }, renderTarget).y; } - current+=fragmentLength; + public: + Direct2DCharMeasurer(ComPtr _font, vint _size) + :text::CharMeasurer(_size) + ,size(_size) + ,font(_font) + { + } + }; + public: + Ptr CreateInternal(const FontProperties& value) + { + return Ptr(new Direct2DCharMeasurer(CachedTextFormatAllocator::CreateDirect2DFont(value), value.size)); } - } + }; - bool UniscribeParagraph::CutFragment(vint fs, vint ss, vint fe, vint se, vint& f1, vint& f2) +/*********************************************************************** +WindowsDirect2DRenderTarget +***********************************************************************/ + + class WindowsDirect2DImageFrameCache : public Object, public INativeImageFrameCache { - f1=-1; - f2=-1; - if(fs==fe) + protected: + IWindowsDirect2DRenderTarget* renderTarget = nullptr; + INativeImageFrame* cachedFrame = nullptr; + ComPtr bitmap; + ComPtr disabledBitmap; + public: + WindowsDirect2DImageFrameCache(IWindowsDirect2DRenderTarget* _renderTarget) + :renderTarget(_renderTarget) { - Ptr fragment=documentFragments[fs]; - if(fragment->inlineObjectProperties) - { - if(ss==0 && se==fragment->text.Length()) - { - f1=f2=fs; - return true; - } - else - { - return false; - } - } } - for(vint i=fs;i<=fe;i++) + + ~WindowsDirect2DImageFrameCache() { - if(documentFragments[i]->inlineObjectProperties) - { - return false; - } } - if(fs==fe) + + void OnAttach(INativeImageFrame* frame)override { - Ptr fragment=documentFragments[fs]; - vint length=fragment->text.Length(); - if(ss==0) - { - if(se==length) - { - f1=f2=fs; - } - else - { - f1=f2=fs; - Ptr leftFragment=fragment->Copy(0, se); - Ptr rightFragment=fragment->Copy(se, length-se); - documentFragments.RemoveAt(fs); - documentFragments.Insert(fs, leftFragment); - documentFragments.Insert(fs+1, rightFragment); - } + cachedFrame = frame; + ID2D1Bitmap* d2dBitmap = 0; + HRESULT hr = renderTarget->GetDirect2DRenderTarget()->CreateBitmapFromWicBitmap( + GetWindowsDirect2DObjectProvider()->GetWICBitmap(frame), + &d2dBitmap + ); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + bitmap = d2dBitmap; + } + + void OnDetach(INativeImageFrame* frame)override + { + renderTarget->DestroyBitmapCache(cachedFrame); + } + + INativeImageFrame* GetFrame() + { + return cachedFrame; + } + + ComPtr GetBitmap(bool enabled) + { + if (enabled) + { + return bitmap; } else { - if(se==length) - { - f1=fs+1; - f2=fs+1; - Ptr leftFragment=fragment->Copy(0, ss); - Ptr rightFragment=fragment->Copy(ss, length-ss); - documentFragments.RemoveAt(fs); - documentFragments.Insert(fs, leftFragment); - documentFragments.Insert(fs+1, rightFragment); - } - else + if (!disabledBitmap) { - f1=fs+1; - f2=fs+1; - Ptr leftFragment=fragment->Copy(0, ss); - Ptr middleFragment=fragment->Copy(ss, se-ss); - Ptr rightFragment=fragment->Copy(se, length-se); - documentFragments.RemoveAt(fs); - documentFragments.Insert(fs, leftFragment); - documentFragments.Insert(fs+1, middleFragment); - documentFragments.Insert(fs+2, rightFragment); + IWICBitmap* frameBitmap = GetWindowsDirect2DObjectProvider()->GetWICBitmap(cachedFrame); + ID2D1Bitmap* d2dBitmap = 0; + HRESULT hr = renderTarget->GetDirect2DRenderTarget()->CreateBitmapFromWicBitmap( + frameBitmap, + &d2dBitmap + ); + CHECK_ERROR(SUCCEEDED(hr), L"You should check HRESULT to see why it failed."); + + disabledBitmap = d2dBitmap; + WICRect rect; + rect.X = 0; + rect.Y = 0; + rect.Width = bitmap->GetPixelSize().width; + rect.Height = bitmap->GetPixelSize().height; + BYTE* buffer = new BYTE[rect.Width * rect.Height * 4]; + hr = frameBitmap->CopyPixels(&rect, rect.Width * 4, rect.Width * rect.Height * 4, buffer); + if (SUCCEEDED(hr)) + { + vint count = rect.Width * rect.Height; + BYTE* read = buffer; + for (vint i = 0; i < count; i++) + { + BYTE g = (read[0] + read[1] + read[2]) / 6 + read[3] / 2; + read[0] = g; + read[1] = g; + read[2] = g; + read += 4; + } + D2D1_RECT_U d2dRect; + d2dRect.left = 0; + d2dRect.top = 0; + d2dRect.right = rect.Width; + d2dRect.bottom = rect.Height; + d2dBitmap->CopyFromMemory(&d2dRect, buffer, rect.Width * 4); + } + delete[] buffer; } + return disabledBitmap; } } - else + }; + + class WindowsDirect2DRenderTarget : public IWindowsDirect2DRenderTarget + { + typedef SortedList> ImageCacheList; + protected: + INativeWindow* window; + ID2D1RenderTarget* d2dRenderTarget = nullptr; + ID2D1DeviceContext* d2dDeviceContext = nullptr; + List clippers; + vint clipperCoverWholeTargetCounter = 0; + bool hostedRendering = false; + bool rendering = false; + + CachedSolidBrushAllocator solidBrushes; + CachedLinearBrushAllocator linearBrushes; + CachedRadialBrushAllocator radialBrushes; + ImageCacheList imageCaches; + ComPtr focusRectangleEffect; + + ComPtr noAntialiasParams; + ComPtr horizontalAntialiasParams; + ComPtr bidirectionalAntialiasParams; + + ComPtr CreateRenderingParams(DWRITE_RENDERING_MODE renderingMode, IDWriteRenderingParams* defaultParams, IDWriteFactory* dwriteFactory) { - Ptr fragmentStart=documentFragments[fs]; - Ptr fragmentEnd=documentFragments[fe]; - if(ss==0) - { - f1=fs; - } - else - { - f1=fs+1; - fe++; - vint length=fragmentStart->text.Length(); - Ptr leftFragment=fragmentStart->Copy(0, ss); - Ptr rightFragment=fragmentStart->Copy(ss, length-ss); - documentFragments.RemoveAt(fs); - documentFragments.Insert(fs, leftFragment); - documentFragments.Insert(fs+1, rightFragment); - } - if(se==fragmentEnd->text.Length()) + IDWriteRenderingParams* renderingParams = 0; + FLOAT gamma = defaultParams->GetGamma(); + FLOAT enhancedContrast = defaultParams->GetEnhancedContrast(); + FLOAT clearTypeLevel = defaultParams->GetClearTypeLevel(); + DWRITE_PIXEL_GEOMETRY pixelGeometry = defaultParams->GetPixelGeometry(); + HRESULT hr = dwriteFactory->CreateCustomRenderingParams( + gamma, + enhancedContrast, + clearTypeLevel, + pixelGeometry, + renderingMode, + &renderingParams); + if (!FAILED(hr)) { - f2=fe; + return renderingParams; } else { - f2=fe; - fe++; - vint length=fragmentEnd->text.Length(); - Ptr leftFragment=fragmentStart->Copy(0, se); - Ptr rightFragment=fragmentEnd->Copy(se, length-se); - documentFragments.RemoveAt(fe); - documentFragments.Insert(fe, leftFragment); - documentFragments.Insert(fe+1, rightFragment); + return nullptr; } } - return true; - } - void UniscribeParagraph::CutFragmentColors(vint fs, vint ss, vint fe, vint se, Color UniscribeColor::* colorField, Color color) - { - for(vint f=fs;f<=fe;f++) + void StartRenderingOnNativeWindow() override { - Ptr fragment=documentFragments[f]; - vint start=f==fs?ss:0; - vint end=f==fe?se:fragment->text.Length(); + d2dRenderTarget = GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); + CHECK_ERROR(d2dRenderTarget, L"vl::presentation::elements_windows_d2d::WindowsDirect2DRenderTarget::StartRenderingOnNativeWindow()#Invalid render target."); + GetWindowsDirect2DObjectProvider()->StartRendering(window); + } - fragment->CutColors(start, end-start); - fragment->UpdateOverlappedColors(start, end-start, colorField, color); - fragment->DefragmentColors(); + RenderTargetFailure StopRenderingOnNativeWindow() override + { + CHECK_ERROR(d2dRenderTarget, L"vl::presentation::elements_windows_d2d::WindowsDirect2DRenderTarget::StopRenderingOnNativeWindow()#Invalid render target."); + auto result = GetWindowsDirect2DObjectProvider()->StopRenderingAndPresent(window); + d2dRenderTarget = nullptr; + return result; } - } -/*********************************************************************** -UniscribeParagraph (Formatting) -***********************************************************************/ + Size GetCanvasSize() override + { + return window->Convert(window->GetClientSize()); + } - bool UniscribeParagraph::SetFont(vint start, vint length, const WString& value) - { - vint fs, ss, fe, se, f1, f2; - SearchFragment(start, length, fs, ss, fe, se); - if(CutFragment(fs, ss, fe, se, f1, f2)) + void AfterPushedClipper(Rect clipper, Rect validArea) override { - for(vint i=f1;i<=f2;i++) - { - documentFragments[i]->fontStyle.fontFamily=value; - } - built=false; - return true; + d2dRenderTarget->PushAxisAlignedClip( + D2D1::RectF((FLOAT)validArea.x1, (FLOAT)validArea.y1, (FLOAT)validArea.x2, (FLOAT)validArea.y2), + D2D1_ANTIALIAS_MODE_PER_PRIMITIVE + ); } - else + + void AfterPushedClipperAndBecameInvalid(Rect clipper) override { - return false; } - } - bool UniscribeParagraph::SetSize(vint start, vint length, vint value) - { - vint fs, ss, fe, se, f1, f2; - SearchFragment(start, length, fs, ss, fe, se); - if(CutFragment(fs, ss, fe, se, f1, f2)) + void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists) override { - for(vint i=f1;i<=f2;i++) + } + + void AfterPoppedClipper(Rect validArea, bool clipperExists) override + { + d2dRenderTarget->PopAxisAlignedClip(); + } + public: + WindowsDirect2DRenderTarget(INativeWindow* _window) + : window(_window) + { + solidBrushes.SetRenderTarget(this); + linearBrushes.SetRenderTarget(this); + radialBrushes.SetRenderTarget(this); + + IDWriteFactory* dwriteFactory = GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory(); + IDWriteRenderingParams* defaultParams = 0; + HRESULT hr = dwriteFactory->CreateRenderingParams(&defaultParams); + if (!FAILED(hr)) { - documentFragments[i]->fontStyle.size=value; + noAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL, defaultParams, dwriteFactory); + horizontalAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL, defaultParams, dwriteFactory); + bidirectionalAntialiasParams = CreateRenderingParams(DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC, defaultParams, dwriteFactory); + defaultParams->Release(); } - built=false; - return true; } - else + + ~WindowsDirect2DRenderTarget() { - return false; + while (imageCaches.Count()) + { + Ptr cache = imageCaches[imageCaches.Count() - 1]; + cache->GetFrame()->RemoveCache(this); + } } - } - bool UniscribeParagraph::SetStyle(vint start, vint length, bool bold, bool italic, bool underline, bool strikeline) - { - vint fs, ss, fe, se, f1, f2; - SearchFragment(start, length, fs, ss, fe, se); - if(CutFragment(fs, ss, fe, se, f1, f2)) + ID2D1RenderTarget* GetDirect2DRenderTarget()override { - for(vint i=f1;i<=f2;i++) + return d2dRenderTarget ? d2dRenderTarget : GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); + } + + ComPtr GetBitmap(INativeImageFrame* frame, bool enabled)override + { + Ptr cache = frame->GetCache(this); + if (cache) { - documentFragments[i]->fontStyle.bold=bold; - documentFragments[i]->fontStyle.italic=italic; - documentFragments[i]->fontStyle.underline=underline; - documentFragments[i]->fontStyle.strikeline=strikeline; + return cache.Cast()->GetBitmap(enabled); + } + else + { + auto d2dCache = Ptr(new WindowsDirect2DImageFrameCache(this)); + if (frame->SetCache(this, d2dCache)) + { + imageCaches.Add(d2dCache); + return d2dCache->GetBitmap(enabled); + } + else + { + return nullptr; + } } - built=false; - return true; } - else + + void DestroyBitmapCache(INativeImageFrame* frame)override { - return false; + WindowsDirect2DImageFrameCache* cache = frame->GetCache(this).Cast().Obj(); + imageCaches.Remove(cache); } - } - bool UniscribeParagraph::SetColor(vint start, vint length, Color value) - { - vint fs, ss, fe, se; - SearchFragment(start, length, fs, ss, fe, se); - if(fs==-1 || ss==-1 || fe==-1 || se==-1) return false; - - CutFragmentColors(fs, ss, fe, se, &UniscribeColor::fontColor, value); - return true; - } - - bool UniscribeParagraph::SetBackgroundColor(vint start, vint length, Color value) - { - vint fs, ss, fe, se; - SearchFragment(start, length, fs, ss, fe, se); - if(fs==-1 || ss==-1 || fe==-1 || se==-1) return false; - - CutFragmentColors(fs, ss, fe, se, &UniscribeColor::backgroundColor, value); - return true; - } - - bool UniscribeParagraph::SetInlineObject(vint start, vint length, const IGuiGraphicsParagraph::InlineObjectProperties& properties) - { - vint fs, ss, fe, se, f1, f2; - SearchFragment(start, length, fs, ss, fe, se); - if(CutFragment(fs, ss, fe, se, f1, f2)) + void SetTextAntialias(bool antialias, bool verticalAntialias)override { - WString text; - for(vint i=f1;i<=f2;i++) + ComPtr params; + if (!antialias) { - text+=documentFragments[f1]->text; + params = noAntialiasParams; + } + else if (!verticalAntialias) + { + params = horizontalAntialiasParams; + } + else + { + params = bidirectionalAntialiasParams; + } + if (params && d2dRenderTarget) + { + d2dRenderTarget->SetTextRenderingParams(params.Obj()); } - Ptr elementFragment=new UniscribeFragment(text); + } - for(vint i=f1;i<=f2;i++) + ID2D1Effect* GetFocusRectangleEffect()override + { + if (!focusRectangleEffect) { - elementFragment->cachedTextFragment.Add(documentFragments[f1]); - documentFragments.RemoveAt(f1); + ID2D1RenderTarget* d2dRenderTarget = GetWindowsDirect2DObjectProvider()->GetNativeWindowDirect2DRenderTarget(window); + ID2D1DeviceContext* d2dDeviceContext = nullptr; + HRESULT hr = d2dRenderTarget->QueryInterface(&d2dDeviceContext); + if (d2dDeviceContext) + { + if (auto wicFactory = GetWICImagingFactory()) + { + // this is the content of EffectBuffer.png in the same folder where this cpp file is in + static const char EffectBuffer[] = + "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52\x00\x00\x00\x08\x00\x00\x00\x08\x08\x06\x00\x00" + "\x00\xC4\x0F\xBE\x8B\x00\x00\x00\x01\x73\x52\x47\x42\x00\xAE\xCE\x1C\xE9\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00" + "\xB1\x8F\x0B\xFC\x61\x05\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0E\xC3\x00\x00\x0E\xC3\x01\xC7\x6F\xA8\x64\x00" + "\x00\x00\x2F\x49\x44\x41\x54\x28\x53\x75\xC8\xB1\x0D\x00\x30\x0C\x02\x41\xEF\xBF\x34\xB1\x68\xA2\x47\xF8\x9B\x13" + "\x8C\xB6\xD9\x2E\x5D\x9E\x10\xA3\xE8\xF2\x84\x18\x45\x97\x27\xC4\x28\xBA\x3C\xBF\xD2\x03\xC2\xD7\x7F\x81\x23\x94" + "\x3E\x1F\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82"; + auto effectImage = GetWindowsNativeController()->ImageService()->CreateImageFromMemory((void*)EffectBuffer, (vint)(sizeof(EffectBuffer) - 1)); + IWICBitmap* wicEffectBitmap = effectImage ? GetWICBitmap(effectImage->GetFrame(0)) : nullptr; + if (wicEffectBitmap) + { + ID2D1Bitmap* d2dEffectBitmap = nullptr; + hr = d2dRenderTarget->CreateBitmapFromWicBitmap(wicEffectBitmap, &d2dEffectBitmap); + if (d2dEffectBitmap) + { + ID2D1Effect* d2dEffect = nullptr; + hr = d2dDeviceContext->CreateEffect(CLSID_D2D1Tile, &d2dEffect); + if (d2dEffect) + { + d2dEffect->SetInput(0, d2dEffectBitmap); + d2dEffect->SetValue(D2D1_TILE_PROP_RECT, D2D1::RectF(0, 0, 2, 2)); + focusRectangleEffect = d2dEffect; + } + d2dEffectBitmap->Release(); + } + } + } + d2dDeviceContext->Release(); + } } - elementFragment->inlineObjectProperties=properties; - documentFragments.Insert(f1, elementFragment); - built=false; - return true; + return focusRectangleEffect.Obj(); } - else + + ID2D1SolidColorBrush* CreateDirect2DBrush(Color color)override { - return false; + return solidBrushes.Create(color).Obj(); } - } - InlineObject UniscribeParagraph::ResetInlineObject(vint start, vint length) - { - vint fs, ss, fe, se; - SearchFragment(start, length, fs, ss, fe, se); - Ptr fragment = documentFragments[fs]; - if(fs==fe && ss==0 && se==fragment->text.Length() && fragment->inlineObjectProperties) + void DestroyDirect2DBrush(Color color)override { - documentFragments.RemoveAt(fs); - for(vint i=0;icachedTextFragment.Count();i++) - { - documentFragments.Insert(fs+i, fragment->cachedTextFragment[i]); - } - built=false; - return fragment->inlineObjectProperties; + solidBrushes.Destroy(color); } - return InlineObject(); - } + + ID2D1LinearGradientBrush* CreateDirect2DLinearBrush(Color c1, Color c2)override + { + return linearBrushes.Create(Pair(c1, c2)).Obj(); + } + + void DestroyDirect2DLinearBrush(Color c1, Color c2)override + { + linearBrushes.Destroy(Pair(c1, c2)); + } + + ID2D1RadialGradientBrush* CreateDirect2DRadialBrush(Color c1, Color c2)override + { + return radialBrushes.Create(Pair(c1, c2)).Obj(); + } + + void DestroyDirect2DRadialBrush(Color c1, Color c2)override + { + radialBrushes.Destroy(Pair(c1, c2)); + } + }; /*********************************************************************** -UniscribeParagraph (Caret Helper) +WindowsGDIResourceManager ***********************************************************************/ - void UniscribeParagraph::GetLineIndexFromTextPos(vint textPos, vint& frontLine, vint& backLine) + class WindowsDirect2DResourceManager : public GuiGraphicsResourceManager, public IWindowsDirect2DResourceManager, public INativeControllerListener { - frontLine=-1; - backLine=-1; - if(!IsValidTextPos(textPos)) return; + protected: + SortedList> renderTargets; + Ptr layoutProvider; - vint start=0; - vint end=lines.Count()-1; - while(start<=end) + CachedTextFormatAllocator textFormats; + CachedCharMeasurerAllocator charMeasurers; + public: + WindowsDirect2DResourceManager() { - vint middle=(start+end)/2; - Ptr line=lines[middle]; - vint lineStart=line->startFromParagraph; - vint lineEnd=line->startFromParagraph+line->lineText.Length(); - if(textPoslineEnd) - { - if(textPos==lineEnd+1) - { - frontLine=middle; - backLine=middle+1; - return; - } - else - { - start=middle+1; - } - } - else - { - frontLine=middle; - backLine=middle; - return; - } + layoutProvider = Ptr(new WindowsDirect2DLayoutProvider); } - } - void UniscribeParagraph::GetVirtualLineIndexFromTextPos(vint textPos, vint lineIndex, vint& frontLine, vint& backLine) - { - frontLine=-1; - backLine=-1; - if(!IsValidTextPos(textPos)) return; - if(lineIndex<0 || lineIndex>=lines.Count()) return; + IGuiGraphicsRenderTarget* GetRenderTarget(INativeWindow* window)override + { + return GetWindowsDirect2DObjectProvider()->GetBindedRenderTarget(window); + } - Ptr line=lines[lineIndex]; - vint start=0; - vint end=line->virtualLines.Count()-1; - while(start<=end) + void RecreateRenderTarget(INativeWindow* window)override { - vint middle=(start+end)/2; - Ptr vline=line->virtualLines[middle]; - vint lineStart=line->startFromParagraph+vline->startFromLine; - vint lineEnd=line->startFromParagraph+vline->startFromLine+vline->length; - if(textPoslineEnd) - { - start=middle+1; - } - else if(textPos==lineStart) - { - frontLine=middle==0?0:middle-1; - backLine=middle; - return; - } - else if(textPos==lineEnd) - { - frontLine=middle; - backLine=middle==line->virtualLines.Count()-1?middle:middle+1; - return; - } - else - { - frontLine=middle; - backLine=middle; - return; - } + NativeWindowDestroying(window); + GetWindowsDirect2DObjectProvider()->RecreateRenderTarget(window); + NativeWindowCreated(window); } - } - void UniscribeParagraph::GetItemIndexFromTextPos(vint textPos, vint lineIndex, vint& frontItem, vint& backItem) - { - frontItem=-1; - backItem=-1; - if(!IsValidTextPos(textPos)) return; - if(lineIndex<0 || lineIndex>=lines.Count()) return; + void ResizeRenderTarget(INativeWindow* window) + { + GetWindowsDirect2DObjectProvider()->ResizeRenderTarget(window); + } - Ptr line=lines[lineIndex]; - vint start=0; - vint end=line->scriptItems.Count()-1; - while(start<=end) + IGuiGraphicsLayoutProvider* GetLayoutProvider()override { - vint middle=(start+end)/2; - Ptr item=line->scriptItems[middle]; - vint lineStart=line->startFromParagraph+item->startFromLine; - vint lineEnd=line->startFromParagraph+item->startFromLine+item->length; - if(textPoslineEnd) - { - start=middle+1; - } - else if(textPos==lineStart) - { - frontItem=middle==0?0:middle-1; - backItem=middle; - return; - } - else if(textPos==lineEnd) - { - frontItem=middle; - backItem=middle==line->scriptItems.Count()-1?middle:middle+1; - return; - } - else - { - frontItem=middle; - backItem=middle; - return; - } + return layoutProvider.Obj(); } - } - Rect UniscribeParagraph::GetCaretBoundsWithLine(vint caret, vint lineIndex, vint virtualLineIndex, bool frontSide) - { - Ptr line=lines[lineIndex]; - if(line->startFromParagraph<=caret && caret<=line->startFromParagraph+line->lineText.Length()) + void NativeWindowCreated(INativeWindow* window)override { - if(line->lineText==L"") return line->bounds; - Ptr virtualLine=line->virtualLines[virtualLineIndex]; + auto renderTarget = Ptr(new WindowsDirect2DRenderTarget(window)); + renderTargets.Add(renderTarget); + GetWindowsDirect2DObjectProvider()->SetBindedRenderTarget(window, renderTarget.Obj()); + } - for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) - { - Ptr run=line->scriptRuns[i]; - if(Ptr textRun=run.Cast()) - { - vint firstBounds=i==virtualLine->firstRunIndex?virtualLine->firstRunBoundsIndex:0; - vint lastBounds=i==virtualLine->lastRunIndex?virtualLine->lastRunBoundsIndex:run->fragmentBounds.Count()-1; - - for(vint j=firstBounds;j<=lastBounds;j++) - { - UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[j]; - vint boundsStart=line->startFromParagraph+run->startFromLine+bounds.startFromRun; - if(boundsStart==caret) - { - if(!frontSide || i==virtualLine->firstRunIndex && j==virtualLine->firstRunBoundsIndex) - { - if(run->scriptItem->scriptItem.a.fRTL) - { - return Rect(bounds.bounds.x2, bounds.bounds.y1, bounds.bounds.x2, bounds.bounds.y2); - } - else - { - return Rect(bounds.bounds.x1, bounds.bounds.y1, bounds.bounds.x1, bounds.bounds.y2); - } - } - } - else if(caret==boundsStart+bounds.length) - { - if(frontSide || i==virtualLine->lastRunIndex && j==virtualLine->lastRunBoundsIndex) - { - if(run->scriptItem->scriptItem.a.fRTL) - { - return Rect(bounds.bounds.x1, bounds.bounds.y1, bounds.bounds.x1, bounds.bounds.y2); - } - else - { - return Rect(bounds.bounds.x2, bounds.bounds.y1, bounds.bounds.x2, bounds.bounds.y2); - } - } - } - else if(boundsStart0) - { - if(i==bounds.length) - { - newLastRunChar=charIndex; - } - else - { - WORD cluster1=textRun->wholeGlyph.charCluster[charIndex-1]; - WORD cluster2=textRun->wholeGlyph.charCluster[charIndex]; - if(cluster1!=cluster2) - { - newLastRunChar=charIndex; - } - } - } + void NativeWindowDestroying(INativeWindow* window)override + { + WindowsDirect2DRenderTarget* renderTarget = dynamic_cast(GetWindowsDirect2DObjectProvider()->GetBindedRenderTarget(window)); + GetWindowsDirect2DObjectProvider()->SetBindedRenderTarget(window, 0); + renderTargets.Remove(renderTarget); + } - if(newLastRunChar!=lastRunChar) - { - WORD glyph1=0; - WORD glyph2=0; - if(run->scriptItem->scriptItem.a.fRTL) - { - glyph2=textRun->wholeGlyph.charCluster[lastRunChar]+1; - glyph1=newLastRunChar==run->length?0:textRun->wholeGlyph.charCluster[newLastRunChar]+1; - } - else - { - glyph1=textRun->wholeGlyph.charCluster[lastRunChar]; - glyph2=newLastRunChar==run->length?(WORD)textRun->wholeGlyph.glyphs.Count():textRun->wholeGlyph.charCluster[newLastRunChar]; - } + Direct2DTextFormatPackage* CreateDirect2DTextFormat(const FontProperties& fontProperties)override + { + return textFormats.Create(fontProperties).Obj(); + } - vint glyphWidth=0; - for(WORD g=glyph1;gwholeGlyph.glyphAdvances[g]; - } - accumulatedWidth+=glyphWidth; - lastRunChar=newLastRunChar; + void DestroyDirect2DTextFormat(const FontProperties& fontProperties)override + { + textFormats.Destroy(fontProperties); + } - if(line->startFromParagraph+run->startFromLine+lastRunChar==caret) - { - vint x=0; - if(run->scriptItem->scriptItem.a.fRTL) - { - x=bounds.bounds.x2-accumulatedWidth; - } - else - { - x=bounds.bounds.x1+accumulatedWidth; - } - return Rect(x, bounds.bounds.y1, x, bounds.bounds.y2); - } - } - } - } - } - } - } + Ptr CreateDirect2DCharMeasurer(const FontProperties& fontProperties)override + { + return charMeasurers.Create(fontProperties); } - return Rect(); - } - vint UniscribeParagraph::GetCaretFromXWithTextRunBounds(vint x, vint lineIndex, vint runIndex, vint runBoundsIndex) - { - Ptr line=lines[lineIndex]; - if(line->lineText==L"") return line->startFromParagraph; - Ptr run=line->scriptRuns[runIndex].Cast(); - UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[runBoundsIndex]; - - vint startFromFragmentBounds=0; - vint accumulatedWidth=0; - while(startFromFragmentBoundsSearchSingleChar(charIndex, charLength, cluster, nextCluster); + charMeasurers.Destroy(fontProperties); + } + }; + } - vint clusterStart=0; - vint clusterCount=0; - if(run->scriptItem->IsRightToLeft()) - { - clusterStart=nextCluster+1; - clusterCount=cluster-nextCluster; - } - else - { - clusterStart=cluster; - clusterCount=nextCluster-cluster; - } + namespace elements_windows_d2d + { + IWindowsDirect2DResourceManager* windowsDirect2DResourceManager = nullptr; - vint clusterWidth=0; - for(vint i=0;iwholeGlyph.glyphAdvances[i+clusterStart]; - } + IWindowsDirect2DResourceManager* GetWindowsDirect2DResourceManager() + { + return windowsDirect2DResourceManager; + } - if(run->scriptItem->scriptItem.a.fRTL) - { - vint x2=bounds.bounds.x2-accumulatedWidth; - vint x1=x2-clusterWidth; - if(x1<=x && xstartFromParagraph+run->startFromLine+charIndex+charLength; - } - else - { - return line->startFromParagraph+run->startFromLine+charIndex; - } - } - } - else - { - vint x1=bounds.bounds.x1+accumulatedWidth; - vint x2=x1+clusterWidth; - if(x1<=x && xstartFromParagraph+run->startFromLine+charIndex; - } - else - { - return line->startFromParagraph+run->startFromLine+charIndex+charLength; - } - } - } + void SetWindowsDirect2DResourceManager(IWindowsDirect2DResourceManager* resourceManager) + { + windowsDirect2DResourceManager = resourceManager; + } - startFromFragmentBounds+=charLength; - accumulatedWidth+=clusterWidth; - } - return -1; +/*********************************************************************** +OS Supporting +***********************************************************************/ + + IWindowsDirect2DObjectProvider* windowsDirect2DObjectProvider = nullptr; + + IWindowsDirect2DObjectProvider* GetWindowsDirect2DObjectProvider() + { + return windowsDirect2DObjectProvider; } - vint UniscribeParagraph::GetCaretFromXWithLine(vint x, vint lineIndex, vint virtualLineIndex) + void SetWindowsDirect2DObjectProvider(IWindowsDirect2DObjectProvider* provider) { - Ptr line=lines[lineIndex]; - if(line->virtualLines.Count()==0) return line->startFromParagraph; - Ptr virtualLine=line->virtualLines[virtualLineIndex]; - if(xbounds.x1) return line->startFromParagraph+virtualLine->startFromLine; - if(x>=virtualLine->bounds.x2) return line->startFromParagraph+virtualLine->startFromLine+virtualLine->length; + windowsDirect2DObjectProvider = provider; + } + } + } +} - for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) - { - Ptr run=line->scriptRuns[i]; - if(Ptr textRun=run.Cast()) - { - vint firstBounds=i==virtualLine->firstRunIndex?virtualLine->firstRunBoundsIndex:0; - vint lastBounds=i==virtualLine->lastRunIndex?virtualLine->lastRunBoundsIndex:run->fragmentBounds.Count()-1; - - for(vint j=firstBounds;j<=lastBounds;j++) - { - UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[j]; - if(bounds.bounds.x1<=x && xfragmentBounds[0].bounds; - if(bounds.x1<=x && xstartFromParagraph+run->startFromLine; - } - else - { - return line->startFromParagraph+run->startFromLine+run->length; - } - } - } - } - return -1; - } +/*********************************************************************** +NativeMain +***********************************************************************/ - InlineObject UniscribeParagraph::GetInlineObjectFromXWithLine(vint x, vint lineIndex, vint virtualLineIndex, vint& start, vint& length) - { - Ptr line=lines[lineIndex]; - if(line->virtualLines.Count()==0) return InlineObject(); - Ptr virtualLine=line->virtualLines[virtualLineIndex]; - if(xbounds.x1) return InlineObject(); - if(x>=virtualLine->bounds.x2) return InlineObject(); +using namespace vl::presentation; +using namespace vl::presentation::elements; - for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) - { - Ptr run=line->scriptRuns[i]; - if(auto elementRun=run.Cast()) - { - Rect bounds=run->fragmentBounds[0].bounds; - if(bounds.x1<=x && xstartFromParagraph+elementRun->startFromLine; - length=elementRun->length; - return elementRun->properties; - } - } - } - return InlineObject(); - } +extern void GuiApplicationMain(); - vint UniscribeParagraph::GetLineY(vint lineIndex) +void RendererMainDirect2D(GuiHostedController* hostedController) +{ + elements_windows_d2d::WindowsDirect2DResourceManager resourceManager; + elements_windows_d2d::SetWindowsDirect2DResourceManager(&resourceManager); + windows::GetWindowsNativeController()->CallbackService()->InstallListener(&resourceManager); + + auto hostedResourceManager = hostedController ? new GuiHostedGraphicsResourceManager(hostedController, &resourceManager) : nullptr; + SetGuiGraphicsResourceManager( + hostedResourceManager + ? hostedResourceManager + : static_cast(&resourceManager) + ); + + { + elements_windows_d2d::GuiFocusRectangleElementRenderer::Register(); + elements_windows_d2d::GuiSolidBorderElementRenderer::Register(); + elements_windows_d2d::Gui3DBorderElementRenderer::Register(); + elements_windows_d2d::Gui3DSplitterElementRenderer::Register(); + elements_windows_d2d::GuiSolidBackgroundElementRenderer::Register(); + elements_windows_d2d::GuiGradientBackgroundElementRenderer::Register(); + elements_windows_d2d::GuiInnerShadowElementRenderer::Register(); + elements_windows_d2d::GuiSolidLabelElementRenderer::Register(); + elements_windows_d2d::GuiImageFrameElementRenderer::Register(); + elements_windows_d2d::GuiPolygonElementRenderer::Register(); + elements_windows_d2d::GuiColorizedTextElementRenderer::Register(); + elements_windows_d2d::GuiDirect2DElementRenderer::Register(); + elements::GuiDocumentElement::GuiDocumentElementRenderer::Register(); + + if (hostedController) hostedController->Initialize(); + GuiApplicationMain(); + if (hostedController) hostedController->Finalize(); + } + + SetGuiGraphicsResourceManager(nullptr); + if (hostedResourceManager) delete hostedResourceManager; + + windows::GetWindowsNativeController()->CallbackService()->UninstallListener(&resourceManager); + elements_windows_d2d::SetWindowsDirect2DResourceManager(nullptr); +} + +/*********************************************************************** +.\GDI\WINGDI.CPP +***********************************************************************/ + +#pragma comment(lib, "Msimg32.lib") + +namespace vl +{ + namespace presentation + { + namespace windows + { + +/********************************************************************************************************* +WinRegion +*********************************************************************************************************/ + + bool IsEqual(WinRegion::Ptr Region1, WinRegion::Ptr Region2) + { + return EqualRgn(Region1->GetHandle(), Region2->GetHandle())!=0; + } + + WinRegion::WinRegion(vint Left, vint Top, vint Right, vint Bottom, bool Rectangle) + { + if(Rectangle) { - if(lineIndex==lines.Count()) - { - return bounds.Height(); - } - else - { - return lines[lineIndex]->bounds.y1; - } + FHandle=CreateRectRgn((int)Left, (int)Top, (int)Right, (int)Bottom); } - - vint UniscribeParagraph::GetVirtualLineY(vint lineIndex, vint virtualLineIndex) + else { - Ptr line=lines[lineIndex]; - if(virtualLineIndex==line->virtualLines.Count()) - { - return GetLineY(lineIndex+1); - } - else - { - return line->virtualLines[virtualLineIndex]->bounds.y1; - } + FHandle=CreateEllipticRgn((int)Left, (int)Top, (int)Right, (int)Bottom); } + } - vint UniscribeParagraph::GetLineIndexFromY(vint y) + WinRegion::WinRegion(RECT Rect, bool Rectangle) + { + if(Rectangle) { - if(ybounds.y1) return 0; - if(y>=lines[lines.Count()-1]->bounds.y2) return lines.Count()-1; - - vint start=0; - vint end=lines.Count()-1; - while(start<=end) - { - vint middle=(start+end)/2; - vint minY=GetLineY(middle); - vint maxY=GetLineY(middle+1); - if(y=maxY) - { - start=middle+1; - } - else - { - return middle; - } - } - return -1; + FHandle=CreateRectRgnIndirect(&Rect); } - - vint UniscribeParagraph::GetVirtualLineIndexFromY(vint y, vint lineIndex) + else { - Ptr line=lines[lineIndex]; - if(ybounds.y1) return 0; - if(y>=line->bounds.y2) return line->virtualLines.Count()-1; - - vint start=0; - vint end=line->virtualLines.Count()-1; - while(start<=end) - { - vint middle=(start+end)/2; - vint minY=GetVirtualLineY(lineIndex, middle); - vint maxY=GetVirtualLineY(lineIndex, middle+1); - if(y=maxY) - { - start=middle+1; - } - else - { - return middle; - } - } - return -1; + FHandle=CreateEllipticRgnIndirect(&Rect); } + } -/*********************************************************************** -UniscribeParagraph (Caret) -***********************************************************************/ + WinRegion::WinRegion(vint Left, vint Top, vint Right, vint Bottom, vint EllipseWidth, vint EllipseHeight) + { + FHandle=CreateRoundRectRgn((int)Left, (int)Top, (int)Right, (int)Bottom, (int)EllipseWidth, (int)EllipseHeight); + } - vint UniscribeParagraph::GetCaret(vint comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) - { - if(position==IGuiGraphicsParagraph::CaretFirst) return 0; - if(position==IGuiGraphicsParagraph::CaretLast) return paragraphText.Length(); - if(!IsValidCaret(comparingCaret)) return -1; + WinRegion::WinRegion(POINT* Points, vint Count, bool Alternate) + { + FHandle=CreatePolygonRgn(Points, (int)Count, Alternate?ALTERNATE:WINDING); + } - if(position==IGuiGraphicsParagraph::CaretMoveLeft) - { - return comparingCaret==0?0:GetNearestCaretFromTextPos(comparingCaret-1, true); - } - if(position==IGuiGraphicsParagraph::CaretMoveRight) - { - return comparingCaret==paragraphText.Length()?paragraphText.Length():GetNearestCaretFromTextPos(comparingCaret+1, false); - } + WinRegion::WinRegion(WinRegion::Ptr Region) + { + FHandle=CreateRectRgn(0, 0, 1, 1); + CombineRgn(FHandle, Region->GetHandle(), Region->GetHandle(), RGN_COPY); + } - vint frontLine=0; - vint backLine=0; - GetLineIndexFromTextPos(comparingCaret, frontLine, backLine); + WinRegion::WinRegion(WinRegion::Ptr Region1, WinRegion::Ptr Region2, vint CombineMode) + { + FHandle=CreateRectRgn(0, 0, 1, 1); + CombineRgn(FHandle, Region1->GetHandle(), Region2->GetHandle(), (int)CombineMode); + } - Ptr line=lines[frontLine]; - if(line->virtualLines.Count()==0) - { - switch(position) - { - case IGuiGraphicsParagraph::CaretLineFirst: - case IGuiGraphicsParagraph::CaretLineLast: - return line->startFromParagraph; - } - } + WinRegion::WinRegion(HRGN RegionHandle) + { + FHandle=RegionHandle; + } - vint frontVirtualLine=0; - vint backVirtualLine=0; - GetVirtualLineIndexFromTextPos(comparingCaret, frontLine, frontVirtualLine, backVirtualLine); - vint virtualLineIndex=preferFrontSide?frontVirtualLine:backVirtualLine; + WinRegion::~WinRegion() + { + DeleteObject(FHandle); + } - Ptr virtualLine=virtualLineIndex==-1?nullptr:line->virtualLines[virtualLineIndex]; + HRGN WinRegion::GetHandle() + { + return FHandle; + } - switch(position) - { - case IGuiGraphicsParagraph::CaretLineFirst: - return line->startFromParagraph+virtualLine->startFromLine; - case IGuiGraphicsParagraph::CaretLineLast: - return line->startFromParagraph+virtualLine->startFromLine+virtualLine->length; - case IGuiGraphicsParagraph::CaretMoveUp: - { - if(frontLine==0 && virtualLineIndex<=0) return comparingCaret; - Rect bounds=GetCaretBoundsWithLine(comparingCaret, frontLine, virtualLineIndex, preferFrontSide); - if(bounds.Height()!=0) - { - if(virtualLineIndex<=0) - { - frontLine--; - virtualLineIndex=lines[frontLine]->virtualLines.Count()-1; - } - else - { - virtualLineIndex--; - } - preferFrontSide=true; - return GetCaretFromXWithLine(bounds.x1, frontLine, virtualLineIndex); - } - } - break; - case IGuiGraphicsParagraph::CaretMoveDown: - { - if(frontLine==lines.Count()-1 && virtualLineIndex==line->virtualLines.Count()-1) return comparingCaret; - Rect bounds=GetCaretBoundsWithLine(comparingCaret, frontLine, virtualLineIndex, preferFrontSide); - if(bounds.Height()!=0) - { - if(virtualLineIndex==line->virtualLines.Count()-1) - { - frontLine++; - virtualLineIndex=0; - } - else - { - virtualLineIndex++; - } - preferFrontSide=false; - return GetCaretFromXWithLine(bounds.x1, frontLine, virtualLineIndex); - } - } - break; - } - return -1; - } + bool WinRegion::ContainPoint(POINT Point) + { + return PtInRegion(FHandle, Point.x, Point.y)!=0; + } - Rect UniscribeParagraph::GetCaretBounds(vint caret, bool frontSide) - { - if(!IsValidCaret(caret)) return Rect(); + bool WinRegion::ContainRect(RECT Rect) + { + return RectInRegion(FHandle, &Rect)!=0; + } - vint frontLine=0; - vint backLine=0; - GetLineIndexFromTextPos(caret, frontLine, backLine); + RECT WinRegion::GetBoundRect() + { + RECT Rect={0, 0, 0, 0}; + GetRgnBox(FHandle, &Rect); + return Rect; + } - vint frontVirtualLine=0; - vint backVirtualLine=0; - GetVirtualLineIndexFromTextPos(caret, frontLine, frontVirtualLine, backVirtualLine); - vint virtualLineIndex=frontSide?frontVirtualLine:backVirtualLine; + void WinRegion::Move(vint OffsetX, vint OffsetY) + { + OffsetRgn(FHandle, (int)OffsetX, (int)OffsetY); + } - return GetCaretBoundsWithLine(caret, frontLine, virtualLineIndex, frontSide); - } +/********************************************************************************************************* +WinTransform +*********************************************************************************************************/ + + WinTransform::WinTransform(XFORM Transform) + { + FTransform=Transform; + } - vint UniscribeParagraph::GetCaretFromPoint(Point point) - { - vint lineIndex=GetLineIndexFromY(point.y); - if(lineIndex==-1) return -1; + WinTransform::WinTransform(const WinTransform& Transform) + { + FTransform=Transform.FTransform; + } - Ptr line=lines[lineIndex]; - if(line->virtualLines.Count()==0) return line->startFromParagraph; + WinTransform& WinTransform::operator=(const WinTransform& Transform) + { + FTransform=Transform.FTransform; + return *this; + } - vint virtualLineIndex=GetVirtualLineIndexFromY(point.y, lineIndex); - if(virtualLineIndex==-1) return -1; + WinTransform WinTransform::operator*(const WinTransform& Transform) + { + XFORM Result; + CombineTransform(&Result, GetHandle(), Transform.GetHandle()); + return Result; + } - return GetCaretFromXWithLine(point.x, lineIndex, virtualLineIndex); - } + const XFORM* WinTransform::GetHandle()const + { + return &FTransform; + } - InlineObject UniscribeParagraph::GetInlineObjectFromPoint(Point point, vint& start, vint& length) - { - start = -1; - length = 0; - vint lineIndex = GetLineIndexFromY(point.y); - if (lineIndex == -1) return InlineObject(); + /*------------------------------------------------------------------------------*/ - Ptr line = lines[lineIndex]; - if (line->virtualLines.Count() == 0) return InlineObject(); + WinTransform WinTransform::Translate(float OffsetX, float OffsetY) + { + XFORM Transform; + Transform.eM11=1.0f; + Transform.eM12=0.0f; + Transform.eM21=0.0f; + Transform.eM22=1.0f; + Transform.eDx=OffsetX; + Transform.eDy=OffsetY; + return Transform; + } - vint virtualLineIndex = GetVirtualLineIndexFromY(point.y, lineIndex); - if (virtualLineIndex == -1) return InlineObject(); + WinTransform WinTransform::Scale(float ScaleX, float ScaleY) + { + XFORM Transform; + Transform.eM11=ScaleX; + Transform.eM12=0.0f; + Transform.eM21=0.0f; + Transform.eM22=ScaleY; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } - return GetInlineObjectFromXWithLine(point.x, lineIndex, virtualLineIndex, start, length); - } + WinTransform WinTransform::Rotate(float Angle) + { + XFORM Transform; + Transform.eM11=(FLOAT)cos(Angle); + Transform.eM12= (FLOAT)sin(Angle); + Transform.eM21= (FLOAT)-sin(Angle); + Transform.eM22= (FLOAT)cos(Angle); + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } - vint UniscribeParagraph::GetNearestCaretFromTextPos(vint textPos, bool frontSide) - { - if(!IsValidTextPos(textPos)) return -1; - vint frontLine=0; - vint backLine=0; - GetLineIndexFromTextPos(textPos, frontLine, backLine); - if(frontLine==-1 || backLine==-1) return -1; - if(frontLine!=backLine) - { - return frontSide?textPos-1:textPos+1; - } + WinTransform WinTransform::Rotate(float Cos, float Sin) + { + XFORM Transform; + Transform.eM11=Cos; + Transform.eM12=Sin; + Transform.eM21=-Sin; + Transform.eM22=Cos; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } - Ptr line=lines[frontLine]; - if(textPos==line->startFromParagraph || textPos==line->startFromParagraph+line->lineText.Length()) - { - return textPos; - } + WinTransform WinTransform::ReflectX() + { + XFORM Transform; + Transform.eM11=1.0f; + Transform.eM12=0.0f; + Transform.eM21=0.0f; + Transform.eM22=-1.0f; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } - vint frontItem=-1; - vint backItem=-1; - GetItemIndexFromTextPos(textPos, frontLine, frontItem, backItem); - if(frontItem==-1 || backItem==-1) return -1; - if(frontItem!=backItem) return textPos; - - Ptr item=line->scriptItems[frontItem]; - vint lineTextPos=textPos-line->startFromParagraph; - if(lineTextPos==item->startFromLine) return textPos; - if(lineTextPos==item->startFromLine+item->length) return textPos; + WinTransform WinTransform::ReflectY() + { + XFORM Transform; + Transform.eM11=-1.0f; + Transform.eM12=0.0f; + Transform.eM21=0.0f; + Transform.eM22=1.0f; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } - vint itemTextPos=lineTextPos-item->startFromLine; - if(item->charLogattrs[itemTextPos].fCharStop) return textPos; + WinTransform WinTransform::Reflect(float VectorX, float VectorY) + { + float Len= (FLOAT)sqrt(VectorX*VectorX+VectorY*VectorY); + float Cos=VectorX/Len; + float Sin=VectorY/Len; - if(frontSide) - { - for(vint i=itemTextPos-1;i>=0;i--) - { - if(item->charLogattrs[i].fCharStop) return i+line->startFromParagraph+item->startFromLine; - } - return line->startFromParagraph+item->startFromLine; - } - else - { - for(vint i=itemTextPos+1;ilength;i++) - { - if(item->charLogattrs[i].fCharStop) return i+line->startFromParagraph+item->startFromLine; - } - return line->startFromParagraph+item->startFromLine+item->length; - } - } + return Rotate(Cos, -Sin)*ReflectX()*Rotate(Cos, Sin); + } - bool UniscribeParagraph::IsValidCaret(vint caret) - { - if(!IsValidTextPos(caret)) return false; - return GetNearestCaretFromTextPos(caret, true)==caret; - } + WinTransform WinTransform::Reflect(float OriginX, float OriginY, float VectorX, float VectorY) + { + float Len= (FLOAT)sqrt(VectorX*VectorX+VectorY*VectorY); + float Cos=VectorX/Len; + float Sin=VectorY/Len; - bool UniscribeParagraph::IsValidTextPos(vint textPos) - { - return 0<=textPos && textPos<=paragraphText.Length(); - } + return Translate(-OriginX, -OriginY)*Rotate(Cos, -Sin)*ReflectX()*Rotate(Cos, Sin)*Translate(OriginX, OriginY); } - } -} -/*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSWINDOWSGDI.CPP -***********************************************************************/ + WinTransform WinTransform::AxisV(float Xx, float Xy, float Yx, float Yy) + { + XFORM Transform; + Transform.eM11=Xx; + Transform.eM12=Xy; + Transform.eM21=Yx; + Transform.eM22=Yy; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } -namespace vl -{ - namespace presentation - { - namespace elements + WinTransform WinTransform::AxisA(float AngleX, float LenX, float AngleY, float LenY) { + XFORM Transform; + Transform.eM11=(FLOAT)cos(AngleX)*LenX; + Transform.eM12=(FLOAT)sin(AngleX)*LenX; + Transform.eM21=(FLOAT)cos(AngleY)*LenY; + Transform.eM22=(FLOAT)sin(AngleY)*LenY; + Transform.eDx=0.0f; + Transform.eDy=0.0f; + return Transform; + } -/*********************************************************************** -GuiGDIElement -***********************************************************************/ +/********************************************************************************************************* +WinMetaFileBuilder +*********************************************************************************************************/ - GuiGDIElement::GuiGDIElement() - { - } + void WinMetaFileBuilder::Create(vint Width, vint Height) + { + HDC hdcRef=GetDC(NULL); + vint iWidthMM = GetDeviceCaps(hdcRef, HORZSIZE); + vint iHeightMM = GetDeviceCaps(hdcRef, VERTSIZE); + vint iWidthPels = GetDeviceCaps(hdcRef, HORZRES); + vint iHeightPels = GetDeviceCaps(hdcRef, VERTRES); + ReleaseDC(NULL, hdcRef); + + RECT Rect; + Rect.left=0; + Rect.top=0; + Rect.right = (int)((Width*iWidthMM*100)/iWidthPels); + Rect.bottom = (int)((Height*iHeightMM*100)/iHeightPels); + + HDC Handle=CreateEnhMetaFile(NULL, NULL, &Rect, L"VczhLibrary++GDI\0Enhanced Meta File\0"); + FDC->Initialize(Handle); + + FWidth=Width; + FHeight=Height; } - namespace elements_windows_gdi + void WinMetaFileBuilder::Draw(HENHMETAFILE Handle) { - using namespace windows; - using namespace elements; - using namespace collections; + RECT Rect; + Rect.left=0; + Rect.top=0; + Rect.right=(int)FWidth; + Rect.bottom=(int)FHeight; + PlayEnhMetaFile(FDC->GetHandle(), Handle, &Rect); + } -/*********************************************************************** -WindowsGDIRenderTarget -***********************************************************************/ + void WinMetaFileBuilder::Destroy() + { + DeleteEnhMetaFile(CloseEnhMetaFile(FDC->GetHandle())); + } - class WindowsGDIRenderTarget : public Object, public IWindowsGDIRenderTarget - { - protected: - INativeWindow* window; - WinDC* dc; - List clippers; - vint clipperCoverWholeTargetCounter; + WinMetaFileBuilder::WinMetaFileBuilder(vint Width, vint Height) + { + FDC=new WinProxyDC(); + Create(Width, Height); + } - void ApplyClipper() - { - if(clipperCoverWholeTargetCounter==0) - { - if(clippers.Count()==0) - { - dc->RemoveClip(); - } - else - { - Rect clipper=GetClipper(); - dc->ClipRegion(new WinRegion(clipper.Left(), clipper.Top(), clipper.Right(), clipper.Bottom(), true)); - } - } - } - public: - WindowsGDIRenderTarget(INativeWindow* _window) - :window(_window) - ,dc(0) - ,clipperCoverWholeTargetCounter(0) - { - } + WinMetaFileBuilder::~WinMetaFileBuilder() + { + Destroy(); + delete FDC; + } - WinDC* GetDC()override - { - return dc?dc:GetWindowsGDIObjectProvider()->GetNativeWindowDC(window); - } + void WinMetaFileBuilder::LoadFrom(WinMetaFile* File) + { + Destroy(); + Create(File->GetWidth(), File->GetHeight()); + Draw(File->GetHandle()); + } - void StartRendering()override - { - dc=GetWindowsGDIObjectProvider()->GetNativeWindowDC(window); - } + void WinMetaFileBuilder::SaveTo(WinMetaFile* File) + { + HENHMETAFILE Handle=CloseEnhMetaFile(FDC->GetHandle()); + if(File->FHandle) + { + DeleteEnhMetaFile(File->FHandle); + } + File->FHandle=Handle; + File->FWidth=FWidth; + File->FHeight=FHeight; + Create(FWidth, FHeight); + Draw(Handle); + } - RenderTargetFailure StopRendering()override - { - dc = 0; - return RenderTargetFailure::None; - } + void WinMetaFileBuilder::LoadFrom(WString FileName) + { + WinMetaFile File(FileName); + Destroy(); + Create(File.GetWidth(), File.GetHeight()); + Draw(File.GetHandle()); + } - void PushClipper(Rect clipper)override - { - if(clipperCoverWholeTargetCounter>0) - { - clipperCoverWholeTargetCounter++; - } - else - { - Rect previousClipper=GetClipper(); - Rect currentClipper; + void WinMetaFileBuilder::SaveTo(WString FileName) + { + HENHMETAFILE Handle=CloseEnhMetaFile(FDC->GetHandle()); + HENHMETAFILE NewHandle=CopyEnhMetaFile(Handle, FileName.Buffer()); + DeleteEnhMetaFile(NewHandle); + Create(FWidth, FHeight); + Draw(Handle); + DeleteEnhMetaFile(Handle); + } - currentClipper.x1=(previousClipper.x1>clipper.x1?previousClipper.x1:clipper.x1); - currentClipper.y1=(previousClipper.y1>clipper.y1?previousClipper.y1:clipper.y1); - currentClipper.x2=(previousClipper.x20) - { - if(clipperCoverWholeTargetCounter>0) - { - clipperCoverWholeTargetCounter--; - } - else - { - clippers.RemoveAt(clippers.Count()-1); - } - ApplyClipper(); - } - } + vint WinMetaFileBuilder::GetHeight() + { + return FHeight; + } - Rect GetClipper()override - { - if (clippers.Count() == 0) - { - return Rect(Point(0, 0), window->Convert(window->GetClientSize())); - } - else - { - return clippers[clippers.Count() - 1]; - } - } +/********************************************************************************************************* +WinMetaFile +*********************************************************************************************************/ - bool IsClipperCoverWholeTarget()override - { - return clipperCoverWholeTargetCounter>0; - } - }; + WinMetaFile::WinMetaFile(WString FileName) + { + FHandle=GetEnhMetaFile(FileName.Buffer()); + ENHMETAHEADER Header; + GetEnhMetaFileHeader(FHandle, sizeof(Header), &Header); + FWidth=(Header.rclFrame.right-Header.rclFrame.left)*Header.szlDevice.cx/(Header.szlMillimeters.cx*100); + FHeight=(Header.rclFrame.bottom-Header.rclFrame.top)*Header.szlDevice.cy/(Header.szlMillimeters.cy*100); + } -/*********************************************************************** -CachedResourceAllocator -***********************************************************************/ + WinMetaFile::WinMetaFile(WinMetaFileBuilder* Builder) + { + FHandle=NULL; + Builder->SaveTo(this); + } - class CachedPenAllocator - { - DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr) - public: - Ptr CreateInternal(Color color) - { - return new WinPen(PS_SOLID, 1, RGB(color.r, color.g, color.b)); - } - }; + WinMetaFile::~WinMetaFile() + { + DeleteEnhMetaFile(FHandle); + } - class CachedBrushAllocator - { - DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr) - public: - Ptr CreateInternal(Color color) - { - return color.a==0?new WinBrush:new WinBrush(RGB(color.r, color.g, color.b)); - } - }; + HENHMETAFILE WinMetaFile::GetHandle() + { + return FHandle; + } - class CachedFontAllocator - { - DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) - public: - static Ptr CreateGdiFont(const FontProperties& value) - { - vint size=value.size<0?value.size:-value.size; - return new WinFont(value.fontFamily, size, 0, 0, 0, (value.bold?FW_BOLD:FW_NORMAL), value.italic, value.underline, value.strikeline, value.antialias); - } + vint WinMetaFile::GetWidth() + { + return FWidth; + } - Ptr CreateInternal(const FontProperties& value) - { - return CreateGdiFont(value); - } - }; + vint WinMetaFile::GetHeight() + { + return FHeight; + } - class CachedCharMeasurerAllocator - { - DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) +/********************************************************************************************************* +WinBitmap +*********************************************************************************************************/ - protected: - class GdiCharMeasurer : public text::CharMeasurer - { - protected: - Ptr font; - vint size; - - Size MeasureInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) - { - if (renderTarget) - { - WindowsGDIRenderTarget* gdiRenderTarget = dynamic_cast(renderTarget); - WinDC* dc = gdiRenderTarget->GetDC(); - dc->SetFont(font); + vint WinBitmap::GetBitsFromBB(BitmapBits BB) + { + switch(BB) + { + case vbb32Bits: + return 32; + case vbb24Bits: + return 24; + default: + return 1; + } + } - vint count = text::UTF16SPFirst(codePoint.characters[0]) && text::UTF16SPSecond(codePoint.characters[1]) ? 2 : 1; - SIZE size = dc->MeasureBuffer(codePoint.characters, count, -1); - return Size(size.cx, size.cy); - } - else - { - return Size(0, 0); - } - } + vint WinBitmap::GetLineBytes(vint Width, BitmapBits BB) + { + vint Bits=GetBitsFromBB(BB); + vint LineBits=Width*Bits; + vint AlignBits=sizeof(DWORD)*8; + LineBits+=(AlignBits-LineBits%AlignBits)%AlignBits; + return LineBits/8; + } - vint MeasureWidthInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) - { - return MeasureInternal(codePoint, renderTarget).x; - } + void WinBitmap::FillBitmapInfoHeader(vint Width, vint Height, BitmapBits Bits, BITMAPINFOHEADER* Header) + { + Header->biSize=sizeof(BITMAPINFOHEADER); + Header->biWidth=(int)Width; + Header->biHeight=-(int)Height; + Header->biPlanes=1; + Header->biBitCount=(int)GetBitsFromBB(Bits); + Header->biCompression=BI_RGB; + Header->biSizeImage=0; + Header->biXPelsPerMeter=0; + Header->biYPelsPerMeter=0; + Header->biClrUsed=(Bits==vbb2Bits?2:0); + Header->biClrImportant=0; + } - vint GetRowHeightInternal(IGuiGraphicsRenderTarget* renderTarget) - { - if(renderTarget) - { - return MeasureInternal({ L' ' }, renderTarget).y; - } - else - { - return size; - } - } - public: - GdiCharMeasurer(Ptr _font, vint _size) - :text::CharMeasurer(_size) - ,size(_size) - ,font(_font) - { - } - }; - public: - Ptr CreateInternal(const FontProperties& value) - { - return new GdiCharMeasurer(CachedFontAllocator::CreateGdiFont(value), value.size); - } - }; + HBITMAP WinBitmap::CreateDDB(vint Width, vint Height, BitmapBits Bits) + { + if(Bits==vbb2Bits) + { + return CreateBitmap((int)Width, (int)Height, 2, (int)GetBitsFromBB(Bits), NULL); + } + else + { + WinBitmap Bitmap(1, 1, Bits, true); + return CreateCompatibleBitmap(Bitmap.GetWinDC()->GetHandle(), (int)Width, (int)Height); + } + } -/*********************************************************************** -WindowsGDIResourceManager -***********************************************************************/ + HBITMAP WinBitmap::CreateDIB(vint Width, vint Height, BitmapBits Bits, BYTE**& ScanLines) + { + BITMAPINFO* Info=(BITMAPINFO*)malloc(sizeof(BITMAPINFOHEADER)+2*sizeof(RGBQUAD)); + FillBitmapInfoHeader(Width, Height, Bits, &Info->bmiHeader); + Info->bmiColors[0].rgbBlue=0; + Info->bmiColors[0].rgbGreen=0; + Info->bmiColors[0].rgbRed=0; + Info->bmiColors[0].rgbReserved=0; + Info->bmiColors[1].rgbBlue=255; + Info->bmiColors[1].rgbGreen=255; + Info->bmiColors[1].rgbRed=255; + Info->bmiColors[1].rgbReserved=255; - class WindowsGDIImageFrameCache : public Object, public INativeImageFrameCache + BYTE* FirstLine=0; + HBITMAP Handle=CreateDIBSection(FDC->GetHandle(), Info, DIB_RGB_COLORS, (void**)&FirstLine, NULL, 0); + ScanLines=new BYTE*[Height]; + vint LineBytes=GetLineBytes(Width, Bits); + for(vint i=0;i bitmap; - Ptr disabledBitmap; - public: - WindowsGDIImageFrameCache(IWindowsGDIResourceManager* _resourceManager) - :resourceManager(_resourceManager) - { - } + ScanLines[i]=FirstLine+LineBytes*i; + } + free(Info); + return Handle; + } - ~WindowsGDIImageFrameCache() - { - } + void WinBitmap::Constructor(vint Width, vint Height, BitmapBits Bits, bool DIBSections) + { + FDC=new WinImageDC(); + if(DIBSections) + { + FHandle=CreateDIB(Width, Height, Bits, FScanLines); + } + else + { + FHandle=CreateDDB(Width, Height, Bits); + FScanLines=0; + } + FWidth=Width; + FHeight=Height; + FBits=Bits; + FAlphaChannelBuilt=false; + HGDIOBJ Object=SelectObject(FDC->GetHandle(), FHandle); + if(Object) + { + DeleteObject(Object); + } + } + + WinBitmap::WinBitmap(vint Width, vint Height, BitmapBits Bits, bool DIBSections) + { + Constructor(Width, Height, Bits, DIBSections); + } - void OnAttach(INativeImageFrame* frame)override - { - cachedFrame=frame; - Size size=frame->GetSize(); - bitmap=new WinBitmap(size.x, size.y, WinBitmap::vbb32Bits, true); + WinBitmap::WinBitmap(WString FileName, bool Use32Bits, bool DIBSections) + { + FBits=Use32Bits?vbb32Bits:vbb24Bits; + + HBITMAP TempBmp=(HBITMAP)LoadImage(NULL, FileName.Buffer(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); + HDC TempDC=CreateCompatibleDC(NULL); + BITMAP TempRec; - IWICBitmap* wicBitmap=GetWindowsGDIObjectProvider()->GetWICBitmap(frame); - WICRect rect; - rect.X=0; - rect.Y=0; - rect.Width=(INT)size.x; - rect.Height=(INT)size.y; - wicBitmap->CopyPixels(&rect, (UINT)bitmap->GetLineBytes(), (UINT)(bitmap->GetLineBytes()*size.y), (BYTE*)bitmap->GetScanLines()[0]); + GetObject(TempBmp, sizeof(BITMAP), &TempRec); + DeleteObject(SelectObject(TempDC, TempBmp)); - bitmap->BuildAlphaChannel(false); - } - - void OnDetach(INativeImageFrame* frame)override - { - resourceManager->DestroyBitmapCache(cachedFrame); - } + Constructor(TempRec.bmWidth, TempRec.bmHeight, FBits, DIBSections); + BitBlt(FDC->GetHandle(), 0, 0, TempRec.bmWidth, TempRec.bmHeight, TempDC, 0, 0, SRCCOPY); - INativeImageFrame* GetFrame() - { - return cachedFrame; - } + DeleteObject(TempDC); + DeleteObject(TempBmp); + } - Ptr GetBitmap(bool enabled) - { - if(enabled) - { - return bitmap; - } - else - { - if(!disabledBitmap) - { - vint w=bitmap->GetWidth(); - vint h=bitmap->GetHeight(); - disabledBitmap=new WinBitmap(w, h, WinBitmap::vbb32Bits, true); - for(vint y=0;yGetScanLines()[y]; - BYTE* write=disabledBitmap->GetScanLines()[y]; - for(vint x=0;xBuildAlphaChannel(false); - } - return disabledBitmap; - } - } - }; + WinBitmap::~WinBitmap() + { + if(FScanLines) + { + delete[] FScanLines; + } + if(FHandle) + { + DeleteObject(FHandle); + } + delete FDC; + } - class WindowsGDIResourceManager : public GuiGraphicsResourceManager, public IWindowsGDIResourceManager, public INativeControllerListener + void WinBitmap::SaveToStream(stream::IStream& Output, bool DIBV5ClipboardFormat) + { + if (FScanLines) { - typedef SortedList> ImageCacheList; - protected: - SortedList> renderTargets; - Ptr layoutProvider; - Ptr focusRectanglePen; - CachedPenAllocator pens; - CachedBrushAllocator brushes; - CachedFontAllocator fonts; - CachedCharMeasurerAllocator charMeasurers; - ImageCacheList imageCaches; - public: - WindowsGDIResourceManager() + BITMAPFILEHEADER Header1; + BITMAPV5HEADER Header2; + + if (!DIBV5ClipboardFormat) { - layoutProvider=new WindowsGDILayoutProvider; + Header1.bfType = 'M' * 256 + 'B'; + Header1.bfSize = (int)(sizeof(Header1) + sizeof(Header2) + GetLineBytes()*FHeight); + Header1.bfReserved1 = 0; + Header1.bfReserved2 = 0; + Header1.bfOffBits = sizeof(Header2) + sizeof(Header1); + Output.Write(&Header1, sizeof(Header1)); } - IGuiGraphicsRenderTarget* GetRenderTarget(INativeWindow* window)override { - return GetWindowsGDIObjectProvider()->GetBindedRenderTarget(window); + memset(&Header2, 0, sizeof(Header2)); + Header2.bV5Size = sizeof(Header2); + Header2.bV5Width = (int)FWidth; + Header2.bV5Height = -(int)FHeight; + Header2.bV5Planes = 1; + Header2.bV5BitCount = (int)GetBitsFromBB(FBits); + Header2.bV5Compression = BI_RGB; + Header2.bV5CSType = LCS_sRGB; + Header2.bV5Intent = LCS_GM_GRAPHICS; + Output.Write(&Header2, sizeof(Header2)); } - void RecreateRenderTarget(INativeWindow* window)override + for (vint i = 0; iCopy(0, 0, FWidth, FHeight, FDC, 0, 0); + Temp.SaveToStream(Output, false); + } + } - void ResizeRenderTarget(INativeWindow* window)override - { - } + void WinBitmap::SaveToFile(WString FileName) + { + stream::FileStream Output(FileName, stream::FileStream::WriteOnly); + SaveToStream(Output, false); + } - IGuiGraphicsLayoutProvider* GetLayoutProvider()override - { - return layoutProvider.Obj(); - } + WinDC* WinBitmap::GetWinDC() + { + return FDC; + } - void NativeWindowCreated(INativeWindow* window)override - { - WindowsGDIRenderTarget* renderTarget=new WindowsGDIRenderTarget(window); - renderTargets.Add(renderTarget); - GetWindowsGDIObjectProvider()->SetBindedRenderTarget(window, renderTarget); - } + vint WinBitmap::GetWidth() + { + return FWidth; + } - void NativeWindowDestroying(INativeWindow* window)override - { - WindowsGDIRenderTarget* renderTarget=dynamic_cast(GetWindowsGDIObjectProvider()->GetBindedRenderTarget(window)); - GetWindowsGDIObjectProvider()->SetBindedRenderTarget(window, 0); - renderTargets.Remove(renderTarget); - } + vint WinBitmap::GetHeight() + { + return FHeight; + } - Ptr GetFocusRectanglePen()override - { - if (!focusRectanglePen) - { - DWORD styleArray[] = { 1,1 }; - focusRectanglePen = new WinPen(PS_USERSTYLE, PS_ENDCAP_FLAT, PS_JOIN_BEVEL, 1, RGB(255, 255, 255), (DWORD)(sizeof(styleArray) / sizeof(*styleArray)), styleArray); - } - return focusRectanglePen; - } + vint WinBitmap::GetLineBytes() + { + return GetLineBytes(FWidth, FBits); + } - Ptr CreateGdiPen(Color color)override - { - return pens.Create(color); - } + BYTE** WinBitmap::GetScanLines() + { + return FScanLines; + } - void DestroyGdiPen(Color color)override - { - pens.Destroy(color); - } + HBITMAP WinBitmap::GetBitmap() + { + return FHandle; + } - Ptr CreateGdiBrush(Color color)override - { - return brushes.Create(color); - } + WinBitmap::BitmapBits WinBitmap::GetBitmapBits() + { + return FBits; + } + + void WinBitmap::FillCompatibleHeader(BITMAPINFOHEADER* Header) + { + FillBitmapInfoHeader(FWidth, FHeight, FBits, Header); + } - void DestroyGdiBrush(Color color)override - { - brushes.Destroy(color); - } + bool WinBitmap::CanBuildAlphaChannel() + { + return FScanLines!=0 && FBits==vbb32Bits; + } - Ptr CreateGdiFont(const FontProperties& fontProperties)override - { - return fonts.Create(fontProperties); - } + bool WinBitmap::IsAlphaChannelBuilt() + { + return FAlphaChannelBuilt; + } - void DestroyGdiFont(const FontProperties& fontProperties)override + void WinBitmap::BuildAlphaChannel(bool autoPremultiply) + { + if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) + { + FAlphaChannelBuilt=true; + if(autoPremultiply) { - fonts.Destroy(fontProperties); + for(vint i=0;i CreateCharMeasurer(const FontProperties& fontProperties)override + void WinBitmap::GenerateTrans(COLORREF Color) + { + if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) + { + for(vint i=0;i GetBitmap(INativeImageFrame* frame, bool enabled)override + void WinBitmap::GenerateTransAlpha(COLORREF Color, BYTE Alpha) + { + if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) + { + COLORREF A=Alpha<<24; + for(vint i=0;i cache=frame->GetCache(this); - if(cache) - { - return cache.Cast()->GetBitmap(enabled); - } - else + COLORREF* Colors=(COLORREF*)FScanLines[i]; + vint j=FWidth; + while(j--) { - WindowsGDIImageFrameCache* gdiCache=new WindowsGDIImageFrameCache(this); - if(frame->SetCache(this, gdiCache)) - { - return gdiCache->GetBitmap(enabled); - } - else - { - return 0; - } + COLORREF Dest=*Colors & 0x00FFFFFF; + *Colors = Dest | (A * (Dest!=Color)); + Colors++; } } + } + } - void DestroyBitmapCache(INativeImageFrame* frame)override + void WinBitmap::GenerateLuminance() + { + if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) + { + for(vint i=0;iGetCache(this).Cast().Obj(); - imageCaches.Remove(cache); + COLORREF* Colors=(COLORREF*)FScanLines[i]; + vint j=FWidth; + while(j--) + { + COLORREF Dest=*Colors & 0x00FFFFFF; + *Colors = Dest | ((GetRValue(Dest)*77 + GetGValue(Dest)*151 + GetBValue(Dest)*28) & 0x0000FF00)<<16; + Colors++; + } } - }; + } } - namespace elements_windows_gdi + void WinBitmap::GenerateGrayLevel() { - IWindowsGDIResourceManager* windowsGDIResourceManager=0; - - IWindowsGDIResourceManager* GetWindowsGDIResourceManager() + if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) { - return windowsGDIResourceManager; + for(vint i=0;iGetWidth(), DIB->GetHeight(), WinBitmap::vbb24Bits, true); + Temp.GetWinDC()->Draw(0, 0, DIB); + vint HeaderSize=sizeof(BITMAPINFOHEADER); + FDIBMemory=new unsigned char[HeaderSize+Temp.GetHeight()*Temp.GetLineBytes()]; + Temp.FillCompatibleHeader((BITMAPINFOHEADER*)FDIBMemory); + memcpy(FDIBMemory+HeaderSize, Temp.GetScanLines()[0], Temp.GetHeight()*Temp.GetLineBytes()); + + FHandle=CreateDIBPatternBrushPt(FDIBMemory, DIB_RGB_COLORS); + DWORD Error=GetLastError(); + } + + WinBrush::~WinBrush() + { + DeleteObject(FHandle); + if(FDIBMemory) { - windowsGDIObjectProvider=provider; + delete[] FDIBMemory; } } - } -} -/*********************************************************************** -NativeMain -***********************************************************************/ + HBRUSH WinBrush::GetHandle() + { + return FHandle; + } -using namespace vl::presentation; -using namespace vl::presentation::elements; +/********************************************************************************************************* +WinPen +*********************************************************************************************************/ -void RendererMainGDI() -{ - elements_windows_gdi::WindowsGDIResourceManager resourceManager; - SetGuiGraphicsResourceManager(&resourceManager); - elements_windows_gdi::SetWindowsGDIResourceManager(&resourceManager); - GetCurrentController()->CallbackService()->InstallListener(&resourceManager); - - elements_windows_gdi::GuiFocusRectangleElementRenderer::Register(); - elements_windows_gdi::GuiSolidBorderElementRenderer::Register(); - elements_windows_gdi::Gui3DBorderElementRenderer::Register(); - elements_windows_gdi::Gui3DSplitterElementRenderer::Register(); - elements_windows_gdi::GuiSolidBackgroundElementRenderer::Register(); - elements_windows_gdi::GuiGradientBackgroundElementRenderer::Register(); - elements_windows_gdi::GuiInnerShadowElementRenderer::Register(); - elements_windows_gdi::GuiSolidLabelElementRenderer::Register(); - elements_windows_gdi::GuiImageFrameElementRenderer::Register(); - elements_windows_gdi::GuiPolygonElementRenderer::Register(); - elements_windows_gdi::GuiColorizedTextElementRenderer::Register(); - elements_windows_gdi::GuiGDIElementRenderer::Register(); - elements::GuiDocumentElement::GuiDocumentElementRenderer::Register(); - - GuiApplicationMain(); - elements_windows_gdi::SetWindowsGDIResourceManager(0); - SetGuiGraphicsResourceManager(0); -} + WinPen::WinPen(vint Style, vint Width, COLORREF Color) + { + FDIBMemory=0; + FHandle=CreatePen((int)Style, (int)Width, (int)Color); + } -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\WINNATIVEDPIAWARENESS.CPP -***********************************************************************/ + WinPen::WinPen(vint Style, vint EndCap, vint Join, vint Width, COLORREF Color, DWORD styleCount, const DWORD* styleArray) + { + FDIBMemory=0; + LOGBRUSH Brush; + Brush.lbColor=Color; + Brush.lbStyle=BS_SOLID; + Brush.lbHatch=0; + FHandle=ExtCreatePen((int)(PS_GEOMETRIC|Style|EndCap|Join), (int)Width, &Brush, styleCount, styleArray); + } -#pragma comment(lib, "Shcore.lib") + WinPen::WinPen(vint Style, vint EndCap, vint Join, vint Hatch, vint Width, COLORREF Color) + { + FDIBMemory=0; + LOGBRUSH Brush; + Brush.lbColor=Color; + Brush.lbStyle=BS_HATCHED; + Brush.lbHatch=Hatch; + FHandle=ExtCreatePen((int)(PS_GEOMETRIC|Style|EndCap|Join), (int)Width, &Brush, NULL, NULL); + } -namespace vl -{ - namespace presentation - { - namespace windows + WinPen::WinPen(WinBitmap::Ptr DIB, vint Style, vint EndCap, vint Join, vint Width) { -#define USE_API(NAME, API) static auto proc_##API = (decltype(&API))(GetProcAddress(GetModuleHandle(L#NAME), #API)) + WinBitmap Temp(DIB->GetWidth(), DIB->GetHeight(), WinBitmap::vbb24Bits, true); + Temp.GetWinDC()->Draw(0, 0, DIB); + vint HeaderSize=sizeof(BITMAPINFOHEADER); + FDIBMemory=new unsigned char[HeaderSize+Temp.GetHeight()*Temp.GetLineBytes()]; + Temp.FillCompatibleHeader((BITMAPINFOHEADER*)FDIBMemory); + memcpy(FDIBMemory+HeaderSize, Temp.GetScanLines()[0], Temp.GetHeight()*Temp.GetLineBytes()); + + LOGBRUSH Brush; + Brush.lbColor=RGB(0, 0, 0); + Brush.lbStyle=BS_DIBPATTERNPT; + Brush.lbHatch=(ULONG_PTR)FDIBMemory; + FHandle=ExtCreatePen((int)(PS_GEOMETRIC|Style|EndCap|Join), (int)Width, &Brush, NULL, NULL); + } - void InitDpiAwareness(bool dpiAware) + WinPen::~WinPen() + { + DeleteObject(FHandle); + if(FDIBMemory) { - USE_API(user32, SetProcessDpiAwarenessContext); - USE_API(shcore, SetProcessDpiAwareness); - - if(proc_SetProcessDpiAwarenessContext) - { - proc_SetProcessDpiAwarenessContext(dpiAware ? DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2: DPI_AWARENESS_CONTEXT_UNAWARE); - return; - } - - if(proc_SetProcessDpiAwareness) - { - proc_SetProcessDpiAwareness(dpiAware ? PROCESS_PER_MONITOR_DPI_AWARE : PROCESS_DPI_UNAWARE); - return; - } + delete[] FDIBMemory; } + } - void DpiAwared_GetDpiForMonitor(HMONITOR monitor, UINT* x, UINT* y) - { - USE_API(shcore, GetDpiForMonitor); + HPEN WinPen::GetHandle() + { + return FHandle; + } - if (proc_GetDpiForMonitor) - { - if (proc_GetDpiForMonitor(monitor, MDT_DEFAULT, x, y) == S_OK) - { - return; - } - } - *x = 96; - *y = 96; - } +/********************************************************************************************************* +WinFont +*********************************************************************************************************/ - void DpiAwared_GetDpiForWindow(HWND handle, UINT* x, UINT* y) - { - USE_API(user32, GetDpiForWindow); + WinFont::WinFont(WString Name, vint Height, vint Width, vint Escapement, vint Orientation, vint Weight, bool Italic, bool Underline, bool StrikeOut, bool Antialise) + { + FFontInfo.lfHeight=(int)Height; + FFontInfo.lfWidth=(int)Width; + FFontInfo.lfEscapement=(int)Escapement; + FFontInfo.lfOrientation=(int)Orientation; + FFontInfo.lfWeight=(int)Weight; + FFontInfo.lfItalic=Italic?TRUE:FALSE; + FFontInfo.lfUnderline=Underline?TRUE:FALSE; + FFontInfo.lfStrikeOut=StrikeOut?TRUE:FALSE; + FFontInfo.lfCharSet=DEFAULT_CHARSET; + FFontInfo.lfOutPrecision=OUT_DEFAULT_PRECIS; + FFontInfo.lfClipPrecision=CLIP_DEFAULT_PRECIS; + FFontInfo.lfQuality=Antialise?CLEARTYPE_QUALITY:NONANTIALIASED_QUALITY; + FFontInfo.lfPitchAndFamily=DEFAULT_PITCH | FF_DONTCARE; + wcsncpy_s(FFontInfo.lfFaceName, sizeof(FFontInfo.lfFaceName)/sizeof(*FFontInfo.lfFaceName), Name.Buffer(), LF_FACESIZE-1); + FHandle=CreateFontIndirect(&FFontInfo); + } - if (proc_GetDpiForWindow) - { - *x = *y = proc_GetDpiForWindow(handle); - } - else - { - HMONITOR monitor = MonitorFromWindow(handle, MONITOR_DEFAULTTONULL); - if (monitor == NULL) - { - *x = *y = 96; - } - else - { - DpiAwared_GetDpiForMonitor(monitor, x, y); - } - } - } + WinFont::WinFont(LOGFONT* FontInfo) + { + FFontInfo=*FontInfo; + FHandle=CreateFontIndirect(&FFontInfo); + } - void DpiAwared_AdjustWindowRect(LPRECT rect, HWND handle, UINT dpi) - { - USE_API(user32, AdjustWindowRectExForDpi); + WinFont::~WinFont() + { + DeleteObject(FHandle); + } - if (proc_AdjustWindowRectExForDpi) - { - proc_AdjustWindowRectExForDpi(rect, (DWORD)GetWindowLongPtr(handle, GWL_STYLE), FALSE, (DWORD)GetWindowLongPtr(handle, GWL_EXSTYLE), dpi); - } - else - { - AdjustWindowRect(rect, (DWORD)GetWindowLongPtr(handle, GWL_STYLE), FALSE); - } - } + HFONT WinFont::GetHandle() + { + return FHandle; + } - int DpiAwared_GetSystemMetrics(int index, UINT dpi) - { - USE_API(user32, GetSystemMetricsForDpi); + LOGFONT* WinFont::GetInfo() + { + return &FFontInfo; + } - if (proc_GetSystemMetricsForDpi) - { - return proc_GetSystemMetricsForDpi(index, dpi); - } - else - { - return GetSystemMetrics(index); - } - } +/********************************************************************************************************* +IWinResourceService +*********************************************************************************************************/ -#undef USE_API + WinBrush::Ptr CreateDefaultBrush() + { + return Ptr(new WinBrush(RGB(255, 255, 255))); } - } -} - -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\WINNATIVEWINDOW.CPP -***********************************************************************/ -#include -#pragma comment(lib, "Imm32.lib") -#pragma comment(lib, "Shlwapi.lib") -#pragma comment(lib, "Comctl32.lib") + WinPen::Ptr CreateDefaultPen() + { + return Ptr(new WinPen(PS_SOLID, 0, RGB(0, 0, 0))); + } -namespace vl -{ - namespace presentation - { - namespace windows + WinFont::Ptr CreateDefaultFont() { - using namespace collections; + NONCLIENTMETRICS NonClientMetrics; + NonClientMetrics.cbSize=sizeof(NONCLIENTMETRICS); + SystemParametersInfo(SPI_GETNONCLIENTMETRICS, NonClientMetrics.cbSize, &NonClientMetrics, 0); + if(!*NonClientMetrics.lfMessageFont.lfFaceName) + { + NonClientMetrics.cbSize=sizeof(NONCLIENTMETRICS)-sizeof(NonClientMetrics.iPaddedBorderWidth); + SystemParametersInfo(SPI_GETNONCLIENTMETRICS, NonClientMetrics.cbSize, &NonClientMetrics, 0); + } + return Ptr(new WinFont(&NonClientMetrics.lfMessageFont)); + } - LPCWSTR defaultIconResourceName = nullptr; + class DefaultResourceService : public Object, public IWinResourceService + { + public: + static IWinResourceService* _DefaultResourceService; - HICON CreateWindowDefaultIcon(vint size = 0) + WinPen::Ptr GetDefaultPen() { - if (!defaultIconResourceName) return NULL; - return (HICON)LoadImage(GetModuleHandle(NULL), defaultIconResourceName, IMAGE_ICON, (int)size, (int)size, (size ? 0 : LR_DEFAULTSIZE) | LR_SHARED); + return CreateDefaultPen(); } - void SetWindowDefaultIcon(UINT resourceId) + WinBrush::Ptr GetDefaultBrush() { - CHECK_ERROR(defaultIconResourceName == nullptr, L"vl::presentation::windows::SetWindowDefaultIcon(UINT)#This function can only be called once."); - defaultIconResourceName = MAKEINTRESOURCE(resourceId); + return CreateDefaultBrush(); } - HWND GetHWNDFromNativeWindowHandle(INativeWindow* window) + WinFont::Ptr GetDefaultFont() { - if(!window) return NULL; - IWindowsForm* form=GetWindowsForm(window); - if(!form) return NULL; - return form->GetWindowHandle(); + return CreateDefaultFont(); } + } _DRS; + IWinResourceService* DefaultResourceService::_DefaultResourceService=&_DRS; -/*********************************************************************** -WindowsClass -***********************************************************************/ + IWinResourceService* GetDefaultResourceService() + { + return DefaultResourceService::_DefaultResourceService; + } - class WinClass : public Object - { - protected: - WString name; - WNDCLASSEX windowClass; - ATOM windowAtom; + void SetDefaultResourceService(IWinResourceService* Service) + { + DefaultResourceService::_DefaultResourceService=Service; + } - public: - WinClass(WString _name, bool shadow, bool ownDC, WNDPROC procedure, HINSTANCE hInstance) - { - name=_name; - ZeroMemory(&windowClass, sizeof(windowClass)); - windowClass.cbSize=sizeof(windowClass); - windowClass.style=CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | (shadow?CS_DROPSHADOW:0) | (ownDC?CS_OWNDC:0); - windowClass.lpfnWndProc=procedure; - windowClass.cbClsExtra=0; - windowClass.cbWndExtra=0; - windowClass.hInstance=hInstance; - if (defaultIconResourceName) - { - windowClass.hIcon = CreateWindowDefaultIcon(); - } - windowClass.hCursor=NULL;//LoadCursor(NULL,IDC_ARROW); - windowClass.hbrBackground=GetSysColorBrush(COLOR_BTNFACE); - windowClass.lpszMenuName=NULL; - windowClass.lpszClassName=name.Buffer(); - windowClass.hIconSm=NULL; - windowAtom=RegisterClassEx(&windowClass); - } +/********************************************************************************************************* +WinDC +*********************************************************************************************************/ - bool IsAvailable() - { - return windowAtom!=0; - } + void WinDC::Init() + { + FPen=GetDefaultResourceService()->GetDefaultPen(); + FOldPen=(HPEN)SelectObject(FHandle, FPen->GetHandle()); - WString GetName() - { - return name; - } + FBrush=GetDefaultResourceService()->GetDefaultBrush(); + FOldBrush=(HBRUSH)SelectObject(FHandle, FBrush->GetHandle()); - ATOM GetClassAtom() - { - return windowAtom; - } - }; + FFont=GetDefaultResourceService()->GetDefaultFont(); + FOldFont=(HFONT)SelectObject(FHandle, FFont->GetHandle()); -/*********************************************************************** -WindowsForm -***********************************************************************/ + SetGraphicsMode(FHandle, GM_ADVANCED); + } - class WindowsForm : public Object, public INativeWindow, public IWindowsForm - { - protected: - - LONG_PTR InternalGetExStyle() - { - return GetWindowLongPtr(handle, GWL_EXSTYLE); - } + WinDC::WinDC() + { + FHandle=0; + FOldPen=0; + FOldBrush=0; + FOldFont=0; + } - void InternalSetExStyle(LONG_PTR exStyle) - { - LONG_PTR result = SetWindowLongPtr(handle, GWL_EXSTYLE, exStyle); - SetWindowPos(handle, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); - } + WinDC::~WinDC() + { + SelectObject(FHandle, FOldFont); + SelectObject(FHandle, FOldBrush); + SelectObject(FHandle, FOldPen); + } - LONG_PTR InternalGetStyle() - { - return GetWindowLongPtr(handle, GWL_STYLE); - } + HDC WinDC::GetHandle() + { + return FHandle; + } - void InternalSetStyle(LONG_PTR style) - { - SetWindowLongPtr(handle, GWL_STYLE, style); - SetWindowPos(handle, 0, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); - } + WinPen::Ptr WinDC::GetPen() + { + return FPen; + } - LONG_PTR TurnOnStyle(LONG_PTR combination, LONG_PTR style) - { - return combination | style; - } + WinBrush::Ptr WinDC::GetBrush() + { + return FBrush; + } - LONG_PTR TurnOffStyle(LONG_PTR combination, LONG_PTR style) - { - return combination & (~style); - } + WinFont::Ptr WinDC::GetFont() + { + return FFont; + } - bool GetExStyle(LONG_PTR exStyle) - { - return (InternalGetExStyle() & exStyle) != 0; - } + void WinDC::SetPen(WinPen::Ptr Pen) + { + SelectObject(FHandle, Pen->GetHandle()); + FPen=Pen; + } - void SetExStyle(LONG_PTR exStyle, bool available) - { - if (available) - { - InternalSetExStyle(TurnOnStyle(InternalGetExStyle(), exStyle)); - } - else - { - InternalSetExStyle(TurnOffStyle(InternalGetExStyle(), exStyle)); - } - } + void WinDC::SetBrush(WinBrush::Ptr Brush) + { + SelectObject(FHandle, Brush->GetHandle()); + FBrush=Brush; + } - bool GetStyle(LONG_PTR style) - { - return (InternalGetStyle() & style) != 0; - } + void WinDC::SetFont(WinFont::Ptr Font) + { + SelectObject(FHandle, Font->GetHandle()); + FFont=Font; + } - void SetStyle(LONG_PTR style, bool available) - { - if (available) - { - InternalSetStyle(TurnOnStyle(InternalGetStyle(), style)); - } - else - { - InternalSetStyle(TurnOffStyle(InternalGetStyle(), style)); - } - } -#pragma push_macro("_CONTROL") -#if defined _CONTROL -#undef _CONTROL -#endif - NativeWindowMouseInfo ConvertMouse(WPARAM wParam, LPARAM lParam, bool wheelMessage, bool nonClient) - { - NativeWindowMouseInfo info; + COLORREF WinDC::GetBackColor() + { + return GetBkColor(FHandle); + } - info.nonClient = false; - if (nonClient) - { - switch (wParam) - { - case HTMINBUTTON: - case HTMAXBUTTON: - case HTCLOSE: - break; - default: - info.nonClient = true; - break; - } - } + void WinDC::SetBackColor(COLORREF Color) + { + SetBkColor(FHandle, Color); + } - if(wheelMessage) - { - info.wheel=GET_WHEEL_DELTA_WPARAM(wParam); - wParam=GET_KEYSTATE_WPARAM(wParam); - } - else - { - info.wheel=0; - } + COLORREF WinDC::GetTextColor() + { + return ::GetTextColor(FHandle); + } - if (nonClient) - { - info.ctrl = WinIsKeyPressing(VKEY::KEY_CONTROL); - info.shift = WinIsKeyPressing(VKEY::KEY_SHIFT); - info.left= WinIsKeyPressing(VKEY::KEY_LBUTTON); - info.middle= WinIsKeyPressing(VKEY::KEY_MBUTTON); - info.right = WinIsKeyPressing(VKEY::KEY_RBUTTON); - - POINTS point = MAKEPOINTS(lParam); - NativePoint offset = GetClientBoundsInScreen().LeftTop(); - info.x = point.x - offset.x.value; - info.y = point.y - offset.y.value; - } - else - { - info.ctrl=((VKEY)wParam & VKEY::KEY_CONTROL)!=(VKEY)0; - info.shift=((VKEY)wParam & VKEY::KEY_SHIFT)!= (VKEY)0; - info.left=((VKEY)wParam & VKEY::KEY_LBUTTON)!= (VKEY)0; - info.middle=((VKEY)wParam & VKEY::KEY_MBUTTON)!= (VKEY)0; - info.right=((VKEY)wParam & VKEY::KEY_RBUTTON)!= (VKEY)0; + void WinDC::SetTextColor(COLORREF Color) + { + ::SetTextColor(FHandle, Color); + } - POINTS point = MAKEPOINTS(lParam); + bool WinDC::GetBackTransparent() + { + return GetBkMode(FHandle)==TRANSPARENT; + } - if (wheelMessage) - { - NativePoint offset = GetClientBoundsInScreen().LeftTop(); - info.x = point.x - offset.x.value; - info.y = point.y - offset.y.value; - } - else - { - info.x = point.x; - info.y = point.y; - } - } - return info; - } + void WinDC::SetBackTransparent(bool Transparent) + { + SetBkMode(FHandle, Transparent?TRANSPARENT:OPAQUE); + } - NativeWindowKeyInfo ConvertKey(WPARAM wParam, LPARAM lParam) - { - NativeWindowKeyInfo info; - info.code=(VKEY)wParam; - info.ctrl=WinIsKeyPressing(VKEY::KEY_CONTROL); - info.shift=WinIsKeyPressing(VKEY::KEY_SHIFT); - info.alt=WinIsKeyPressing(VKEY::KEY_MENU); - info.capslock=WinIsKeyToggled(VKEY::KEY_CAPITAL); - info.autoRepeatKeyDown = (((vuint32_t)lParam) >> 30) % 2 == 1; - return info; - } + POINT WinDC::GetBrushOrigin() + { + POINT Point; + GetBrushOrgEx(FHandle, &Point); + return Point; + } - NativeWindowCharInfo ConvertChar(WPARAM wParam) - { - NativeWindowCharInfo info; - info.code=(wchar_t)wParam; - info.ctrl=WinIsKeyPressing(VKEY::KEY_CONTROL); - info.shift=WinIsKeyPressing(VKEY::KEY_SHIFT); - info.alt=WinIsKeyPressing(VKEY::KEY_MENU); - info.capslock=WinIsKeyToggled(VKEY::KEY_CAPITAL); - return info; - } -#pragma pop_macro("_CONTROL") + void WinDC::SetBrushOrigin(POINT Point) + { + SetBrushOrgEx(FHandle, Point.x, Point.y, NULL); + } - void TrackMouse(bool enable) - { - TRACKMOUSEEVENT trackMouseEvent; - trackMouseEvent.cbSize=sizeof(trackMouseEvent); - trackMouseEvent.hwndTrack=handle; - trackMouseEvent.dwFlags=(enable?0:TME_CANCEL) | TME_HOVER | TME_LEAVE; - trackMouseEvent.dwHoverTime=HOVER_DEFAULT; - TrackMouseEvent(&trackMouseEvent); - } + int WinDC::SetRasterOperation(int rop2) + { + return SetROP2(FHandle, rop2); + } - void UpdateCompositionForContent() - { - HIMC imc = ImmGetContext(handle); - COMPOSITIONFORM cf; - cf.dwStyle = CFS_POINT; - cf.ptCurrentPos.x = (int)caretPoint.x.value; - cf.ptCurrentPos.y = (int)caretPoint.y.value; - ImmSetCompositionWindow(imc, &cf); - ImmReleaseContext(handle, imc); - } + /*------------------------------------------------------------------------------*/ - bool supressClosePopups = false; + void WinDC::DrawBuffer(vint X, vint Y, const wchar_t* Text, vint CharCount) + { + TextOut(FHandle, (int)X, (int)Y, Text, (int)CharCount); + } - static void ClosePopupsOf(WindowsForm* owner, SortedList& exceptions) - { - for (vint i = 0; i < owner->childWindows.Count(); i++) - { - auto popup = owner->childWindows[i]; - if (popup->windowMode != Normal && popup->IsVisible()) - { - if (!exceptions.Contains(popup)) - { - popup->Hide(false); - } - } - ClosePopupsOf(popup, exceptions); - } - } + void WinDC::DrawBuffer(vint X, vint Y, const wchar_t* Text, vint CharCount, vint TabWidth, vint TabOriginX) + { + int realTabWidth=(int)TabWidth; + TabbedTextOut(FHandle, (int)X, (int)Y, Text, (int)CharCount, 1, &realTabWidth, (int)TabOriginX); + } - bool HandleMessageInternal(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) - { - if (!supressClosePopups) - { - bool closePopups = false; - WindowsForm* activatedWindow = nullptr; - WindowsForm* rootWindow = nullptr; - SortedList exceptions; + void WinDC::DrawBuffer(RECT Rect, const wchar_t* Text, vint CharCount, UINT Format) + { + DrawText(FHandle, Text, (int)CharCount, &Rect, Format); + } - switch (uMsg) - { - case WM_ACTIVATEAPP: - if (wParam == FALSE) - { - closePopups = true; - } - break; - case WM_ACTIVATE: - switch (LOWORD(wParam)) - { - case WA_ACTIVE: - case WA_CLICKACTIVE: - activatedWindow = this; - closePopups = true; - break; - } - break; - case WM_LBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_RBUTTONDOWN: - case WM_NCLBUTTONDOWN: - case WM_NCMBUTTONDOWN: - case WM_NCRBUTTONDOWN: - activatedWindow = this; - closePopups = true; - break; - } + void WinDC::DrawString(vint X, vint Y, WString Text) + { + DrawBuffer(X, Y, Text.Buffer(), Text.Length()); + } - if (activatedWindow) - { - rootWindow = activatedWindow; - exceptions.Add(rootWindow); - while (auto parentWindow = rootWindow->parentWindow) - { - rootWindow = parentWindow; - exceptions.Add(parentWindow); - } - } + void WinDC::DrawString(vint X, vint Y, WString Text, vint TabWidth, vint TabOriginX) + { + DrawBuffer(X, Y, Text.Buffer(), Text.Length(), TabWidth, TabOriginX); + } - if (closePopups) - { - List allRootWindows; - GetAllCreatedWindows(allRootWindows, true); + void WinDC::DrawString(RECT Rect, WString Text, UINT Format) + { + DrawBuffer(Rect, Text.Buffer(), Text.Length(), Format); + } - for (vint i = 0; i < allRootWindows.Count(); i++) - { - if (auto windowsForm = dynamic_cast(allRootWindows[i])) - { - ClosePopupsOf(windowsForm, exceptions); - } - } - } - } + SIZE WinDC::MeasureString(WString Text, vint TabSize) + { + return MeasureBuffer(Text.Buffer(), Text.Length(), TabSize); + } - bool nonClient = false; + SIZE WinDC::MeasureBuffer(const wchar_t* Text, vint CharCount, vint TabSize) + { + SIZE Size; + if(TabSize==-1) + { + GetTextExtentPoint32(FHandle, Text, (int)CharCount, &Size); + } + else + { + int realTabSize=(int)TabSize; + DWORD Result=GetTabbedTextExtent(FHandle, Text, (int)CharCount, 1, &realTabSize); + Size.cx=LOWORD(Result); + Size.cy=HIWORD(Result); + } + return Size; + } - switch(uMsg) - { - // ************************************** moving and sizing - case WM_MOVING:case WM_SIZING: - { - LPRECT rawBounds=(LPRECT)lParam; - NativeRect bounds(rawBounds->left, rawBounds->top, rawBounds->right, rawBounds->bottom); - for(vint i=0;iMoving(bounds, false, (uMsg == WM_SIZING)); - } - if( rawBounds->left!=bounds.Left().value - || rawBounds->top!=bounds.Top().value - || rawBounds->right!=bounds.Right().value - || rawBounds->bottom!=bounds.Bottom().value) - { - rawBounds->left=(int)bounds.Left().value; - rawBounds->top=(int)bounds.Top().value; - rawBounds->right=(int)bounds.Right().value; - rawBounds->bottom=(int)bounds.Bottom().value; - result=TRUE; - } - } - break; - case WM_MOVE:case WM_SIZE: - { - for(vint i=0;iMoved(); - } - } - break; - case WM_DPICHANGED: - { - dpiX = LOWORD(wParam); - dpiY = HIWORD(wParam); - UpdateDpiAwaredFields(false); - auto newRect = (RECT*)lParam; - MoveWindow(handle, newRect->left, newRect->top, (newRect->right - newRect->left), (newRect->bottom - newRect->top), FALSE); - for (vint i = 0; i < listeners.Count(); i++) - { - listeners[i]->DpiChanged(); - } - } - break; - // ************************************** state - case WM_ENABLE: - { - for(vint i=0;iEnabled(); - } - else - { - listeners[i]->Disabled(); - } - } - } - break; - case WM_SETFOCUS: - { - for(vint i=0;iGotFocus(); - } - } - break; - case WM_KILLFOCUS: - { - for(vint i=0;iLostFocus(); - } - } - break; - case WM_MOUSEACTIVATE: - if (!enabledActivate) - { - result = MA_NOACTIVATE; - return true; - } - break; - case WM_ACTIVATE: - { - for (vint i = 0; i < listeners.Count(); i++) - { - if (wParam == WA_ACTIVE || wParam == WA_CLICKACTIVE) - { - listeners[i]->Activated(); - } - else - { - listeners[i]->Deactivated(); - } - } - } - break; - case WM_SHOWWINDOW: - if (lParam == 0) - { - if (wParam == TRUE) - { - for (vint i = 0; i < listeners.Count(); i++) - { - listeners[i]->Opened(); - } - } - else - { - for (vint i = 0; i < listeners.Count(); i++) - { - listeners[i]->Closed(); - } - } - } - break; - case WM_CLOSE: - { - bool cancel=false; - for(vint i=0;iClosing(cancel); - } - return cancel; - } - break; - // ************************************** mouse - case WM_NCLBUTTONDOWN: - if (!customFrameMode) break; - nonClient = true; - case WM_LBUTTONDOWN: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iLeftButtonDown(info); - } - } - break; - case WM_NCLBUTTONUP: - if (!customFrameMode) break; - nonClient = true; - case WM_LBUTTONUP: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iLeftButtonUp(info); - } - } - break; - case WM_NCLBUTTONDBLCLK: - if (!customFrameMode) break; - nonClient = true; - case WM_LBUTTONDBLCLK: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iLeftButtonDoubleClick(info); - } - } - break; - case WM_NCRBUTTONDOWN: - if (!customFrameMode) break; - nonClient = true; - case WM_RBUTTONDOWN: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iRightButtonDown(info); - } - } - break; - case WM_NCRBUTTONUP: - if (!customFrameMode) break; - nonClient = true; - case WM_RBUTTONUP: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iRightButtonUp(info); - } - } - break; - case WM_NCRBUTTONDBLCLK: - if (!customFrameMode) break; - nonClient = true; - case WM_RBUTTONDBLCLK: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iRightButtonDoubleClick(info); - } - } - break; - case WM_NCMBUTTONDOWN: - if (!customFrameMode) break; - nonClient = true; - case WM_MBUTTONDOWN: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iMiddleButtonDown(info); - } - } - break; - case WM_NCMBUTTONUP: - if (!customFrameMode) break; - nonClient = true; - case WM_MBUTTONUP: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iMiddleButtonUp(info); - } - } - break; - case WM_NCMBUTTONDBLCLK: - if (!customFrameMode) break; - nonClient = true; - case WM_MBUTTONDBLCLK: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - for(vint i=0;iMiddleButtonDoubleClick(info); - } - } - break; - case WM_NCMOUSEMOVE: - if (!customFrameMode) break; - nonClient = true; - case WM_MOUSEMOVE: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, false, nonClient); - if(info.x!=mouseLastX || info.y!=mouseLastY) - { - if(!mouseHoving) - { - mouseHoving=true; - for(vint i=0;iMouseEntered(); - } - TrackMouse(true); - } - for(vint i=0;iMouseMoving(info); - } - } - } - break; - // ************************************** wheel - case WM_MOUSEHWHEEL: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, true, false); - for(vint i=0;iHorizontalWheel(info); - } - } - break; - case WM_MOUSEWHEEL: - { - NativeWindowMouseInfo info=ConvertMouse(wParam, lParam, true, false); - for(vint i=0;iVerticalWheel(info); - } - } - break; - // ************************************** mouse state - case WM_NCMOUSELEAVE: - nonClient = true; - case WM_MOUSELEAVE: - if (customFrameMode == nonClient) - { - mouseLastX=-1; - mouseLastY=-1; - mouseHoving=false; - for(vint i=0;iMouseLeaved(); - } - } - break; - case WM_NCMOUSEHOVER: - case WM_MOUSEHOVER: - { - TrackMouse(true); - } - break; - // ************************************** key - case WM_KEYUP: - { - NativeWindowKeyInfo info=ConvertKey(wParam, lParam); - info.autoRepeatKeyDown = false; - for(vint i=0;iKeyUp(info); - } - } - break; - case WM_KEYDOWN: - { - NativeWindowKeyInfo info=ConvertKey(wParam, lParam); - for(vint i=0;iKeyDown(info); - } - } - break; - case WM_SYSKEYUP: - { - NativeWindowKeyInfo info=ConvertKey(wParam, lParam); - info.autoRepeatKeyDown = false; - if (supressingAlt && !info.ctrl && !info.shift && info.code == VKEY::KEY_MENU) - { - supressingAlt = false; - break; - } - for(vint i=0;iSysKeyUp(info); - } - } - break; - case WM_SYSKEYDOWN: - { - NativeWindowKeyInfo info=ConvertKey(wParam, lParam); - if (supressingAlt && !info.ctrl && !info.shift && info.code == VKEY::KEY_MENU) - { - break; - } - for(vint i=0;iSysKeyDown(info); - } - } - break; - case WM_CHAR: - { - NativeWindowCharInfo info=ConvertChar(wParam); - for(vint i=0;iChar(info); - } - } - break; - // ************************************** painting - case WM_PAINT: - { - for(vint i=0;iPaint(); - } - } - break; - case WM_ERASEBKGND: - result = 0; - return true; - case WM_NCPAINT: - case WM_SYNCPAINT: - if(customFrameMode) - { - result=0; - return true; - } - break; - // ************************************** IME - case WM_IME_SETCONTEXT: - if(wParam==TRUE) - { - HIMC imc = ImmGetContext(handle); - ImmAssociateContext(hwnd, imc); - ImmReleaseContext(handle, imc); - } - break; - case WM_IME_STARTCOMPOSITION: - UpdateCompositionForContent(); - break; - // ************************************** hit test - case WM_NCHITTEST: - { - POINTS location=MAKEPOINTS(lParam); - NativePoint windowLocation=GetBounds().LeftTop(); - location.x-=(SHORT)windowLocation.x.value; - location.y-=(SHORT)windowLocation.y.value; - for(vint i=0;iHitTest(NativePoint(location.x, location.y))) - { - case INativeWindowListener::BorderNoSizing: - result=HTBORDER; - return true; - case INativeWindowListener::BorderLeft: - result=HTLEFT; - return true; - case INativeWindowListener::BorderRight: - result=HTRIGHT; - return true; - case INativeWindowListener::BorderTop: - result=HTTOP; - return true; - case INativeWindowListener::BorderBottom: - result=HTBOTTOM; - return true; - case INativeWindowListener::BorderLeftTop: - result=HTTOPLEFT; - return true; - case INativeWindowListener::BorderRightTop: - result=HTTOPRIGHT; - return true; - case INativeWindowListener::BorderLeftBottom: - result=HTBOTTOMLEFT; - return true; - case INativeWindowListener::BorderRightBottom: - result=HTBOTTOMRIGHT; - return true; - case INativeWindowListener::Title: - result=HTCAPTION; - return true; - case INativeWindowListener::ButtonMinimum: - result=HTMINBUTTON; - return true; - case INativeWindowListener::ButtonMaximum: - result=HTMAXBUTTON; - return true; - case INativeWindowListener::ButtonClose: - result=HTCLOSE; - return true; - case INativeWindowListener::Client: - result=HTCLIENT; - return true; - case INativeWindowListener::Icon: - result=HTSYSMENU; - return true; - } - } - } - break; - // ************************************** MISC - case WM_SETCURSOR: - { - DWORD hitTestResult=LOWORD(lParam); - if(hitTestResult==HTCLIENT) - { - HCURSOR cursorHandle=cursor->GetCursorHandle(); - if(GetCursor()!=cursorHandle) - { - SetCursor(cursorHandle); - } - result=TRUE; - return true; - } - } - break; - case WM_NCCALCSIZE: - if((BOOL)wParam && customFrameMode) - { - result=0; - return true; - } - break; - case WM_NCACTIVATE: - if(customFrameMode) - { - if(wParam==TRUE) - { - result=FALSE; - } - else - { - result=TRUE; - } - return true; - } - break; - } + SIZE WinDC::MeasureBuffer(const wchar_t* Text, vint TabSize) + { + return MeasureBuffer(Text, wcslen(Text), TabSize); + } + + SIZE WinDC::MeasureWrapLineString(WString Text, vint MaxWidth) + { + return MeasureWrapLineBuffer(Text.Buffer(), Text.Length(), MaxWidth); + } + + SIZE WinDC::MeasureWrapLineBuffer(const wchar_t* Text, vint CharCount, vint MaxWidth) + { + SIZE size = {0}; + vint lineCount=0; + const wchar_t* reading=Text; + INT* dx=new INT[CharCount]; + while(*reading) + { + INT fit=0; + GetTextExtentExPoint(FHandle, reading, (int)(CharCount-(reading-Text)), (int)MaxWidth, &fit, dx, &size); + reading+=fit; + lineCount++; + } + delete dx; + size.cx=0; + size.cy*=(int)lineCount; + return size; + } + + SIZE WinDC::MeasureWrapLineBuffer(const wchar_t* Text, vint MaxWidth) + { + return MeasureWrapLineBuffer(Text, wcslen(Text), MaxWidth); + } + + void WinDC::FillRegion(WinRegion::Ptr Region) + { + FillRgn(FHandle, Region->GetHandle(), FBrush->GetHandle()); + } + + void WinDC::FrameRegion(WinRegion::Ptr Region, vint BlockWidth, vint BlockHeight) + { + FrameRgn(FHandle, Region->GetHandle(), FBrush->GetHandle(), (int)BlockWidth, (int)BlockHeight); + } + + void WinDC::MoveTo(vint X, vint Y) + { + ::MoveToEx(FHandle, (int)X, (int)Y, NULL); + } + + void WinDC::LineTo(vint X, vint Y) + { + ::LineTo(FHandle, (int)X, (int)Y); + } + + void WinDC::Rectangle(vint Left, vint Top, vint Right, vint Bottom) + { + ::Rectangle(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom); + } + + void WinDC::Rectangle(RECT Rect) + { + ::Rectangle(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); + } + + void WinDC::FocusRectangle(vint Left, vint Top, vint Right, vint Bottom) + { + RECT Rect; + Rect.left=(int)Left; + Rect.top=(int)Top; + Rect.right=(int)Right; + Rect.bottom=(int)Bottom; + ::DrawFocusRect(FHandle, &Rect); + } - // handling custom frame - if (customFrameMode) - { - switch (uMsg) - { - case WM_NCLBUTTONDOWN: - switch (wParam) - { - case HTMINBUTTON: - case HTMAXBUTTON: - case HTCLOSE: - result = 0; - return true; - } - break; - case WM_LBUTTONUP: - { - POINTS location = MAKEPOINTS(lParam); - for(vint i=0;iHitTest(NativePoint(location.x, location.y))) - { - case INativeWindowListener::ButtonMinimum: - ShowMinimized(); - return false; - case INativeWindowListener::ButtonMaximum: - if (GetSizeState() == INativeWindow::Maximized) - { - ShowRestored(); - } - else - { - ShowMaximized(); - } - return false; - case INativeWindowListener::ButtonClose: - Hide(true); - return false; - } - } - } - break; - } - } - return false; - } - protected: - HWND handle; - WString title; - WindowsCursor* cursor = nullptr; - NativePoint caretPoint; - WindowsForm* parentWindow = nullptr; - List childWindows; - WindowMode windowMode; - List listeners; - vint mouseLastX = -1; - vint mouseLastY = -1; - bool mouseHoving = false; - Interface* graphicsHandler = nullptr; - bool customFrameMode = false; - bool enabledActivate = true; - List> messageHandlers; - bool supressingAlt = false; - Ptr flagDisposed = new bool(false); - NativeMargin customFramePadding; - Ptr defaultIcon; - Ptr replacementIcon; - HICON replacementHIcon = NULL; - UINT dpiX = 0; - UINT dpiY = 0; + void WinDC::FocusRectangle(RECT Rect) + { + ::DrawFocusRect(FHandle, &Rect); + } - void UpdateDpiAwaredFields(bool refreshDpiXY) - { - if (refreshDpiXY) - { - DpiAwared_GetDpiForWindow(handle, &dpiX, &dpiY); - } - auto padding = (vint)(DpiAwared_GetSystemMetrics(SM_CXSIZEFRAME, dpiX) + DpiAwared_GetSystemMetrics(SM_CXPADDEDBORDER, dpiX)); - customFramePadding = NativeMargin(padding, padding, padding, padding); - } - public: - WindowsForm(HWND parent, WString className, HINSTANCE hInstance, INativeWindow::WindowMode _windowMode) - :windowMode(_windowMode) - { - { - DWORD exStyle = WS_EX_APPWINDOW | WS_EX_CONTROLPARENT; - DWORD style = WS_BORDER | WS_CAPTION | WS_SIZEBOX | WS_SYSMENU | WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_MAXIMIZEBOX | WS_MINIMIZEBOX; - handle = CreateWindowEx(exStyle, className.Buffer(), L"", style, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, parent, NULL, hInstance, NULL); - } - if (windowMode == INativeWindow::Normal) - { - // use WS_POPUP in CreateWindowEx, because CW_USERDEFAULT is interpreted as 0, unlike WS_OVERLAPPED - // if this is not a popup window, replace WS_POPUP with WS_OVERLAPPED - auto style = InternalGetStyle(); - style = TurnOnStyle(style, WS_OVERLAPPED); - style = TurnOffStyle(style, WS_POPUP); - InternalSetStyle(style); - } - UpdateDpiAwaredFields(true); - } + void WinDC::FillRect(vint Left, vint Top, vint Right, vint Bottom) + { + RECT Rect; + Rect.left=(int)Left; + Rect.top=(int)Top; + Rect.right=(int)Right; + Rect.bottom=(int)Bottom; + ::FillRect(FHandle, &Rect, FBrush->GetHandle()); + } - ~WindowsForm() - { - if (parentWindow) - { - parentWindow->childWindows.Remove(this); - } - for (vint i = childWindows.Count() - 1; i >= 0; i--) - { - childWindows[i]->SetParent(parentWindow); - } + void WinDC::FillRect(RECT Rect) + { + ::FillRect(FHandle, &Rect, FBrush->GetHandle()); + } - *flagDisposed.Obj() = true; - List copiedListeners; - CopyFrom(copiedListeners, listeners); - for (vint i = 0; i < copiedListeners.Count(); i++) - { - INativeWindowListener* listener = copiedListeners[i]; - if (listeners.Contains(listener)) - { - listener->Destroyed(); - } - } - DestroyWindow(handle); - } + void WinDC::Ellipse(vint Left, vint Top, vint Right, vint Bottom) + { + ::Ellipse(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom); + } - void InvokeDestroying() - { - for(vint i=0;iDestroying(); - } - } + void WinDC::Ellipse(RECT Rect) + { + ::Ellipse(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); + } - bool HandleMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) - { -#define CHECK_DISPOSED if (*flag.Obj()) return skip - auto flag = flagDisposed; - bool skip = false; - { - for (auto handler : messageHandlers) - { - handler->BeforeHandle(hwnd, uMsg, wParam, lParam, skip); - CHECK_DISPOSED; - } - if (skip) - { - return true; - } - } - skip = HandleMessageInternal(hwnd, uMsg, wParam, lParam, result); - CHECK_DISPOSED; - if (GetWindowsFormFromHandle(hwnd)) - { - for (auto handler : messageHandlers) - { - handler->AfterHandle(hwnd, uMsg, wParam, lParam, skip, result); - CHECK_DISPOSED; - } - } - return skip; -#undef CHECK_DISPOSED - } + void WinDC::RoundRect(vint Left, vint Top, vint Right, vint Bottom, vint EllipseWidth, vint EllipseHeight) + { + ::RoundRect(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)EllipseWidth, (int)EllipseHeight); + } - HWND GetWindowHandle()override - { - return handle; - } + void WinDC::RoundRect(RECT Rect, vint EllipseWidth, vint EllipseHeight) + { + ::RoundRect(FHandle, (int)Rect.left, (int)Rect.top, (int)Rect.right, (int)Rect.bottom, (int)EllipseWidth, (int)EllipseHeight); + } - Interface* GetGraphicsHandler()override - { - return graphicsHandler; - } + void WinDC::PolyLine(const POINT* Points, vint Count) + { + ::Polyline(FHandle, Points, (int)Count); + } - void SetGraphicsHandler(Interface* handler)override - { - graphicsHandler=handler; - } + void WinDC::PolyLineTo(const POINT* Points, vint Count) + { + ::PolylineTo(FHandle, Points, (int)Count); + } + + void WinDC::PolyGon(const POINT* Points, vint Count) + { + ::Polygon(FHandle, Points, (int)Count); + } + + void WinDC::PolyBezier(const POINT* Points, vint Count) + { + ::PolyBezier(FHandle, Points, (int)Count); + } + + void WinDC::PolyBezierTo(const POINT* Points, vint Count) + { + ::PolyBezierTo(FHandle, Points, (int)Count); + } + + void WinDC::PolyDraw(const POINT* Points, const BYTE* Actions, vint PointCount) + { + ::PolyDraw(FHandle, Points, Actions, (int)PointCount); + } + + void WinDC::Arc(RECT Bound, POINT Start, POINT End) + { + ::Arc(FHandle, Bound.left, Bound.top, Bound.right, Bound.bottom, Start.x, Start.y, End.x, End.y); + } + + void WinDC::Arc(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) + { + ::Arc(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); + } + + void WinDC::ArcTo(RECT Bound, POINT Start, POINT End) + { + ::ArcTo(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); + } + + void WinDC::ArcTo(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) + { + ::ArcTo(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); + } + + void WinDC::AngleArc(vint X, vint Y, vint Radius, float StartAngle, float SweepAngle) + { + ::AngleArc(FHandle, (int)X, (int)Y, (int)Radius, StartAngle, SweepAngle); + } - bool InstallMessageHandler(Ptr handler)override - { - if (messageHandlers.Contains(handler.Obj())) - { - return false; - } - messageHandlers.Add(handler); - return true; - } + void WinDC::AngleArc(vint X, vint Y, vint Radius, double StartAngle, double SweepAngle) + { + ::AngleArc(FHandle, (int)X, (int)Y, (int)Radius, (float)StartAngle, (float)SweepAngle); + } - bool UninstallMessageHandler(Ptr handler)override - { - vint index = messageHandlers.IndexOf(handler.Obj()); - if (index == -1)return false; - messageHandlers.RemoveAt(handler); - return true; - } + void WinDC::Chord(RECT Bound, POINT Start, POINT End) + { + ::Chord(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); + } - Point Convert(NativePoint value)override - { - return Point((vint)value.x.value * 96 / dpiX, (vint)value.y.value * 96 / dpiY); - } + void WinDC::Chord(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) + { + ::Chord(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); + } - NativePoint Convert(Point value)override - { - return NativePoint(value.x * dpiX / 96, value.y * dpiY / 96); - } + void WinDC::Pie(RECT Bound, POINT Start, POINT End) + { + ::Pie(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); + } - Size Convert(NativeSize value)override - { - return Size((vint)value.x.value * 96 / dpiX, (vint)value.y.value * 96 / dpiY); - } + void WinDC::Pie(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) + { + ::Pie(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); + } - NativeSize Convert(Size value)override - { - return NativeSize(value.x * dpiX / 96, value.y * dpiY / 96); - } + void WinDC::GradientRectH(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_RECT* Rectangles, vint RectangleCount) + { + GradientFill(FHandle, Vertices, (int)VerticesCount, Rectangles, (int)RectangleCount, GRADIENT_FILL_RECT_H); + } - Margin Convert(NativeMargin value)override - { - return Margin( - (vint)value.left.value * 96 / dpiX, - (vint)value.top.value * 96 / dpiY, - (vint)value.right.value * 96 / dpiX, - (vint)value.bottom.value * 96 / dpiY - ); - } + void WinDC::GradientRectV(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_RECT* Rectangles, vint RectangleCount) + { + GradientFill(FHandle, Vertices, (int)VerticesCount, Rectangles, (int)RectangleCount, GRADIENT_FILL_RECT_V); + } - NativeMargin Convert(Margin value)override - { - return NativeMargin( - (vint)value.left * dpiX / 96, - (vint)value.top * dpiY / 96, - (vint)value.right * dpiX / 96, - (vint)value.bottom * dpiY / 96 - ); - } + void WinDC::GradientTriangle(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_TRIANGLE* Triangles, vint TriangleCount) + { + GradientFill(FHandle, Vertices, (int)VerticesCount, Triangles, (int)TriangleCount, GRADIENT_FILL_TRIANGLE); + } - NativeRect GetBounds()override - { - RECT rect; - GetWindowRect(handle, &rect); - return NativeRect(rect.left, rect.top, rect.right, rect.bottom); - } + /*------------------------------------------------------------------------------*/ - void SetBounds(const NativeRect& bounds)override - { - NativeRect newBounds=bounds; - for(vint i=0;iMoving(newBounds, true, false); - } - MoveWindow(handle, (int)newBounds.Left().value, (int)newBounds.Top().value, (int)newBounds.Width().value, (int)newBounds.Height().value, FALSE); - } + void WinDC::BeginPath() + { + ::BeginPath(FHandle); + } - NativeSize GetClientSize()override - { - return GetClientBoundsInScreen().GetSize(); - } + void WinDC::EndPath() + { + ::EndPath(FHandle); + } - void SetClientSize(NativeSize size)override - { - RECT required={0,0,(int)size.x.value,(int)size.y.value }; - RECT bounds; - GetWindowRect(handle, &bounds); - DpiAwared_AdjustWindowRect(&required, handle, dpiX); - SetBounds(NativeRect(NativePoint(bounds.left, bounds.top), NativeSize(required.right-required.left, required.bottom-required.top))); - } + void WinDC::ClosePath() + { + ::CloseFigure(FHandle); + } - NativeRect GetClientBoundsInScreen()override - { - if(customFrameMode) - { - return GetBounds(); - } - else - { - RECT required={0,0,0,0}; - RECT bounds; - GetWindowRect(handle, &bounds); - DpiAwared_AdjustWindowRect(&required, handle, dpiX); - return NativeRect( - NativePoint( - (bounds.left-required.left), - (bounds.top-required.top) - ), - NativeSize( - (bounds.right-bounds.left)-(required.right-required.left), - (bounds.bottom-bounds.top)-(required.bottom-required.top) - ) - ); - } - } + void WinDC::WidenPath() + { + ::WidenPath(FHandle); + } - WString GetTitle()override - { - return title; - } + void WinDC::DiscardPath() + { + ::AbortPath(FHandle); + } - void SetTitle(WString _title)override - { - title=_title; - SetWindowText(handle, title.Buffer()); - } + void WinDC::DrawPath() + { + ::StrokePath(FHandle); + } - INativeCursor* GetWindowCursor()override - { - return cursor; - } + void WinDC::FillPath() + { + ::FillPath(FHandle); + } - void SetWindowCursor(INativeCursor* _cursor)override - { - WindowsCursor* newCursor=dynamic_cast(_cursor); - if(newCursor && cursor!=newCursor) - { - cursor=newCursor; - if(mouseHoving && IsVisible()) - { - SetCursor(cursor->GetCursorHandle()); - } - } - } - - NativePoint GetCaretPoint()override - { - return caretPoint; - } + void WinDC::DrawAndFillPath() + { + ::StrokeAndFillPath(FHandle); + } - void SetCaretPoint(NativePoint point)override - { - caretPoint=point; - UpdateCompositionForContent(); - } + WinRegion::Ptr WinDC::RegionFromPath() + { + return Ptr(new WinRegion(::PathToRegion(FHandle))); + } + + /*------------------------------------------------------------------------------*/ - INativeWindow* GetParent()override - { - return parentWindow; - } + bool WinDC::PointInClip(POINT Point) + { + return PtVisible(FHandle, Point.x, Point.y)==TRUE; + } - void SetParent(INativeWindow* parent)override - { - if (parentWindow) - { - parentWindow->childWindows.Remove(this); - } + bool WinDC::RectInClip(RECT Rect) + { + return RectVisible(FHandle, &Rect)==TRUE; + } - if ((parentWindow = dynamic_cast(parent))) - { - parentWindow->childWindows.Add(this); - // ::SetParent(handle, parentWindow->handle); - SetWindowLongPtr(handle, GWLP_HWNDPARENT, (LONG_PTR)parentWindow->handle); - } - else - { - // ::SetParent(handle, NULL); - SetWindowLongPtr(handle, GWLP_HWNDPARENT, NULL); - } - } + void WinDC::ClipPath(vint CombineMode) + { + SelectClipPath(FHandle, (int)CombineMode); + } - WindowMode GetWindowMode()override - { - return windowMode; - } + void WinDC::ClipRegion(WinRegion::Ptr Region) + { + SelectClipRgn(FHandle, Region->GetHandle()); + } - void EnableCustomFrameMode()override - { - customFrameMode=true; - } + void WinDC::RemoveClip() + { + SelectClipRgn(FHandle, NULL); + } - void DisableCustomFrameMode()override - { - customFrameMode=false; - } + void WinDC::MoveClip(vint OffsetX, vint OffsetY) + { + OffsetClipRgn(FHandle, (int)OffsetX, (int)OffsetY); + } - bool IsCustomFrameModeEnabled()override - { - return customFrameMode; - } + void WinDC::CombineClip(WinRegion::Ptr Region, vint CombineMode) + { + ExtSelectClipRgn(FHandle, Region->GetHandle(), (int)CombineMode); + } - NativeMargin GetCustomFramePadding()override - { - if (GetSizeBox() || GetTitleBar()) - { - return customFramePadding; - } - else - { - return NativeMargin(0, 0, 0, 0); - } - } + void WinDC::IntersetClipRect(RECT Rect) + { + ::IntersectClipRect(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); + } - Ptr GetIcon()override - { - if (replacementIcon && replacementIcon->GetImage()) - { - return replacementIcon; - } - else - { - if (!defaultIcon) - { - auto icon = CreateWindowDefaultIcon(16); - if (icon == NULL) - { - icon = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 16, 16, LR_SHARED); - } - if (icon != NULL) - { - defaultIcon = new GuiImageData(CreateImageFromHICON(icon), 0); - } - } - return defaultIcon; - } - } + void WinDC::ExcludeClipRect(RECT Rect) + { + ::ExcludeClipRect(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); + } - static double GetSizeScore(vint size) - { - if (size > 32) - { - return 32.0 / size; - } - else if (size < 32) - { - return size / 32.0 - 1; - } - else - { - return 1.0; - } - } + WinRegion::Ptr WinDC::GetClipRegion() + { + HRGN Handle=CreateRectRgn(0, 0, 1, 1); + GetClipRgn(FHandle, Handle); + return Ptr(new WinRegion(Handle)); + } - static vint GetBppFromFormat(const WICPixelFormatGUID& format) - { - if (format == GUID_WICPixelFormat1bppIndexed) return 1; - if (format == GUID_WICPixelFormat2bppIndexed) return 2; - if (format == GUID_WICPixelFormat4bppIndexed) return 4; - if (format == GUID_WICPixelFormat8bppIndexed) return 8; - if (format == GUID_WICPixelFormatBlackWhite) return 1; - if (format == GUID_WICPixelFormat2bppGray) return 2; - if (format == GUID_WICPixelFormat4bppGray) return 4; - if (format == GUID_WICPixelFormat8bppGray) return 8; - if (format == GUID_WICPixelFormat8bppAlpha) return 8; - if (format == GUID_WICPixelFormat16bppBGR555) return 16; - if (format == GUID_WICPixelFormat16bppBGR565) return 16; - if (format == GUID_WICPixelFormat16bppBGRA5551) return 16; - if (format == GUID_WICPixelFormat16bppGray) return 16; - if (format == GUID_WICPixelFormat24bppBGR) return 24; - if (format == GUID_WICPixelFormat24bppRGB) return 24; - if (format == GUID_WICPixelFormat32bppBGR) return 32; - if (format == GUID_WICPixelFormat32bppBGRA) return 32; - if (format == GUID_WICPixelFormat32bppPBGRA) return 32; - return -1; - } + RECT WinDC::GetClipBoundRect() + { + RECT Rect; + GetClipBox(FHandle, &Rect); + return Rect; + } - void SetIcon(Ptr icon)override - { - replacementIcon = icon; - HICON newReplacementHIcon = NULL; - if (replacementIcon && replacementIcon->GetImage()) - { - stream::MemoryStream memoryStream; + /*------------------------------------------------------------------------------*/ - replacementIcon->GetImage()->SaveToStream(memoryStream, INativeImage::Icon); - if (memoryStream.Size() > 0) - { - newReplacementHIcon = CreateIconFromResource((PBYTE)memoryStream.GetInternalBuffer(), (DWORD)memoryStream.Size(), TRUE, 0x00030000); - if (newReplacementHIcon != NULL) - { - goto SKIP; - } - } + WinTransform WinDC::GetTransform() + { + XFORM Transform; + GetWorldTransform(FHandle, &Transform); + return Transform; + } - INativeImageFrame* selectedFrame = nullptr; - for (vint i = 0; i < replacementIcon->GetImage()->GetFrameCount(); i++) - { - auto frame = replacementIcon->GetImage()->GetFrame(i); - auto size = frame->GetSize(); - if (size.x == size.y) - { - auto bitmap = GetWICBitmap(frame); - WICPixelFormatGUID format; - HRESULT hr = bitmap->GetPixelFormat(&format); - if (hr != S_OK) continue; + void WinDC::SetTransform(const WinTransform& Transform) + { + SetWorldTransform(FHandle, Transform.GetHandle()); + } - if (!selectedFrame) - { - selectedFrame = frame; - } - else - { - auto score = GetSizeScore(size.x); - auto scoreSelected = GetSizeScore(selectedFrame->GetSize().x); - if (score > scoreSelected) - { - selectedFrame = frame; - } - else if (score == scoreSelected) - { - WICPixelFormatGUID selectedFormat; - auto selectedBitmap = GetWICBitmap(selectedFrame); - hr = selectedBitmap->GetPixelFormat(&selectedFormat); + /*------------------------------------------------------------------------------*/ - auto bpp = GetBppFromFormat(format); - auto bppSelected = GetBppFromFormat(selectedFormat); - if (bpp > bppSelected) - { - selectedFrame = frame; - } - } - } - } - } + void WinDC::Copy(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY, DWORD DrawROP) + { + HDC SourceHandle=Source?Source->GetHandle():0; + BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, SourceHandle, (int)srcX, (int)srcY, (int)DrawROP); + } - if (selectedFrame) - { - bool succeeded = false; - WindowsBitmapImage newBitmap(replacementIcon->GetImage()->GetImageService(), GetWICBitmap(selectedFrame), replacementIcon->GetImage()->GetFormat()); - newBitmap.SaveToStream(memoryStream, INativeImage::Bmp); - if (memoryStream.Size() > 0) - { - auto pBuffer = (char*)memoryStream.GetInternalBuffer(); - tagBITMAPFILEHEADER bfh = *(tagBITMAPFILEHEADER*)pBuffer; - tagBITMAPINFOHEADER bih = *(tagBITMAPINFOHEADER*)(pBuffer + sizeof(tagBITMAPFILEHEADER)); - RGBQUAD rgb = *(RGBQUAD*)(pBuffer + sizeof(tagBITMAPFILEHEADER) + sizeof(tagBITMAPINFOHEADER)); + void WinDC::Copy(RECT dstRect, WinDC* Source, POINT srcPos, DWORD DrawROP) + { + HDC SourceHandle=Source?Source->GetHandle():0; + BitBlt(FHandle, dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, SourceHandle, srcPos.x, srcPos.y, DrawROP); + } - BITMAPINFO bi; - bi.bmiColors[0] = rgb; - bi.bmiHeader = bih; + void WinDC::Copy(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY , vint srcW, vint srcH, DWORD DrawROP) + { + HDC SourceHandle=Source?Source->GetHandle():0; + StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, SourceHandle, (int)srcX, (int)srcY, (int)srcW, (int)srcH, (int)DrawROP); + } - char* pPixels = (pBuffer + bfh.bfOffBits); - char* ppvBits; - auto hBitmap = CreateDIBSection(NULL, &bi, DIB_RGB_COLORS, (void**)&ppvBits, NULL, 0); - if (hBitmap != NULL) - { - SetDIBits(NULL, hBitmap, 0, bih.biHeight, pPixels, &bi, DIB_RGB_COLORS); - auto himl = ImageList_Create(32, 32, ILC_COLOR32, 1, 1); - if (himl != NULL) - { - int addResult = ImageList_Add(himl, hBitmap, NULL); - newReplacementHIcon = ImageList_GetIcon(himl, 0, ILD_NORMAL); - ImageList_Destroy(himl); - } - DeleteObject(hBitmap); - } - } - } - } + void WinDC::Copy(RECT dstRect, WinDC* Source, RECT srcRect, DWORD DrawROP) + { + HDC SourceHandle=Source?Source->GetHandle():0; + StretchBlt( FHandle , dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, + SourceHandle, srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, + DrawROP); + } - SKIP: - { - HICON hAppIcon = newReplacementHIcon; - if (hAppIcon == NULL) hAppIcon = CreateWindowDefaultIcon(); - if (hAppIcon == NULL) hAppIcon = (HICON)LoadImage(NULL, IDI_APPLICATION, IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_SHARED); - bool isVisible = IsVisible(); - if (isVisible) SendMessage(handle, WM_SETREDRAW, (WPARAM)FALSE, NULL); - SendMessage(handle, WM_SETICON, ICON_BIG, (LPARAM)hAppIcon); - SendMessage(handle, WM_SETICON, ICON_SMALL, (LPARAM)hAppIcon); - if (isVisible) SendMessage(handle, WM_SETREDRAW, (WPARAM)TRUE, NULL); + void WinDC::Copy(POINT UpperLeft, POINT UpperRight, POINT LowerLeft, WinDC* Source, vint srcX, vint srcY, vint srcW, vint srcH) + { + POINT Pt[3]; + Pt[0]=UpperLeft; + Pt[1]=UpperRight; + Pt[2]=LowerLeft; + PlgBlt(FHandle, Pt, Source->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, 0, 0, 0); + } - if (this == GetCurrentController()->WindowService()->GetMainWindow()) - { - SendMessage(GetWindow(handle, GW_OWNER), WM_SETICON, ICON_BIG, (LPARAM)hAppIcon); - SendMessage(GetWindow(handle, GW_OWNER), WM_SETICON, ICON_SMALL, (LPARAM)hAppIcon); - } - } + void WinDC::Copy(POINT UpperLeft, POINT UpperRight, POINT LowerLeft, WinDC*Source, RECT srcRect) + { + POINT Pt[3]; + Pt[0]=UpperLeft; + Pt[1]=UpperRight; + Pt[2]=LowerLeft; + PlgBlt(FHandle, Pt, Source->GetHandle(), srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, 0, 0, 0); + } - if (replacementHIcon != NULL) - { - DestroyIcon(replacementHIcon); - } - replacementHIcon = newReplacementHIcon; - } + void WinDC::CopyTrans(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY , vint srcW, vint srcH, COLORREF Color) + { + TransparentBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Source->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Color); + } - WindowSizeState GetSizeState()override - { - if(IsIconic(handle)) - { - return INativeWindow::Minimized; - } - else if(IsZoomed(handle)) - { - return INativeWindow::Maximized; - } - else - { - return INativeWindow::Restored; - } - } + void WinDC::CopyTrans(RECT dstRect, WinDC* Source, RECT srcRect, COLORREF Color) + { + TransparentBlt( FHandle , dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, + Source->GetHandle() , srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, + Color); + } - void Show()override - { - ShowWindow(handle, SW_SHOWNORMAL); - } + /*------------------------------------------------------------------------------*/ - void ShowDeactivated()override - { - ShowWindow(handle, SW_SHOWNOACTIVATE); - SetWindowPos(handle,HWND_TOP,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE); - } + void WinDC::Draw(vint dstX, vint dstY, WinMetaFile* MetaFile) + { + Draw(dstX, dstY, MetaFile->GetWidth(), MetaFile->GetHeight(), MetaFile); + } - void ShowRestored()override - { - ShowWindow(handle, SW_RESTORE); - } + void WinDC::Draw(POINT Pos, WinMetaFile* MetaFile) + { + Draw(Pos.x, Pos.y, MetaFile->GetWidth(), MetaFile->GetHeight(), MetaFile); + } - void ShowMaximized()override - { - ShowWindow(handle, SW_SHOWMAXIMIZED); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinMetaFile* MetaFile) + { + RECT Rect; + Rect.left=(int)dstX; + Rect.top=(int)dstY; + Rect.right=(int)(dstX+dstW); + Rect.bottom=(int)(dstY+dstH); + Draw(Rect, MetaFile); + } - void ShowMinimized()override - { - ShowWindow(handle, SW_SHOWMINIMIZED); - } + void WinDC::Draw(RECT Rect, WinMetaFile* MetaFile) + { + PlayEnhMetaFile(FHandle, MetaFile->GetHandle(), &Rect); + } - void Hide(bool closeWindow)override - { - if (closeWindow) - { - PostMessage(handle, WM_CLOSE, NULL, NULL); - } - else - { - ShowWindow(handle, SW_HIDE); - } - } + /*------------------------------------------------------------------------------*/ - bool IsVisible()override - { - return IsWindowVisible(handle)!=0; - } + void WinDC::Draw(vint dstX, vint dstY, WinBitmap::Ptr Bitmap) + { + vint dstW=Bitmap->GetWidth(); + vint dstH=Bitmap->GetHeight(); + vint srcX=0; + vint srcY=0; + if(!Bitmap->IsAlphaChannelBuilt()) + { + BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); + } + else + { + vint srcW=dstW; + vint srcH=dstH; + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - void Enable()override - { - EnableWindow(handle, TRUE); - } + void WinDC::Draw(POINT Pos, WinBitmap::Ptr Bitmap) + { + vint dstX=Pos.x; + vint dstY=Pos.y; + vint dstW=Bitmap->GetWidth(); + vint dstH=Bitmap->GetHeight(); + vint srcX=0; + vint srcY=0; + if(!Bitmap->IsAlphaChannelBuilt()) + { + BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); + } + else + { + vint srcW=dstW; + vint srcH=dstH; + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - void Disable()override - { - EnableWindow(handle, FALSE); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap) + { + vint srcX=0; + vint srcY=0; + vint srcW=Bitmap->GetWidth(); + vint srcH=Bitmap->GetHeight(); + if(!Bitmap->IsAlphaChannelBuilt()) + { + StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + } + else + { + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - bool IsEnabled()override - { - return IsWindowEnabled(handle)!=0; - } + void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap) + { + vint dstX=Rect.left; + vint dstY=Rect.top; + vint dstW=Rect.right-Rect.left; + vint dstH=Rect.bottom-Rect.top; + vint srcX=0; + vint srcY=0; + vint srcW=Bitmap->GetWidth(); + vint srcH=Bitmap->GetHeight(); + if(!Bitmap->IsAlphaChannelBuilt()) + { + StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + } + else + { + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - void SetFocus()override - { - ::SetFocus(handle); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY) + { + if(!Bitmap->IsAlphaChannelBuilt()) + { + BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); + } + else + { + vint srcW=dstW; + vint srcH=dstH; + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - bool IsFocused()override - { - return GetFocus()==handle; - } + void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, POINT Pos) + { + vint dstX=Rect.left; + vint dstY=Rect.top; + vint dstW=Rect.right-Rect.left; + vint dstH=Rect.bottom-Rect.top; + vint srcX=Pos.x; + vint srcY=Pos.y; + if(!Bitmap->IsAlphaChannelBuilt()) + { + BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); + } + else + { + vint srcW=dstW; + vint srcH=dstH; + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - void SetActivate()override - { - SetActiveWindow(handle); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, vint srcW, vint srcH) + { + if(!Bitmap->IsAlphaChannelBuilt()) + { + StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + } + else + { + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } + + void WinDC::Draw(RECT dstRect, WinBitmap::Ptr Bitmap, RECT srcRect) + { + vint dstX=dstRect.left; + vint dstY=dstRect.top; + vint dstW=dstRect.right-dstRect.left; + vint dstH=dstRect.bottom-dstRect.top; + vint srcX=srcRect.left; + vint srcY=srcRect.top; + vint srcW=srcRect.right-srcRect.left; + vint srcH=srcRect.bottom-srcRect.top; + if(!Bitmap->IsAlphaChannelBuilt()) + { + StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + } + else + { + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=255; + Blend.AlphaFormat=AC_SRC_ALPHA; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } + } - bool IsActivated()override - { - return GetActiveWindow()==handle; - } + /*------------------------------------------------------------------------------*/ - void ShowInTaskBar()override - { - SetExStyle(WS_EX_APPWINDOW, true); - } + void WinDC::Draw(vint dstX, vint dstY, WinBitmap::Ptr Bitmap, unsigned char Alpha) + { + vint dstW=Bitmap->GetWidth(); + vint dstH=Bitmap->GetHeight(); + vint srcX=0; + vint srcY=0; + vint srcW=dstW; + vint srcH=dstH; - void HideInTaskBar()override - { - SetExStyle(WS_EX_APPWINDOW, false); - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - bool IsAppearedInTaskBar()override - { - return GetExStyle(WS_EX_APPWINDOW); - } + void WinDC::Draw(POINT Pos, WinBitmap::Ptr Bitmap, unsigned char Alpha) + { + vint dstX=Pos.x; + vint dstY=Pos.y; + vint dstW=Bitmap->GetWidth(); + vint dstH=Bitmap->GetHeight(); + vint srcX=0; + vint srcY=0; + vint srcW=dstW; + vint srcH=dstH; - void EnableActivate()override - { - enabledActivate = true; - SetExStyle(WS_EX_NOACTIVATE, false); - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - void DisableActivate()override - { - enabledActivate = false; - SetExStyle(WS_EX_NOACTIVATE, true); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, unsigned char Alpha) + { + vint srcX=0; + vint srcY=0; + vint srcW=Bitmap->GetWidth(); + vint srcH=Bitmap->GetHeight(); - bool IsEnabledActivate()override - { - return enabledActivate; - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - bool RequireCapture()override - { - SetCapture(handle); - return true; - } + void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, unsigned char Alpha) + { + vint dstX=Rect.left; + vint dstY=Rect.top; + vint dstW=Rect.right-Rect.left; + vint dstH=Rect.bottom-Rect.top; + vint srcX=0; + vint srcY=0; + vint srcW=Bitmap->GetWidth(); + vint srcH=Bitmap->GetHeight(); - bool ReleaseCapture()override - { - ::ReleaseCapture(); - return true; - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - bool IsCapturing()override - { - return GetCapture()==handle; - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, unsigned char Alpha) + { + vint srcW=dstW; + vint srcH=dstH; - bool GetMaximizedBox()override - { - return GetStyle(WS_MAXIMIZEBOX); - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - void SetMaximizedBox(bool visible)override - { - SetStyle(WS_MAXIMIZEBOX, visible); - } + void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, POINT Pos, unsigned char Alpha) + { + vint dstX=Rect.left; + vint dstY=Rect.top; + vint dstW=Rect.right-Rect.left; + vint dstH=Rect.bottom-Rect.top; + vint srcX=Pos.x; + vint srcY=Pos.y; + vint srcW=dstW; + vint srcH=dstH; - bool GetMinimizedBox()override - { - return GetStyle(WS_MINIMIZEBOX); - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - void SetMinimizedBox(bool visible)override - { - SetStyle(WS_MINIMIZEBOX, visible); - } + void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, vint srcW, vint srcH, unsigned char Alpha) + { + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - bool GetBorder()override - { - return GetStyle(WS_BORDER); - } + void WinDC::Draw(RECT dstRect, WinBitmap::Ptr Bitmap, RECT srcRect, unsigned char Alpha) + { + vint dstX=dstRect.left; + vint dstY=dstRect.top; + vint dstW=dstRect.right-dstRect.left; + vint dstH=dstRect.bottom-dstRect.top; + vint srcX=srcRect.left; + vint srcY=srcRect.top; + vint srcW=srcRect.right-srcRect.left; + vint srcH=srcRect.bottom-srcRect.top; - void SetBorder(bool visible)override - { - SetStyle(WS_BORDER, visible); - } + BLENDFUNCTION Blend; + Blend.BlendOp=AC_SRC_OVER; + Blend.BlendFlags=0; + Blend.SourceConstantAlpha=Alpha; + Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; + AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + } - bool GetSizeBox()override - { - return GetStyle(WS_SIZEBOX); - } +/********************************************************************************************************* +WinControlDC +*********************************************************************************************************/ - void SetSizeBox(bool visible)override - { - SetStyle(WS_SIZEBOX, visible); - } + WinControlDC::WinControlDC(HWND Handle) + { + FControlHandle=Handle; + FHandle=GetDC(FControlHandle); + Init(); + } - bool GetIconVisible()override - { - return GetStyle(WS_SYSMENU); - } + WinControlDC::~WinControlDC() + { + ReleaseDC(FControlHandle, FHandle); + } - void SetIconVisible(bool visible)override - { - SetStyle(WS_SYSMENU, visible); - } +/********************************************************************************************************* +WinProxyDC +*********************************************************************************************************/ - bool GetTitleBar()override - { - return GetStyle(WS_CAPTION); - } + WinProxyDC::WinProxyDC() + { + FHandle=NULL; + } - void SetTitleBar(bool visible)override - { - SetStyle(WS_CAPTION, visible); - } + WinProxyDC::~WinProxyDC() + { + } - bool GetTopMost()override - { - return GetExStyle(WS_EX_TOPMOST); - } + void WinProxyDC::Initialize(HDC Handle) + { + FHandle=Handle; + Init(); + } - void SetTopMost(bool topmost)override - { - SetWindowPos(handle, (topmost ? HWND_TOPMOST : HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_FRAMECHANGED); - } +/********************************************************************************************************* +WinImageDC +*********************************************************************************************************/ - void SupressAlt()override - { - if (!supressingAlt) - { - supressingAlt = true; - PostMessage(handle, WM_SYSKEYDOWN, VK_MENU, 0); - PostMessage(handle, WM_SYSKEYUP, VK_MENU, 0); - } - } + WinImageDC::WinImageDC() + { + FHandle=CreateCompatibleDC(NULL); + Init(); + } - bool InstallListener(INativeWindowListener* listener)override - { - if(listeners.Contains(listener)) - { - return false; - } - else - { - listeners.Add(listener); - return true; - } - } + WinImageDC::~WinImageDC() + { + DeleteDC(FHandle); + } - bool UninstallListener(INativeWindowListener* listener)override - { - if(listeners.Contains(listener)) - { - listeners.Remove(listener); - return true; - } - else - { - return false; - } - } + } + } +} - void RedrawContent()override - { - if(graphicsHandler) - { - SendMessage(this->handle, WM_PAINT, NULL, NULL); - } - } - }; /*********************************************************************** -WindowsController +.\GDI\WINGDIAPPLICATION.CPP ***********************************************************************/ - LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - LRESULT CALLBACK GodProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); +namespace vl +{ + namespace presentation + { + namespace windows + { + using namespace vl::collections; - class WindowsController : public Object, public virtual INativeController, public virtual INativeWindowService + class GdiWindowsNativeWindowListener : public Object, public INativeWindowListener { protected: - WinClass windowClass; - WinClass godClass; - HINSTANCE hInstance; - HWND godWindow; - Dictionary windows; - INativeWindow* mainWindow; - HWND mainWindowHandle; - - WindowsCallbackService callbackService; - WindowsResourceService resourceService; - WindowsAsyncService asyncService; - WindowsClipboardService clipboardService; - WindowsImageService imageService; - WindowsScreenService screenService; - WindowsInputService inputService; - WindowsDialogService dialogService; - - public: - WindowsController(HINSTANCE _hInstance) - :hInstance(_hInstance) - ,windowClass(L"VczhWindow", false, false, WndProc, _hInstance) - ,godClass(L"GodWindow", false, false, GodProc, _hInstance) - ,mainWindow(0) - ,mainWindowHandle(0) - ,screenService(&GetHWNDFromNativeWindowHandle) - ,dialogService(&GetHWNDFromNativeWindowHandle) - { - godWindow=CreateWindowEx(WS_EX_CONTROLPARENT, godClass.GetName().Buffer(), L"GodWindow", WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, hInstance, NULL); - clipboardService.SetOwnerHandle(godWindow); - inputService.SetOwnerHandle(godWindow); - } - - ~WindowsController() - { - inputService.StopTimer(); - clipboardService.SetOwnerHandle(NULL); - DestroyWindow(godWindow); - } - - WindowsForm* GetWindowsFormFromHandle(HWND hwnd) - { - vint index = windows.Keys().IndexOf(hwnd); - if (index == -1)return 0; - return windows.Values()[index]; - } + Ptr buffer; + INativeWindow* window; + bool needPaintAfterResize = false; - void GetAllCreatedWindows(collections::List& createdWindows, bool rootWindowOnly) + vint DetermineBufferLength(vint minSize, vint minBound, vint maxBound, vint currentSize) { - if (rootWindowOnly) + if(currentSizemaxBound) { - for (auto window : windows.Values()) - { - if (window->GetWindowMode() == INativeWindow::Normal) - { - createdWindows.Add(window); - } - } + return minBound; } else { - CopyFrom(createdWindows, windows.Values()); + return currentSize; } } - bool HandleMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& result) + NativeSize CalculateBufferSize() { - bool skipDefaultProcedure=false; + NativeSize nativeWindowSize = window->GetClientSize(); + Size windowSize(nativeWindowSize.x.value, nativeWindowSize.y.value); + Size minBounds(windowSize.x * 5 / 4, windowSize.y * 5 / 4); + Size maxBounds(windowSize.x * 3 / 2, windowSize.y * 3 / 2); + Size currentSize = buffer ? Size(buffer->GetWidth(), buffer->GetHeight()) : Size(0, 0); + vint newWidth = DetermineBufferLength(windowSize.x, minBounds.x, maxBounds.x, currentSize.x); + vint newHeight = DetermineBufferLength(windowSize.y, minBounds.y, maxBounds.y, currentSize.y); + return NativeSize(newWidth, newHeight); + } + + void RebuildCanvas(NativeSize size) + { + if (size.x < 256)size.x = 256; + if (size.y < 256)size.y = 256; + if (buffer) { - vint index = windows.Keys().IndexOf(hwnd); - if (index != -1) + if (buffer->GetWidth() != size.x.value || buffer->GetHeight() != size.y.value) { - WindowsForm* window = windows.Values().Get(index); - skipDefaultProcedure = window->HandleMessage(hwnd, uMsg, wParam, lParam, result); - switch (uMsg) - { - case WM_CLOSE: - if (!skipDefaultProcedure) - { - ShowWindow(window->GetWindowHandle(), SW_HIDE); - if (window != mainWindow) - { - skipDefaultProcedure = true; - } - } - break; - case WM_DESTROY: - DestroyNativeWindow(window); - break; - } + buffer = 0; + needPaintAfterResize = true; } } + if (!buffer) { - if (hwnd == mainWindowHandle && uMsg == WM_DESTROY) - { - for (auto window : windows.Values()) - { - if (window->IsVisible()) - { - window->Hide(true); - } - } - List normalWindows; - CopyFrom( - normalWindows, - From(windows.Values()) - .Where([](WindowsForm* window) - { - return window->GetWindowMode() == INativeWindow::Normal; - }) - ); - for (auto window : normalWindows) - { - DestroyNativeWindow(window); - } - for (vint i = windows.Count() - 1; i >= 0; i--) - { - auto window = windows.Values()[i]; - DestroyNativeWindow(window); - } - - PostQuitMessage(0); - } + buffer = Ptr(new WinBitmap(size.x.value, size.y.value, WinBitmap::vbb32Bits, true)); + buffer->GetWinDC()->SetBackTransparent(true); } - return skipDefaultProcedure; - } - - //======================================================================= - - INativeWindow* CreateNativeWindow(INativeWindow::WindowMode windowMode)override - { - WindowsForm* window=new WindowsForm(godWindow, windowClass.GetName(), hInstance, windowMode); - windows.Add(window->GetWindowHandle(), window); - callbackService.InvokeNativeWindowCreated(window); - window->SetWindowCursor(resourceService.GetDefaultSystemCursor()); - return window; } - - void DestroyNativeWindow(INativeWindow* window)override + public: + GdiWindowsNativeWindowListener(INativeWindow* _window) + :window(_window) { - WindowsForm* windowsForm=dynamic_cast(window); - windowsForm->InvokeDestroying(); - if(windowsForm!=0 && windows.Keys().Contains(windowsForm->GetWindowHandle())) - { - callbackService.InvokeNativeWindowDestroyed(window); - windows.Remove(windowsForm->GetWindowHandle()); - delete windowsForm; - } } - INativeWindow* GetMainWindow()override + void Moved() { - return mainWindow; + RebuildCanvas(CalculateBufferSize()); } - void Run(INativeWindow* window)override + void Paint() { - mainWindow=window; - mainWindowHandle=GetWindowsForm(window)->GetWindowHandle(); - mainWindow->Show(); - MSG message; - while(GetMessage(&message, NULL, 0, 0)) + // for the first Paint() call after Moved() + // trigger the global timer so that all GuiGraphicsHost with needToRender=true will call Render(false) + // so that to fill the buffer to prevent from seeing a black frame + // but it still leave some black color since the layout may needs more than 1 frame to finish + if (needPaintAfterResize) { - TranslateMessage(&message); - DispatchMessage(&message); - asyncService.ExecuteAsyncTasks(); + needPaintAfterResize = false; + GetWindowsNativeController()->CallbackService()->Invoker()->InvokeGlobalTimer(); } + IWindowsForm* form=GetWindowsForm(window); + WinControlDC controlDC(form->GetWindowHandle()); + controlDC.Draw(0, 0, buffer); } - INativeWindow* GetWindow(NativePoint location)override + WinDC* GetWinDC() { - POINT p; - p.x=(int)location.x.value; - p.y=(int)location.y.value; - HWND handle=WindowFromPoint(p); - vint index=windows.Keys().IndexOf(handle); - if(index==-1) - { - return 0; - } - else - { - return windows.Values().Get(index); - } + if(!buffer) Moved(); + return buffer->GetWinDC(); } + }; - //======================================================================= + class GdiWindowsNativeControllerListener : public Object, public INativeControllerListener + { + public: + Dictionary> nativeWindowListeners; - INativeCallbackService* CallbackService() + ~GdiWindowsNativeControllerListener() { - return &callbackService; + for (vint i = 0; i < nativeWindowListeners.Count(); i++) + { + auto window = nativeWindowListeners.Keys()[i]; + auto listener = nativeWindowListeners.Values()[i]; + window->UninstallListener(listener.Obj()); + } } - INativeResourceService* ResourceService() - { - return &resourceService; - } - - INativeAsyncService* AsyncService() + void NativeWindowCreated(INativeWindow* window) { - return &asyncService; + auto listener=Ptr(new GdiWindowsNativeWindowListener(window)); + window->InstallListener(listener.Obj()); + nativeWindowListeners.Add(window, listener); } - INativeClipboardService* ClipboardService() + void NativeWindowDestroying(INativeWindow* window) { - return &clipboardService; + auto listener=nativeWindowListeners[window]; + nativeWindowListeners.Remove(window); + window->UninstallListener(listener.Obj()); } + }; - INativeImageService* ImageService() + GdiWindowsNativeControllerListener* gdiListener = nullptr; + + WinDC* GetNativeWindowDC(INativeWindow* window) + { + vint index=gdiListener->nativeWindowListeners.Keys().IndexOf(window); + return index==-1?0:gdiListener->nativeWindowListeners.Values().Get(index)->GetWinDC(); + } + + HDC GetNativeWindowHDC(INativeWindow* window) + { + WinDC* dc=GetNativeWindowDC(window); + return dc?dc->GetHandle():NULL; + } + } + + namespace elements_windows_gdi + { +/*********************************************************************** +OS Supporting +***********************************************************************/ + + class WinGDIApplicationGDIObjectProvider : public IWindowsGDIObjectProvider + { + protected: + IMLangFontLink2* mLangFontLink; + + public: + WinGDIApplicationGDIObjectProvider() + :mLangFontLink(0) { - return &imageService; + CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER, IID_IMLangFontLink2, (void**)&mLangFontLink); } - INativeScreenService* ScreenService() + ~WinGDIApplicationGDIObjectProvider() { - return &screenService; + mLangFontLink->Release(); } - INativeWindowService* WindowService() + windows::WinDC* GetNativeWindowDC(INativeWindow* window)override { - return this; + return vl::presentation::windows::GetNativeWindowDC(window); } - INativeInputService* InputService() + IWindowsGDIRenderTarget* GetBindedRenderTarget(INativeWindow* window)override { - return &inputService; + return dynamic_cast(vl::presentation::windows::GetWindowsForm(window)->GetGraphicsHandler()); } - INativeDialogService* DialogService() + void SetBindedRenderTarget(INativeWindow* window, IWindowsGDIRenderTarget* renderTarget)override { - return &dialogService; + vl::presentation::windows::GetWindowsForm(window)->SetGraphicsHandler(renderTarget); } - WString GetExecutablePath() + IWICImagingFactory* GetWICImagingFactory()override { - Array buffer(65536); - GetModuleFileName(NULL, &buffer[0], (DWORD)buffer.Count()); - return &buffer[0]; + return vl::presentation::windows::GetWICImagingFactory(); } - //======================================================================= - - void InvokeGlobalTimer() + IWICBitmap* GetWICBitmap(INativeImageFrame* frame)override { - callbackService.InvokeGlobalTimer(); + return vl::presentation::windows::GetWICBitmap(frame); } - void InvokeClipboardUpdated() + IMLangFontLink2* GetMLangFontLink()override { - callbackService.InvokeClipboardUpdated(); + return mLangFontLink; } }; + } + } +} + +using namespace vl; +using namespace vl::presentation; +using namespace vl::presentation::windows; +using namespace vl::presentation::elements_windows_gdi; + +int SetupWindowsGDIRendererInternal(bool hosted) +{ + InitDpiAwareness(false); + CoInitializeEx(NULL, COINIT_MULTITHREADED); + HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL); + WinGDIApplicationGDIObjectProvider objectProvider; + SetWindowsGDIObjectProvider(&objectProvider); + EnableCrossKernelCrashing(); + + // create controller + GuiHostedController* hostedController = nullptr; + StartWindowsNativeController(hInstance); + auto nativeController = GetWindowsNativeController(); + if (hosted) hostedController = new GuiHostedController(nativeController); + SetNativeController(hostedController ? hostedController : nativeController); + + { + // install listener + GdiWindowsNativeControllerListener listener; + nativeController->CallbackService()->InstallListener(&listener); + gdiListener = &listener; + // main + RendererMainGDI(hostedController); + // uninstall listener + gdiListener = nullptr; + nativeController->CallbackService()->UninstallListener(&listener); + } + + // destroy controller + SetNativeController(nullptr); + if (hostedController) delete hostedController; + StopWindowsNativeController(); + return 0; +} + +int SetupWindowsGDIRenderer() +{ + return SetupWindowsGDIRendererInternal(false); +} + +int SetupHostedWindowsGDIRenderer() +{ + return SetupWindowsGDIRendererInternal(true); +} /*********************************************************************** -Windows Procedure +.\GDI\RENDERERS\GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI.CPP ***********************************************************************/ - LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +namespace vl +{ + namespace presentation + { + namespace elements_windows_gdi + { + using namespace elements; + using namespace collections; + using namespace windows; + +/*********************************************************************** +WindowsGDIParagraph +***********************************************************************/ + + class WindowsGDIParagraph : public Object, public IGuiGraphicsParagraph, protected UniscribeRun::IRendererCallback { - WindowsController* controller=dynamic_cast(GetCurrentController()); - if(controller) + protected: + IGuiGraphicsLayoutProvider* provider; + Ptr paragraph; + WString text; + IWindowsGDIRenderTarget* renderTarget; + + vint caret; + Color caretColor; + bool caretFrontSide; + Ptr caretPen; + + WinDC* paragraphDC; + Point paragraphOffset; + IGuiGraphicsParagraphCallback* paragraphCallback; + + void PrepareUniscribeData() { - LRESULT result=0; - if(controller->HandleMessage(hwnd, uMsg, wParam, lParam, result)) + if(paragraph->BuildUniscribeData(renderTarget->GetDC())) { - return result; + vint width=paragraph->lastAvailableWidth==-1?65536:paragraph->lastAvailableWidth; + paragraph->Layout(width, paragraph->paragraphAlignment); } } - return DefWindowProc(hwnd, uMsg, wParam, lParam); - } - LRESULT CALLBACK GodProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) - { - WindowsController* controller=dynamic_cast(GetCurrentController()); - if(controller) + WinDC* GetWinDC() { - switch(uMsg) - { - case WM_TIMER: - controller->InvokeGlobalTimer(); - break; - case WM_CLIPBOARDUPDATE: - controller->InvokeClipboardUpdated(); - break; - } + return paragraphDC; } - return DefWindowProc(hwnd, uMsg, wParam, lParam); - } - -/*********************************************************************** -Windows Platform Native Controller -***********************************************************************/ - - INativeController* CreateWindowsNativeController(HINSTANCE hInstance) - { - return new WindowsController(hInstance); - } - IWindowsForm* GetWindowsFormFromHandle(HWND hwnd) - { - auto controller = dynamic_cast(GetCurrentController()); - if (controller) + Point GetParagraphOffset() { - return controller->GetWindowsFormFromHandle(hwnd); + return paragraphOffset; } - return nullptr; - } - - IWindowsForm* GetWindowsForm(INativeWindow* window) - { - return dynamic_cast(window); - } - void GetAllCreatedWindows(collections::List& windows, bool rootWindowOnly) - { - auto controller = dynamic_cast(GetCurrentController()); - if (controller) + IGuiGraphicsParagraphCallback* GetParagraphCallback() { - controller->GetAllCreatedWindows(windows, rootWindowOnly); + return paragraphCallback; } - } + public: + WindowsGDIParagraph(IGuiGraphicsLayoutProvider* _provider, const WString& _text, IGuiGraphicsRenderTarget* _renderTarget, IGuiGraphicsParagraphCallback* _paragraphCallback) + :provider(_provider) + ,text(_text) + ,renderTarget(dynamic_cast(_renderTarget)) + ,caret(-1) + ,caretFrontSide(false) + ,paragraphDC(nullptr) + ,paragraphCallback(_paragraphCallback) + { + paragraph=Ptr(new UniscribeParagraph); + paragraph->paragraphText=text; - void DestroyWindowsNativeController(INativeController* controller) - { - delete controller; - } + auto fragment=Ptr(new UniscribeFragment(_text)); + fragment->fontStyle=GetWindowsNativeController()->ResourceService()->GetDefaultFont(); + paragraph->documentFragments.Add(fragment); + } - void EnableCrossKernelCrashing() - { - /* - "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" - DWORD DisableUserModeCallbackFilter = 1 + ~WindowsGDIParagraph() + { + CloseCaret(); + } - "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\TestCppCodegen.exe" - DWORD DisableUserModeCallbackFilter = 1 - */ - typedef BOOL (WINAPI *tGetPolicy)(LPDWORD lpFlags); - typedef BOOL (WINAPI *tSetPolicy)(DWORD dwFlags); - const DWORD EXCEPTION_SWALLOWING = 0x1; - - HMODULE kernel32 = LoadLibrary(L"kernel32.dll"); - tGetPolicy pGetPolicy = (tGetPolicy)GetProcAddress(kernel32, "GetProcessUserModeExceptionPolicy"); - tSetPolicy pSetPolicy = (tSetPolicy)GetProcAddress(kernel32, "SetProcessUserModeExceptionPolicy"); - if (pGetPolicy && pSetPolicy) - { - DWORD dwFlags; - if (pGetPolicy(&dwFlags)) - { - // Turn off the filter - pSetPolicy(dwFlags & ~EXCEPTION_SWALLOWING); - } - } - } - } - } -} + IGuiGraphicsLayoutProvider* GetProvider()override + { + return provider; + } -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\DIRECT2D\WINDIRECT2DAPPLICATION.CPP -***********************************************************************/ + IGuiGraphicsRenderTarget* GetRenderTarget()override + { + return renderTarget; + } -#pragma comment(lib, "d2d1.lib") -#pragma comment(lib, "dxguid.lib") -#pragma comment(lib, "dwrite.lib") -#pragma comment(lib, "d3d11.lib") + bool GetWrapLine()override + { + return true; + } -namespace vl -{ - namespace presentation - { - using namespace elements; + void SetWrapLine(bool value)override + { + } - namespace windows - { - using namespace vl::collections; + vint GetMaxWidth()override + { + return paragraph->lastAvailableWidth; + } -/*********************************************************************** -WindowListener -***********************************************************************/ + void SetMaxWidth(vint value)override + { + paragraph->BuildUniscribeData(renderTarget->GetDC()); + paragraph->Layout(value, paragraph->paragraphAlignment); + } - class Direct2DWindowsNativeWindowListener : public Object, public INativeWindowListener - { - protected: - ID2D1Factory* d2dFactory; - INativeWindow* window; - bool rendering = false; - bool movedWhileRendering = false; + Alignment GetParagraphAlignment()override + { + return paragraph->paragraphAlignment; + } - virtual void RebuildCanvas(NativeSize size) = 0; - public: - Direct2DWindowsNativeWindowListener(INativeWindow* _window, ID2D1Factory* _d2dFactory) - :window(_window) - ,d2dFactory(_d2dFactory) + void SetParagraphAlignment(Alignment value)override { + paragraph->BuildUniscribeData(renderTarget->GetDC()); + paragraph->Layout(paragraph->lastAvailableWidth, value); } - void Moved()override + bool SetFont(vint start, vint length, const WString& value)override { - if (rendering) + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) { - movedWhileRendering = true; + return paragraph->SetFont(start, length, value); } else { - ResizeRenderTarget(); + return false; } } - void ResizeRenderTarget() + bool SetSize(vint start, vint length, vint value)override { - RebuildCanvas(window->GetClientSize()); + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + { + return paragraph->SetSize(start, length, value); + } + else + { + return false; + } } - void StartRendering() + bool SetStyle(vint start, vint length, TextStyle value)override { - rendering = true; + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + { + return paragraph->SetStyle(start, length, (value&Bold)!=0, (value&Italic)!=0, (value&Underline)!=0, (value&Strikeline)!=0); + } + else + { + return false; + } } - void StopRendering() + bool SetColor(vint start, vint length, Color value)override { - rendering = false; + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + { + return paragraph->SetColor(start, length, value); + } + else + { + return false; + } } - bool RetrieveAndResetMovedWhileRendering() + bool SetBackgroundColor(vint start, vint length, Color value)override { - bool result = movedWhileRendering; - movedWhileRendering = false; - return result; + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + { + return paragraph->SetBackgroundColor(start, length, value); + } + else + { + return false; + } } - virtual ID2D1RenderTarget* GetDirect2DRenderTarget() = 0; - virtual void RecreateRenderTarget() = 0; - virtual bool PresentRenderTarget() = 0; - }; - -/*********************************************************************** -WindowListener 1.0 -***********************************************************************/ - - class Direct2DWindowsNativeWindowListener_1_0 : public Direct2DWindowsNativeWindowListener - { - protected: - ComPtr d2dRenderTarget; - NativeSize previousSize; - - void RebuildCanvas(NativeSize size)override + bool SetInlineObject(vint start, vint length, const InlineObjectProperties& properties)override { - if (size.x <= 1) size.x = 1; - if (size.y <= 1) size.y = 1; - if (!d2dRenderTarget) + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) { - ID2D1HwndRenderTarget* renderTarget = 0; - IWindowsForm* form = GetWindowsForm(window); - D2D1_RENDER_TARGET_PROPERTIES tp = D2D1::RenderTargetProperties(); + if(paragraph->SetInlineObject(start, length, properties)) { - UINT dpiX = 0; - UINT dpiY = 0; - DpiAwared_GetDpiForWindow(form->GetWindowHandle(), &dpiX, &dpiY); - tp.dpiX = (FLOAT)dpiX; - tp.dpiY = (FLOAT)dpiY; + if (properties.backgroundImage) + { + IGuiGraphicsRenderer* renderer=properties.backgroundImage->GetRenderer(); + if(renderer) + { + renderer->SetRenderTarget(renderTarget); + } + } + return true; } - HRESULT hr = d2dFactory->CreateHwndRenderTarget( - tp, - D2D1::HwndRenderTargetProperties( - form->GetWindowHandle(), - D2D1::SizeU((int)size.x.value, (int)size.y.value) - ), - &renderTarget - ); - if (!FAILED(hr)) + } + return false; + } + + bool ResetInlineObject(vint start, vint length)override + { + if(length==0) return true; + if(0<=start && start=0 && 0<=start+length && start+length<=text.Length()) + { + if (auto inlineObject = paragraph->ResetInlineObject(start, length)) { - d2dRenderTarget = renderTarget; - d2dRenderTarget->SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE); + if (auto element = inlineObject.Value().backgroundImage) + { + auto renderer=element->GetRenderer(); + if(renderer) + { + renderer->SetRenderTarget(0); + } + } + return true; } } - else if (previousSize != size) + return false; + } + + vint GetHeight()override + { + PrepareUniscribeData(); + return paragraph->bounds.Height(); + } + + bool OpenCaret(vint _caret, Color _color, bool _frontSide)override + { + if(!IsValidCaret(_caret)) return false; + if(caret!=-1) CloseCaret(); + caret=_caret; + caretColor=_color; + caretFrontSide=_frontSide; + caretPen=GetWindowsGDIResourceManager()->CreateGdiPen(caretColor); + return true; + } + + bool CloseCaret()override + { + if(caret==-1) return false; + caret=-1; + GetWindowsGDIResourceManager()->DestroyGdiPen(caretColor); + caretPen=0; + return true; + } + + void Render(Rect bounds)override + { + PrepareUniscribeData(); + + paragraphDC = renderTarget->GetDC(); + paragraphOffset = bounds.LeftTop(); + paragraph->Render(this, true); + paragraph->Render(this, false); + paragraphDC = 0; + + if(caret!=-1) { - d2dRenderTarget->Resize(D2D1::SizeU((int)size.x.value, (int)size.y.value)); + Rect caretBounds=GetCaretBounds(caret, caretFrontSide); + vint x=caretBounds.x1+bounds.x1; + vint y1=caretBounds.y1+bounds.y1; + vint y2=y1+(vint)(caretBounds.Height()*1.5); + + WinDC* dc=renderTarget->GetDC(); + dc->SetPen(caretPen); + dc->MoveTo(x-1, y1); + dc->LineTo(x-1, y2); + dc->MoveTo(x, y1); + dc->LineTo(x, y2); } - previousSize = size; } - public: - Direct2DWindowsNativeWindowListener_1_0(INativeWindow* _window, ID2D1Factory* _d2dFactory) - :Direct2DWindowsNativeWindowListener(_window, _d2dFactory) + + vint GetCaret(vint comparingCaret, CaretRelativePosition position, bool& preferFrontSide)override + { + PrepareUniscribeData(); + return paragraph->GetCaret(comparingCaret, position, preferFrontSide); + } + + Rect GetCaretBounds(vint caret, bool frontSide)override + { + PrepareUniscribeData(); + return paragraph->GetCaretBounds(caret, frontSide); + } + + vint GetCaretFromPoint(Point point)override + { + PrepareUniscribeData(); + return paragraph->GetCaretFromPoint(point); + } + + Nullable GetInlineObjectFromPoint(Point point, vint& start, vint& length)override { + PrepareUniscribeData(); + return paragraph->GetInlineObjectFromPoint(point, start, length); } - ID2D1RenderTarget* GetDirect2DRenderTarget()override + vint GetNearestCaretFromTextPos(vint textPos, bool frontSide)override { - if(!d2dRenderTarget) Moved(); - return d2dRenderTarget.Obj(); + PrepareUniscribeData(); + return paragraph->GetNearestCaretFromTextPos(textPos, frontSide); } - void RecreateRenderTarget()override + bool IsValidCaret(vint caret)override { - if (d2dRenderTarget) - { - d2dRenderTarget = 0; - } + PrepareUniscribeData(); + return paragraph->IsValidCaret(caret); } - bool PresentRenderTarget()override + bool IsValidTextPos(vint textPos)override { - return true; + PrepareUniscribeData(); + return paragraph->IsValidTextPos(textPos); } }; /*********************************************************************** -WindowListener 1.1 +WindowsGDILayoutProvider ***********************************************************************/ - class Direct2DWindowsNativeWindowListener_1_1 : public Direct2DWindowsNativeWindowListener + Ptr WindowsGDILayoutProvider::CreateParagraph(const WString& text, IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback) { - protected: - ComPtr d2dFactory1; - ID3D11Device* d3d11Device; - ComPtr dxgiDevice; - ComPtr dxgiSwapChain; - ComPtr d2dDeviceContext; - NativeSize previousSize; + return Ptr(new WindowsGDIParagraph(this, text, renderTarget, callback)); + } + } + } +} - ComPtr GetDXGIDevice() - { - IDXGIDevice* device = nullptr; - HRESULT hr = d3d11Device->QueryInterface(&device); - if (!SUCCEEDED(hr)) return 0; - return device; - } +/*********************************************************************** +.\GDI\RENDERERS\GUIGRAPHICSRENDERERSWINDOWSGDI.CPP +***********************************************************************/ - ComPtr CreateSwapChain(IDXGIDevice* dxgiDevice) - { - ComPtr dxgiAdapter; - { - IDXGIAdapter* adapter = nullptr; - HRESULT hr = dxgiDevice->GetAdapter(&adapter); - if (!SUCCEEDED(hr)) return 0; - dxgiAdapter = adapter; - } +namespace vl +{ + namespace presentation + { + namespace elements_windows_gdi + { + using namespace windows; + using namespace collections; - ComPtr dxgiFactory; - { - IDXGIFactory2* factory = nullptr; - HRESULT hr = dxgiAdapter->GetParent(__uuidof(IDXGIFactory2), (void**)&factory); - if (!SUCCEEDED(hr)) return 0; - dxgiFactory = factory; - } +/*********************************************************************** +GuiSolidBorderElementRenderer +***********************************************************************/ - IWindowsForm* form = GetWindowsForm(window); - ComPtr dxgiSwapChain; - { - DXGI_SWAP_CHAIN_DESC1 props = {}; - props.Format = DXGI_FORMAT_B8G8R8A8_UNORM; - props.SampleDesc.Count = 1; - props.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - props.BufferCount = 2; + void GuiFocusRectangleElementRenderer::InitializeInternal() + { + auto resourceManager = GetWindowsGDIResourceManager(); + pen = resourceManager->GetFocusRectanglePen(); + brush = resourceManager->CreateGdiBrush(Color(0, 0, 0, 0)); + } - IDXGISwapChain1* swapChain = nullptr; - HRESULT hr = dxgiFactory->CreateSwapChainForHwnd(d3d11Device, form->GetWindowHandle(), &props, nullptr, nullptr, &swapChain); - if (!SUCCEEDED(hr)) return 0; - dxgiSwapChain = swapChain; - } + void GuiFocusRectangleElementRenderer::FinalizeInternal() + { + } - return dxgiSwapChain; - } + void GuiFocusRectangleElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } - ComPtr CreateDeviceContext(IDXGIDevice* dxgiDevice) - { - ComPtr d2d1Device; - { - ID2D1Device* device = nullptr; - HRESULT hr = d2dFactory1->CreateDevice(dxgiDevice, &device); - if (!SUCCEEDED(hr)) return 0; - d2d1Device = device; - } + void GuiFocusRectangleElementRenderer::Render(Rect bounds) + { + int originRop2 = renderTarget->GetDC()->SetRasterOperation(R2_XORPEN); + renderTarget->GetDC()->SetPen(pen); + renderTarget->GetDC()->SetBrush(brush); + renderTarget->GetDC()->Rectangle(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1); + renderTarget->GetDC()->SetRasterOperation(originRop2); + } - ComPtr d2dDeviceContext; - { - ID2D1DeviceContext* deviceContext = nullptr; - HRESULT hr = d2d1Device->CreateDeviceContext(D2D1_DEVICE_CONTEXT_OPTIONS_NONE, &deviceContext); - if (!SUCCEEDED(hr)) return 0; - d2dDeviceContext = deviceContext; - } + void GuiFocusRectangleElementRenderer::OnElementStateChanged() + { + } - return d2dDeviceContext; - } +/*********************************************************************** +GuiSolidBorderElementRenderer +***********************************************************************/ - ComPtr CreateBitmap(IDXGISwapChain1* swapChain, ID2D1DeviceContext* deviceContext) + void GuiSolidBorderElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + oldColor=element->GetColor(); + pen=resourceManager->CreateGdiPen(oldColor); + brush=resourceManager->CreateGdiBrush(Color(0, 0, 0, 0)); + } + + void GuiSolidBorderElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor); + resourceManager->DestroyGdiBrush(Color(0, 0, 0, 0)); + } + + void GuiSolidBorderElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } + + void GuiSolidBorderElementRenderer::Render(Rect bounds) + { + if(oldColor.a>0) { - ComPtr dxgiSurface; - { - IDXGISurface* surface = nullptr; - HRESULT hr = swapChain->GetBuffer(0, __uuidof(IDXGISurface), (void**)&surface); - if (!SUCCEEDED(hr))return 0; - dxgiSurface = surface; - } + renderTarget->GetDC()->SetBrush(brush); + renderTarget->GetDC()->SetPen(pen); + auto shape = element->GetShape(); - ComPtr d2dBitmap; + switch(shape.shapeType) { - auto props = D2D1::BitmapProperties1(D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW, D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_IGNORE)); - - ID2D1Bitmap1* bitmap = nullptr; - HRESULT hr = deviceContext->CreateBitmapFromDxgiSurface(dxgiSurface.Obj(), props, &bitmap); - if (!SUCCEEDED(hr)) return 0; - d2dBitmap = bitmap; + case ElementShapeType::Rectangle: + renderTarget->GetDC()->Rectangle(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); + break; + case ElementShapeType::Ellipse: + renderTarget->GetDC()->Ellipse(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); + break; + case ElementShapeType::RoundRect: + renderTarget->GetDC()->RoundRect(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1, shape.radiusX * 2, shape.radiusY * 2); + break; } - - return d2dBitmap; } + } - void RebuildCanvas(NativeSize size)override + void GuiSolidBorderElementRenderer::OnElementStateChanged() + { + Color color=element->GetColor(); + if(oldColor!=color) { - if (size.x <= 1) size.x = 1; - if (size.y <= 1) size.y = 1; + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor); + oldColor=color; + pen=resourceManager->CreateGdiPen(oldColor); + } + } - if(!d2dDeviceContext) - { - if (!dxgiDevice) - { - dxgiDevice = GetDXGIDevice(); - } +/*********************************************************************** +Gui3DBorderElementRenderer +***********************************************************************/ - if (!dxgiSwapChain) - { - dxgiSwapChain = CreateSwapChain(dxgiDevice.Obj()); - } + void Gui3DBorderElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + oldColor1=element->GetColor1(); + oldColor2=element->GetColor2(); + pen1=resourceManager->CreateGdiPen(oldColor1); + pen2=resourceManager->CreateGdiPen(oldColor2); + } - d2dDeviceContext = CreateDeviceContext(dxgiDevice.Obj()); - auto d2dBitmap = CreateBitmap(dxgiSwapChain.Obj(), d2dDeviceContext.Obj()); - d2dDeviceContext->SetTarget(d2dBitmap.Obj()); - IWindowsForm* form = GetWindowsForm(window); - { - UINT dpiX = 0; - UINT dpiY = 0; - DpiAwared_GetDpiForWindow(form->GetWindowHandle(), &dpiX, &dpiY); - d2dDeviceContext->SetDpi((FLOAT)dpiX, (FLOAT)dpiY); - } - } - else if(previousSize!=size) - { - d2dDeviceContext->SetTarget(nullptr); - HRESULT hr = dxgiSwapChain->ResizeBuffers(0, 0, 0, DXGI_FORMAT_UNKNOWN, 0); - if (SUCCEEDED(hr)) - { - auto d2dBitmap = CreateBitmap(dxgiSwapChain.Obj(), d2dDeviceContext.Obj()); - d2dDeviceContext->SetTarget(d2dBitmap.Obj()); - } - } - previousSize=size; - } - public: - Direct2DWindowsNativeWindowListener_1_1(INativeWindow* _window, ComPtr _d2dFactory1, ID3D11Device* _d3d11Device) - :Direct2DWindowsNativeWindowListener(_window, _d2dFactory1.Obj()) - ,d2dFactory1(_d2dFactory1) - ,d3d11Device(_d3d11Device) + void Gui3DBorderElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor1); + resourceManager->DestroyGdiPen(oldColor2); + } + + void Gui3DBorderElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } + + void Gui3DBorderElementRenderer::Render(Rect bounds) + { + if(oldColor1.a>0) { + renderTarget->GetDC()->SetPen(pen1); + renderTarget->GetDC()->MoveTo(bounds.x1, bounds.y1); + renderTarget->GetDC()->LineTo(bounds.x2, bounds.y1); + renderTarget->GetDC()->MoveTo(bounds.x1, bounds.y1); + renderTarget->GetDC()->LineTo(bounds.x1, bounds.y2); } - - ID2D1RenderTarget* GetDirect2DRenderTarget()override + if(oldColor2.a>0) { - if(!d2dDeviceContext) Moved(); - return d2dDeviceContext.Obj(); + renderTarget->GetDC()->SetPen(pen2); + renderTarget->GetDC()->MoveTo(bounds.x2-1, bounds.y2-1); + renderTarget->GetDC()->LineTo(bounds.x1, bounds.y2-1); + renderTarget->GetDC()->MoveTo(bounds.x2-1, bounds.y2-1); + renderTarget->GetDC()->LineTo(bounds.x2-1, bounds.y1); } + } - void RecreateRenderTarget()override + void Gui3DBorderElementRenderer::OnElementStateChanged() + { + Color color1=element->GetColor1(); + if(oldColor1!=color1) { - if (d2dDeviceContext) - { - d2dDeviceContext = 0; - dxgiSwapChain = 0; - } + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor1); + oldColor1=color1; + pen1=resourceManager->CreateGdiPen(oldColor1); } - bool PresentRenderTarget()override + Color color2=element->GetColor2(); + if(oldColor2!=color2) { - if (d2dDeviceContext) - { - if (dxgiSwapChain) - { - DXGI_PRESENT_PARAMETERS parameters = {0}; - HRESULT hr = dxgiSwapChain->Present1(1, 0, ¶meters); - return hr == S_OK || hr == DXGI_STATUS_OCCLUDED; - } - } - return false; + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor2); + oldColor2=color2; + pen2=resourceManager->CreateGdiPen(oldColor2); } - }; + } /*********************************************************************** -ControllerListener +Gui3DSplitterElementRenderer ***********************************************************************/ - class Direct2DWindowsNativeControllerListener : public Object, public INativeControllerListener + void Gui3DSplitterElementRenderer::InitializeInternal() { - public: - Dictionary> nativeWindowListeners; - ComPtr d2dFactory; - ComPtr dwrite; - ComPtr d3d11Device; + auto resourceManager=GetWindowsGDIResourceManager(); + oldColor1=element->GetColor1(); + oldColor2=element->GetColor2(); + pen1=resourceManager->CreateGdiPen(oldColor1); + pen2=resourceManager->CreateGdiPen(oldColor2); + } - Direct2DWindowsNativeControllerListener() + void Gui3DSplitterElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor1); + resourceManager->DestroyGdiPen(oldColor2); + } + + void Gui3DSplitterElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } + + void Gui3DSplitterElementRenderer::Render(Rect bounds) + { + Point p11, p12, p21, p22; + switch(element->GetDirection()) { + case Gui3DSplitterElement::Horizontal: { - D2D1_FACTORY_OPTIONS fo = {}; - #ifdef _DEBUG - fo.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION; - #endif - - ID2D1Factory* factory=0; - HRESULT hr=D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, fo, &factory); - if(!FAILED(hr)) - { - d2dFactory=factory; - } + vint y=bounds.y1+bounds.Height()/2-1; + p11=Point(bounds.x1, y); + p12=Point(bounds.x2, y); + p21=Point(bounds.x1, y+1); + p22=Point(bounds.x2, y+1); } + break; + case Gui3DSplitterElement::Vertical: { - IDWriteFactory* factory=0; - HRESULT hr=DWriteCreateFactory(DWRITE_FACTORY_TYPE_ISOLATED, __uuidof(IDWriteFactory), reinterpret_cast(&factory)); - if(!FAILED(hr)) - { - dwrite=factory; - } + vint x=bounds.x1+bounds.Width()/2-1; + p11=Point(x, bounds.y1); + p12=Point(x, bounds.y2); + p21=Point(x+1, bounds.y1); + p22=Point(x+1, bounds.y2); } + break; + } + if(oldColor1.a>0) + { + renderTarget->GetDC()->SetPen(pen1); + renderTarget->GetDC()->MoveTo(p11.x, p11.y); + renderTarget->GetDC()->LineTo(p12.x, p12.y); + } + if(oldColor2.a>0) + { + renderTarget->GetDC()->SetPen(pen2); + renderTarget->GetDC()->MoveTo(p21.x, p21.y); + renderTarget->GetDC()->LineTo(p22.x, p22.y); } + } - ~Direct2DWindowsNativeControllerListener() + void Gui3DSplitterElementRenderer::OnElementStateChanged() + { + Color color1=element->GetColor1(); + if(oldColor1!=color1) { - for (vint i = 0; i < nativeWindowListeners.Count(); i++) - { - auto window = nativeWindowListeners.Keys()[i]; - auto listener = nativeWindowListeners.Values()[i]; - window->UninstallListener(listener.Obj()); - } + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor1); + oldColor1=color1; + pen1=resourceManager->CreateGdiPen(oldColor1); } - ComPtr CreateD3D11Device(D3D_DRIVER_TYPE driverType) + Color color2=element->GetColor2(); + if(oldColor2!=color2) { - UINT flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; - #ifdef _DEBUG - flags |= D3D11_CREATE_DEVICE_DEBUG; - #endif + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor2); + oldColor2=color2; + pen2=resourceManager->CreateGdiPen(oldColor2); + } + } - D3D_FEATURE_LEVEL featureLevels[] = - { - D3D_FEATURE_LEVEL_11_1, - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0, - D3D_FEATURE_LEVEL_9_3, - D3D_FEATURE_LEVEL_9_2, - D3D_FEATURE_LEVEL_9_1 - }; +/*********************************************************************** +GuiSolidBackgroundElementRenderer +***********************************************************************/ + void GuiSolidBackgroundElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + oldColor=element->GetColor(); + pen=resourceManager->CreateGdiPen(oldColor); + brush=resourceManager->CreateGdiBrush(oldColor); + } - ID3D11Device* device = nullptr; - HRESULT hr = D3D11CreateDevice( - nullptr, - driverType, - nullptr, - flags, - featureLevels, - sizeof(featureLevels) / sizeof(*featureLevels), - D3D11_SDK_VERSION, - &device, - nullptr, - nullptr); - if (SUCCEEDED(hr)) - { - return device; - } - else if (device) - { - device->Release(); - } - return 0; - } + void GuiSolidBackgroundElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor); + resourceManager->DestroyGdiBrush(oldColor); + } - void NativeWindowCreated(INativeWindow* window) - { - ComPtr d2dfactory1; - { - ID2D1Factory1* factory = nullptr; - HRESULT hr = windows::GetDirect2DFactory()->QueryInterface(&factory); - if (SUCCEEDED(hr)) - { - d2dfactory1 = factory; - } - } + void GuiSolidBackgroundElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } - Ptr listener; - if (d2dfactory1) - { - if (!d3d11Device) - { - d3d11Device = CreateD3D11Device(D3D_DRIVER_TYPE_HARDWARE); - if (!d3d11Device) - { - d3d11Device = CreateD3D11Device(D3D_DRIVER_TYPE_WARP); - } - } -#if _DEBUG - CHECK_ERROR(d3d11Device, - L"Direct2DWindowsNativeControllerListener::NativeWindowCreated(INativeWindow*)#" - L"Failed to create Direct3D 11 Device. " - L"If you are running in Debug mode on Windows 10, please ensure the optional feature [Graphics Tools] is correctly installed. " - L"This error will be skipped in Release mode and GacUI will fallback to use Direct2D 1.0, but you still need to check your Windows SDK Installation." - ); -#endif - } + void GuiSolidBackgroundElementRenderer::Render(Rect bounds) + { + if(oldColor.a>0) + { + renderTarget->GetDC()->SetPen(pen); + renderTarget->GetDC()->SetBrush(brush); + auto shape = element->GetShape(); - if (d2dfactory1 && d3d11Device) - { - listener = new Direct2DWindowsNativeWindowListener_1_1(window, d2dfactory1, d3d11Device.Obj()); - } - else + switch(shape.shapeType) { - listener = new Direct2DWindowsNativeWindowListener_1_0(window, d2dFactory.Obj()); + case ElementShapeType::Rectangle: + renderTarget->GetDC()->FillRect(bounds.Left(), bounds.Top(), bounds.Right(), bounds.Bottom()); + break; + case ElementShapeType::Ellipse: + renderTarget->GetDC()->Ellipse(bounds.Left(), bounds.Top(), bounds.Right()-1, bounds.Bottom()-1); + break; + case ElementShapeType::RoundRect: + renderTarget->GetDC()->RoundRect(bounds.Left(), bounds.Top(), bounds.Right() - 1, bounds.Bottom() - 1, shape.radiusX * 2, shape.radiusY * 2); + break; } - window->InstallListener(listener.Obj()); - nativeWindowListeners.Add(window, listener); } + } - void NativeWindowDestroying(INativeWindow* window) + void GuiSolidBackgroundElementRenderer::OnElementStateChanged() + { + Color color=element->GetColor(); + if(oldColor!=color) { - Ptr listener=nativeWindowListeners[window]; - nativeWindowListeners.Remove(window); - window->UninstallListener(listener.Obj()); + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldColor); + resourceManager->DestroyGdiBrush(oldColor); + oldColor=color; + pen=resourceManager->CreateGdiPen(oldColor); + brush=resourceManager->CreateGdiBrush(oldColor); } - }; + } - Direct2DWindowsNativeControllerListener* direct2DListener=0; +/*********************************************************************** +GuiGradientBackgroundElementRenderer +***********************************************************************/ - ID2D1Factory* GetDirect2DFactory() + void GuiGradientBackgroundElementRenderer::InitializeInternal() { - return direct2DListener->d2dFactory.Obj(); } - IDWriteFactory* GetDirectWriteFactory() + void GuiGradientBackgroundElementRenderer::FinalizeInternal() { - return direct2DListener->dwrite.Obj(); } - ID3D11Device* GetD3D11Device() + void GuiGradientBackgroundElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) { - return direct2DListener->d3d11Device.Obj(); } - } - - namespace elements_windows_d2d - { -/*********************************************************************** -OS Supporting -***********************************************************************/ - class WinDirect2DApplicationDirect2DObjectProvider : public IWindowsDirect2DObjectProvider + void GuiGradientBackgroundElementRenderer::Render(Rect bounds) { - protected: - - windows::Direct2DWindowsNativeWindowListener* GetNativeWindowListener(INativeWindow* window) - { - vint index = windows::direct2DListener->nativeWindowListeners.Keys().IndexOf(window); - return index == -1 - ? nullptr - : windows::direct2DListener->nativeWindowListeners.Values().Get(index).Obj(); - } - - public: - void RecreateRenderTarget(INativeWindow* window)override - { - if (auto listener = GetNativeWindowListener(window)) - { - return listener->RecreateRenderTarget(); - } - } - - void ResizeRenderTarget(INativeWindow* window)override - { - if (auto listener = GetNativeWindowListener(window)) - { - return listener->ResizeRenderTarget(); - } - } - - ID2D1RenderTarget* GetNativeWindowDirect2DRenderTarget(INativeWindow* window)override + Color color1 = element->GetColor1(); + Color color2 = element->GetColor2(); + if (color1.a > 0 || color2.a > 0) { - if (auto listener = GetNativeWindowListener(window)) + Ptr targetRegion, oldRegion, newRegion; + auto shape = element->GetShape(); + switch (shape.shapeType) { - return listener->GetDirect2DRenderTarget(); + case ElementShapeType::Ellipse: + targetRegion = Ptr(new WinRegion(bounds.x1, bounds.y1, bounds.x2 + 1, bounds.y2 + 1, false)); + break; + case ElementShapeType::RoundRect: + targetRegion = Ptr(new WinRegion(bounds.x1, bounds.y1, bounds.x2 + 1, bounds.y2 + 1, shape.radiusX * 2, shape.radiusY * 2)); + break; } - return nullptr; - } - void StartRendering(INativeWindow* window)override - { - if (auto listener = GetNativeWindowListener(window)) + if (targetRegion) { - listener->StartRendering(); - if (auto renderTarget = listener->GetDirect2DRenderTarget()) - { - renderTarget->BeginDraw(); - renderTarget->Clear(D2D1::ColorF(D2D1::ColorF::Black)); - } + oldRegion = renderTarget->GetDC()->GetClipRegion(); + newRegion = Ptr(new WinRegion(oldRegion, targetRegion, RGN_AND)); + renderTarget->GetDC()->ClipRegion(newRegion); } - } - RenderTargetFailure StopRenderingAndPresent(INativeWindow* window)override - { - if (auto listener = GetNativeWindowListener(window)) + switch (element->GetDirection()) { - listener->StopRendering(); - bool moved = listener->RetrieveAndResetMovedWhileRendering(); - - if (auto renderTarget = listener->GetDirect2DRenderTarget()) + case GuiGradientBackgroundElement::Horizontal: + case GuiGradientBackgroundElement::Vertical: { - HRESULT hr = renderTarget->EndDraw(); - if (hr == S_OK) - { - if (moved) - { - return RenderTargetFailure::ResizeWhileRendering; - } - else if (listener->PresentRenderTarget()) - { - return RenderTargetFailure::None; - } - } - } - } - return RenderTargetFailure::LostDevice; - } - - ID2D1Factory* GetDirect2DFactory()override - { - return vl::presentation::windows::GetDirect2DFactory(); - } + TRIVERTEX vertices[2]; + GRADIENT_RECT rectangles[1]; - IDWriteFactory* GetDirectWriteFactory()override - { - return vl::presentation::windows::GetDirectWriteFactory(); - } + vertices[0].x = (int)bounds.x1; + vertices[0].y = (int)bounds.y1; + vertices[1].x = (int)bounds.x2; + vertices[1].y = (int)bounds.y2; - IWindowsDirect2DRenderTarget* GetBindedRenderTarget(INativeWindow* window)override - { - auto windowsForm = vl::presentation::windows::GetWindowsForm(window); - auto graphicsHandler = windowsForm->GetGraphicsHandler(); - return dynamic_cast(graphicsHandler); - } + rectangles[0].UpperLeft = 0; + rectangles[0].LowerRight = 1; - void SetBindedRenderTarget(INativeWindow* window, IWindowsDirect2DRenderTarget* renderTarget)override - { - vl::presentation::windows::GetWindowsForm(window)->SetGraphicsHandler(renderTarget); - } + vertices[0].Red = color1.r << 8; + vertices[0].Green = color1.g << 8; + vertices[0].Blue = color1.b << 8; + vertices[0].Alpha = color1.a << 8; - IWICImagingFactory* GetWICImagingFactory()override - { - return vl::presentation::windows::GetWICImagingFactory(); - } + vertices[1].Red = color2.r << 8; + vertices[1].Green = color2.g << 8; + vertices[1].Blue = color2.b << 8; + vertices[1].Alpha = color2.a << 8; - IWICBitmap* GetWICBitmap(INativeImageFrame* frame)override - { - return vl::presentation::windows::GetWICBitmap(frame); - } - }; - } - } -} + switch (element->GetDirection()) + { + case GuiGradientBackgroundElement::Horizontal: + renderTarget->GetDC()->GradientRectH(vertices, sizeof(vertices) / sizeof(*vertices), rectangles, sizeof(rectangles) / sizeof(*rectangles)); + break; + case GuiGradientBackgroundElement::Vertical: + renderTarget->GetDC()->GradientRectV(vertices, sizeof(vertices) / sizeof(*vertices), rectangles, sizeof(rectangles) / sizeof(*rectangles)); + break; + } + } + break; + case GuiGradientBackgroundElement::Slash: + case GuiGradientBackgroundElement::Backslash: + { + TRIVERTEX vertices[4]; + GRADIENT_TRIANGLE triangles[2]; -using namespace vl; -using namespace vl::presentation; -using namespace vl::presentation::windows; -using namespace vl::presentation::elements_windows_d2d; + switch (element->GetDirection()) + { + case GuiGradientBackgroundElement::Slash: + vertices[0].x = (int)bounds.x2; + vertices[0].y = (int)bounds.y1; + vertices[1].x = (int)bounds.x1; + vertices[1].y = (int)bounds.y1; + vertices[2].x = (int)bounds.x2; + vertices[2].y = (int)bounds.y2; + vertices[3].x = (int)bounds.x1; + vertices[3].y = (int)bounds.y2; + break; + case GuiGradientBackgroundElement::Backslash: + vertices[0].x = (int)bounds.x1; + vertices[0].y = (int)bounds.y1; + vertices[1].x = (int)bounds.x1; + vertices[1].y = (int)bounds.y2; + vertices[2].x = (int)bounds.x2; + vertices[2].y = (int)bounds.y1; + vertices[3].x = (int)bounds.x2; + vertices[3].y = (int)bounds.y2; + break; + } -int WinMainDirect2D(HINSTANCE hInstance, void(*RendererMain)()) -{ - EnableCrossKernelCrashing(); - // create controller - INativeController* controller=CreateWindowsNativeController(hInstance); - SetCurrentController(controller); - { - // install listener - Direct2DWindowsNativeControllerListener listener; - controller->CallbackService()->InstallListener(&listener); - direct2DListener=&listener; - // main - RendererMain(); - // uninstall listener - direct2DListener=0; - controller->CallbackService()->UninstallListener(&listener); - } - // destroy controller - DestroyWindowsNativeController(controller); - return 0; -} + triangles[0].Vertex1 = 0; + triangles[0].Vertex2 = 1; + triangles[0].Vertex3 = 2; + triangles[1].Vertex1 = 1; + triangles[1].Vertex2 = 2; + triangles[1].Vertex3 = 3; -int SetupWindowsDirect2DRenderer() -{ - InitDpiAwareness(true); - CoInitializeEx(NULL, COINIT_MULTITHREADED); - HINSTANCE hInstance=(HINSTANCE)GetModuleHandle(NULL); - WinDirect2DApplicationDirect2DObjectProvider objectProvider; - SetWindowsDirect2DObjectProvider(&objectProvider); - return WinMainDirect2D(hInstance, &RendererMainDirect2D); -} + vertices[0].Red = color1.r << 8; + vertices[0].Green = color1.g << 8; + vertices[0].Blue = color1.b << 8; + vertices[0].Alpha = color1.a << 8; -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\GDI\WINGDI.CPP -***********************************************************************/ + vertices[1].Red = ((color1.r + color2.r) / 2) << 8; + vertices[1].Green = ((color1.g + color2.g) / 2) << 8; + vertices[1].Blue = ((color1.b + color2.b) / 2) << 8; + vertices[1].Alpha = ((color1.a + color2.a) / 2) << 8; -#pragma comment(lib, "Msimg32.lib") + vertices[2].Red = ((color1.r + color2.r) / 2) << 8; + vertices[2].Green = ((color1.g + color2.g) / 2) << 8; + vertices[2].Blue = ((color1.b + color2.b) / 2) << 8; + vertices[2].Alpha = ((color1.a + color2.a) / 2) << 8; -namespace vl -{ - namespace presentation - { - namespace windows - { + vertices[3].Red = color2.r << 8; + vertices[3].Green = color2.g << 8; + vertices[3].Blue = color2.b << 8; + vertices[3].Alpha = color2.a << 8; -/********************************************************************************************************* -WinRegion -*********************************************************************************************************/ + renderTarget->GetDC()->GradientTriangle(vertices, sizeof(vertices) / sizeof(*vertices), triangles, sizeof(triangles) / sizeof(*triangles)); + } + break; + } - bool IsEqual(WinRegion::Ptr Region1, WinRegion::Ptr Region2) - { - return EqualRgn(Region1->GetHandle(), Region2->GetHandle())!=0; - } + if (targetRegion) + { + renderTarget->GetDC()->ClipRegion(oldRegion); + } + } + } - WinRegion::WinRegion(vint Left, vint Top, vint Right, vint Bottom, bool Rectangle) - { - if(Rectangle) + void GuiGradientBackgroundElementRenderer::OnElementStateChanged() { - FHandle=CreateRectRgn((int)Left, (int)Top, (int)Right, (int)Bottom); } - else + +/*********************************************************************** +GuiSolidLabelElementRenderer +***********************************************************************/ + + void GuiInnerShadowElementRenderer::InitializeInternal() { - FHandle=CreateEllipticRgn((int)Left, (int)Top, (int)Right, (int)Bottom); } - } - WinRegion::WinRegion(RECT Rect, bool Rectangle) - { - if(Rectangle) + void GuiInnerShadowElementRenderer::FinalizeInternal() { - FHandle=CreateRectRgnIndirect(&Rect); } - else + + void GuiInnerShadowElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) { - FHandle=CreateEllipticRgnIndirect(&Rect); } - } - - WinRegion::WinRegion(vint Left, vint Top, vint Right, vint Bottom, vint EllipseWidth, vint EllipseHeight) - { - FHandle=CreateRoundRectRgn((int)Left, (int)Top, (int)Right, (int)Bottom, (int)EllipseWidth, (int)EllipseHeight); - } - - WinRegion::WinRegion(POINT* Points, vint Count, bool Alternate) - { - FHandle=CreatePolygonRgn(Points, (int)Count, Alternate?ALTERNATE:WINDING); - } - - WinRegion::WinRegion(WinRegion::Ptr Region) - { - FHandle=CreateRectRgn(0, 0, 1, 1); - CombineRgn(FHandle, Region->GetHandle(), Region->GetHandle(), RGN_COPY); - } - - WinRegion::WinRegion(WinRegion::Ptr Region1, WinRegion::Ptr Region2, vint CombineMode) - { - FHandle=CreateRectRgn(0, 0, 1, 1); - CombineRgn(FHandle, Region1->GetHandle(), Region2->GetHandle(), (int)CombineMode); - } - WinRegion::WinRegion(HRGN RegionHandle) - { - FHandle=RegionHandle; - } - - WinRegion::~WinRegion() - { - DeleteObject(FHandle); - } - - HRGN WinRegion::GetHandle() - { - return FHandle; - } + GuiInnerShadowElementRenderer::GuiInnerShadowElementRenderer() + { + } - bool WinRegion::ContainPoint(POINT Point) - { - return PtInRegion(FHandle, Point.x, Point.y)!=0; - } + void GuiInnerShadowElementRenderer::Render(Rect bounds) + { + } - bool WinRegion::ContainRect(RECT Rect) - { - return RectInRegion(FHandle, &Rect)!=0; - } + void GuiInnerShadowElementRenderer::OnElementStateChanged() + { + } - RECT WinRegion::GetBoundRect() - { - RECT Rect={0, 0, 0, 0}; - GetRgnBox(FHandle, &Rect); - return Rect; - } +/*********************************************************************** +GuiSolidLabelElementRenderer +***********************************************************************/ - void WinRegion::Move(vint OffsetX, vint OffsetY) - { - OffsetRgn(FHandle, (int)OffsetX, (int)OffsetY); - } + void GuiSolidLabelElementRenderer::UpdateMinSize() + { + if(renderTarget) + { + renderTarget->GetDC()->SetFont(font); + SIZE size={0}; + const WString& text=element->GetText(); + if(element->GetWrapLine()) + { + if(element->GetWrapLineHeightCalculation()) + { + if(oldMaxWidth==-1 || text.Length()==0) + { + size=renderTarget->GetDC()->MeasureBuffer(L" "); + } + else + { + size=renderTarget->GetDC()->MeasureWrapLineString(text, oldMaxWidth); + } + } + } + else + { + size=text.Length()==0 + ?renderTarget->GetDC()->MeasureBuffer(L" ") + :renderTarget->GetDC()->MeasureString(text) + ; + } + minSize=Size((element->GetEllipse()?0:size.cx), size.cy); + } + else + { + minSize=Size(); + } + } -/********************************************************************************************************* -WinTransform -*********************************************************************************************************/ - - WinTransform::WinTransform(XFORM Transform) - { - FTransform=Transform; - } + void GuiSolidLabelElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + oldFont=element->GetFont(); + font=resourceManager->CreateGdiFont(oldFont); + } - WinTransform::WinTransform(const WinTransform& Transform) - { - FTransform=Transform.FTransform; - } + void GuiSolidLabelElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiFont(oldFont); + } - WinTransform& WinTransform::operator=(const WinTransform& Transform) - { - FTransform=Transform.FTransform; - return *this; - } + void GuiSolidLabelElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + UpdateMinSize(); + } - WinTransform WinTransform::operator*(const WinTransform& Transform) - { - XFORM Result; - CombineTransform(&Result, GetHandle(), Transform.GetHandle()); - return Result; - } + GuiSolidLabelElementRenderer::GuiSolidLabelElementRenderer() + :oldMaxWidth(-1) + { + } - const XFORM* WinTransform::GetHandle()const - { - return &FTransform; - } + void GuiSolidLabelElementRenderer::Render(Rect bounds) + { + Color color=element->GetColor(); + if(color.a>0) + { + renderTarget->GetDC()->SetFont(font); + renderTarget->GetDC()->SetTextColor(RGB(color.r, color.g, color.b)); - /*------------------------------------------------------------------------------*/ + UINT format=DT_NOPREFIX; + RECT rect; + rect.left=(int)bounds.Left(); + rect.top=(int)bounds.Top(); + rect.right=(int)bounds.Right(); + rect.bottom=(int)bounds.Bottom(); - WinTransform WinTransform::Translate(float OffsetX, float OffsetY) - { - XFORM Transform; - Transform.eM11=1.0f; - Transform.eM12=0.0f; - Transform.eM21=0.0f; - Transform.eM22=1.0f; - Transform.eDx=OffsetX; - Transform.eDy=OffsetY; - return Transform; - } + if(element->GetMultiline() || element->GetWrapLine()) + { + format|=DT_EDITCONTROL; + } + else + { + format|=DT_SINGLELINE; + switch(element->GetVerticalAlignment()) + { + case Alignment::Top: + format|=DT_TOP; + break; + case Alignment::Center: + format|=DT_VCENTER; + break; + case Alignment::Bottom: + format|=DT_BOTTOM; + break; + } + } - WinTransform WinTransform::Scale(float ScaleX, float ScaleY) - { - XFORM Transform; - Transform.eM11=ScaleX; - Transform.eM12=0.0f; - Transform.eM21=0.0f; - Transform.eM22=ScaleY; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + switch(element->GetHorizontalAlignment()) + { + case Alignment::Left: + format|=DT_LEFT; + break; + case Alignment::Center: + format|=DT_CENTER; + break; + case Alignment::Right: + format|=DT_RIGHT; + break; + } - WinTransform WinTransform::Rotate(float Angle) - { - XFORM Transform; - Transform.eM11=(FLOAT)cos(Angle); - Transform.eM12= (FLOAT)sin(Angle); - Transform.eM21= (FLOAT)-sin(Angle); - Transform.eM22= (FLOAT)cos(Angle); - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + if(element->GetWrapLine()) + { + format|=DT_WORDBREAK; + } + if(element->GetEllipse()) + { + format|=DT_END_ELLIPSIS; + } + renderTarget->GetDC()->DrawString(rect, element->GetText(), format); + if(oldMaxWidth!=bounds.Width()) + { + oldMaxWidth=bounds.Width(); + UpdateMinSize(); + } + } + } - WinTransform WinTransform::Rotate(float Cos, float Sin) - { - XFORM Transform; - Transform.eM11=Cos; - Transform.eM12=Sin; - Transform.eM21=-Sin; - Transform.eM22=Cos; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + void GuiSolidLabelElementRenderer::OnElementStateChanged() + { + FontProperties fontProperties=element->GetFont(); + if(oldFont!=fontProperties) + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiFont(oldFont); + oldFont=fontProperties; + font=resourceManager->CreateGdiFont(oldFont); + } + UpdateMinSize(); + } - WinTransform WinTransform::ReflectX() - { - XFORM Transform; - Transform.eM11=1.0f; - Transform.eM12=0.0f; - Transform.eM21=0.0f; - Transform.eM22=-1.0f; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } +/*********************************************************************** +GuiImageFrameElementRenderer +***********************************************************************/ - WinTransform WinTransform::ReflectY() - { - XFORM Transform; - Transform.eM11=-1.0f; - Transform.eM12=0.0f; - Transform.eM21=0.0f; - Transform.eM22=1.0f; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + void GuiImageFrameElementRenderer::UpdateBitmap() + { + if(element->GetImage()) + { + auto resourceManager=GetWindowsGDIResourceManager(); + INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); + bitmap=resourceManager->GetBitmap(frame, element->GetEnabled()); - WinTransform WinTransform::Reflect(float VectorX, float VectorY) - { - float Len= (FLOAT)sqrt(VectorX*VectorX+VectorY*VectorY); - float Cos=VectorX/Len; - float Sin=VectorY/Len; + if (element->GetStretch()) + { + minSize=Size(0,0); + } + else + { + minSize=frame->GetSize(); + } + } + else + { + bitmap=0; + minSize=Size(0, 0); + } + } - return Rotate(Cos, -Sin)*ReflectX()*Rotate(Cos, Sin); - } + void GuiImageFrameElementRenderer::InitializeInternal() + { + UpdateBitmap(); + } - WinTransform WinTransform::Reflect(float OriginX, float OriginY, float VectorX, float VectorY) - { - float Len= (FLOAT)sqrt(VectorX*VectorX+VectorY*VectorY); - float Cos=VectorX/Len; - float Sin=VectorY/Len; + void GuiImageFrameElementRenderer::FinalizeInternal() + { + } - return Translate(-OriginX, -OriginY)*Rotate(Cos, -Sin)*ReflectX()*Rotate(Cos, Sin)*Translate(OriginX, OriginY); - } + void GuiImageFrameElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } - WinTransform WinTransform::AxisV(float Xx, float Xy, float Yx, float Yy) - { - XFORM Transform; - Transform.eM11=Xx; - Transform.eM12=Xy; - Transform.eM21=Yx; - Transform.eM22=Yy; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + GuiImageFrameElementRenderer::GuiImageFrameElementRenderer() + { + } - WinTransform WinTransform::AxisA(float AngleX, float LenX, float AngleY, float LenY) - { - XFORM Transform; - Transform.eM11=(FLOAT)cos(AngleX)*LenX; - Transform.eM12=(FLOAT)sin(AngleX)*LenX; - Transform.eM21=(FLOAT)cos(AngleY)*LenY; - Transform.eM22=(FLOAT)sin(AngleY)*LenY; - Transform.eDx=0.0f; - Transform.eDy=0.0f; - return Transform; - } + void GuiImageFrameElementRenderer::Render(Rect bounds) + { + if(bitmap) + { + WinDC* dc=renderTarget->GetDC(); + Rect source(0, 0, minSize.x, minSize.y); + Rect destination; + if(element->GetStretch()) + { + INativeImageFrame* frame=element->GetImage()->GetFrame(element->GetFrameIndex()); + source = Rect(Point(0, 0), frame->GetSize()); + destination=Rect(bounds.x1, bounds.y1, bounds.x2, bounds.y2); + } + else + { + vint x=0; + vint y=0; + switch(element->GetHorizontalAlignment()) + { + case Alignment::Left: + x=bounds.Left(); + break; + case Alignment::Center: + x=bounds.Left()+(bounds.Width()-minSize.x)/2; + break; + case Alignment::Right: + x=bounds.Right()-minSize.x; + break; + } + switch(element->GetVerticalAlignment()) + { + case Alignment::Top: + y=bounds.Top(); + break; + case Alignment::Center: + y=bounds.Top()+(bounds.Height()-minSize.y)/2; + break; + case Alignment::Bottom: + y=bounds.Bottom()-minSize.y; + break; + } + destination=Rect(x, y, x+minSize.x, y+minSize.y); + } + if(element->GetImage()->GetFormat()==INativeImage::Gif && element->GetFrameIndex()>0) + { + auto resourceManager=GetWindowsGDIResourceManager(); + vint max=element->GetFrameIndex(); + for(vint i=0;i<=max;i++) + { + Ptr frameBitmap=resourceManager->GetBitmap(element->GetImage()->GetFrame(i), element->GetEnabled()); + dc->Draw( + destination.Left(), destination.Top(), destination.Width(), destination.Height(), + frameBitmap, + source.Left(), source.Top(), source.Width(), source.Height() + ); + } + } + else + { + dc->Draw( + destination.Left(), destination.Top(), destination.Width(), destination.Height(), + bitmap, + source.Left(), source.Top(), source.Width(), source.Height() + ); + } + } + } -/********************************************************************************************************* -WinMetaFileBuilder -*********************************************************************************************************/ + void GuiImageFrameElementRenderer::OnElementStateChanged() + { + UpdateBitmap(); + } - void WinMetaFileBuilder::Create(vint Width, vint Height) - { - HDC hdcRef=GetDC(NULL); - vint iWidthMM = GetDeviceCaps(hdcRef, HORZSIZE); - vint iHeightMM = GetDeviceCaps(hdcRef, VERTSIZE); - vint iWidthPels = GetDeviceCaps(hdcRef, HORZRES); - vint iHeightPels = GetDeviceCaps(hdcRef, VERTRES); - ReleaseDC(NULL, hdcRef); +/*********************************************************************** +GuiPolygonElementRenderer +***********************************************************************/ - RECT Rect; - Rect.left=0; - Rect.top=0; - Rect.right = (int)((Width*iWidthMM*100)/iWidthPels); - Rect.bottom = (int)((Height*iHeightMM*100)/iHeightPels); + void GuiPolygonElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + pen=resourceManager->CreateGdiPen(oldPenColor); + brush=resourceManager->CreateGdiBrush(oldBrushColor); + } - HDC Handle=CreateEnhMetaFile(NULL, NULL, &Rect, L"VczhLibrary++GDI\0Enhanced Meta File\0"); - FDC->Initialize(Handle); + void GuiPolygonElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldPenColor); + resourceManager->DestroyGdiBrush(oldBrushColor); + } - FWidth=Width; - FHeight=Height; - } + void GuiPolygonElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } - void WinMetaFileBuilder::Draw(HENHMETAFILE Handle) - { - RECT Rect; - Rect.left=0; - Rect.top=0; - Rect.right=(int)FWidth; - Rect.bottom=(int)FHeight; - PlayEnhMetaFile(FDC->GetHandle(), Handle, &Rect); - } + GuiPolygonElementRenderer::GuiPolygonElementRenderer() + :points(0) + ,pointCount(0) + ,oldPenColor(0, 0, 0, 0) + ,oldBrushColor(0, 0, 0, 0) + { + } - void WinMetaFileBuilder::Destroy() - { - DeleteEnhMetaFile(CloseEnhMetaFile(FDC->GetHandle())); - } + GuiPolygonElementRenderer::~GuiPolygonElementRenderer() + { + if(points) delete[] points; + } - WinMetaFileBuilder::WinMetaFileBuilder(vint Width, vint Height) - { - FDC=new WinProxyDC(); - Create(Width, Height); - } + void GuiPolygonElementRenderer::Render(Rect bounds) + { + if(pointCount>=3 && (oldPenColor.a || oldBrushColor.a)) + { + vint offsetX=(bounds.Width()-minSize.x)/2+bounds.x1; + vint offsetY=(bounds.Height()-minSize.y)/2+bounds.y1; + for(vint i=0;iGetDC()->SetPen(pen); + renderTarget->GetDC()->SetBrush(brush); + renderTarget->GetDC()->PolyGon(points, pointCount); + for(vint i=0;iGetSize(); + { + if(points) + { + delete[] points; + points=0; + } + pointCount=element->GetPointCount(); + if(pointCount>0) + { + points=new POINT[pointCount]; + for(vint i=0;iGetPoint(i); + points[i].x=(int)p.x; + points[i].y=(int)p.y; + } + } + } - void WinMetaFileBuilder::LoadFrom(WinMetaFile* File) - { - Destroy(); - Create(File->GetWidth(), File->GetHeight()); - Draw(File->GetHandle()); - } + auto resourceManager=GetWindowsGDIResourceManager(); + if(oldPenColor!=element->GetBorderColor() || !pen) + { + resourceManager->DestroyGdiPen(oldPenColor); + oldPenColor=element->GetBorderColor(); + pen=resourceManager->CreateGdiPen(oldPenColor); + } + if(oldBrushColor!=element->GetBackgroundColor() || !brush) + { + resourceManager->DestroyGdiPen(oldBrushColor); + oldBrushColor=element->GetBackgroundColor(); + brush=resourceManager->CreateGdiBrush(oldBrushColor); + } + } - void WinMetaFileBuilder::SaveTo(WinMetaFile* File) - { - HENHMETAFILE Handle=CloseEnhMetaFile(FDC->GetHandle()); - if(File->FHandle) +/*********************************************************************** +GuiColorizedTextElementRenderer +***********************************************************************/ + + void GuiColorizedTextElementRenderer::DestroyColors() { - DeleteEnhMetaFile(File->FHandle); + auto resourceManager=GetWindowsGDIResourceManager(); + for(vint i=0;iDestroyGdiBrush(colors[i].normal.background); + resourceManager->DestroyGdiBrush(colors[i].selectedFocused.background); + resourceManager->DestroyGdiBrush(colors[i].selectedUnfocused.background); + } } - File->FHandle=Handle; - File->FWidth=FWidth; - File->FHeight=FHeight; - Create(FWidth, FHeight); - Draw(Handle); - } - void WinMetaFileBuilder::LoadFrom(WString FileName) - { - WinMetaFile File(FileName); - Destroy(); - Create(File.GetWidth(), File.GetHeight()); - Draw(File.GetHandle()); - } + void GuiColorizedTextElementRenderer::ColorChanged() + { + auto resourceManager=GetWindowsGDIResourceManager(); + ColorArray newColors; + newColors.Resize(element->GetColors().Count()); + for(vint i=0;iGetColors().Get(i); + ColorEntryResource newEntry; - void WinMetaFileBuilder::SaveTo(WString FileName) - { - HENHMETAFILE Handle=CloseEnhMetaFile(FDC->GetHandle()); - HENHMETAFILE NewHandle=CopyEnhMetaFile(Handle, FileName.Buffer()); - DeleteEnhMetaFile(NewHandle); - Create(FWidth, FHeight); - Draw(Handle); - DeleteEnhMetaFile(Handle); - } + newEntry.normal.text=entry.normal.text; + newEntry.normal.background=entry.normal.background; + newEntry.normal.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.normal.background); + newEntry.selectedFocused.text=entry.selectedFocused.text; + newEntry.selectedFocused.background=entry.selectedFocused.background; + newEntry.selectedFocused.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.selectedFocused.background); + newEntry.selectedUnfocused.text=entry.selectedUnfocused.text; + newEntry.selectedUnfocused.background=entry.selectedUnfocused.background; + newEntry.selectedUnfocused.backgroundBrush=resourceManager->CreateGdiBrush(newEntry.selectedUnfocused.background); + newColors[i]=newEntry; + } - WinDC* WinMetaFileBuilder::GetWinDC() - { - return FDC; - } + DestroyColors(); + CopyFrom(colors, newColors); + } - vint WinMetaFileBuilder::GetWidth() - { - return FWidth; - } + void GuiColorizedTextElementRenderer::FontChanged() + { + auto resourceManager = GetWindowsGDIResourceManager(); + if (font) + { + element->GetLines().SetCharMeasurer(nullptr); + resourceManager->DestroyGdiFont(oldFont); + resourceManager->DestroyCharMeasurer(oldFont); + font = nullptr; + } + oldFont = element->GetFont(); + font = resourceManager->CreateGdiFont(oldFont); + element->GetLines().SetCharMeasurer(resourceManager->CreateCharMeasurer(oldFont).Obj()); + } - vint WinMetaFileBuilder::GetHeight() - { - return FHeight; - } + void GuiColorizedTextElementRenderer::InitializeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + element->SetCallback(this); + oldCaretColor=element->GetCaretColor(); + caretPen=resourceManager->CreateGdiPen(oldCaretColor); + } -/********************************************************************************************************* -WinMetaFile -*********************************************************************************************************/ + void GuiColorizedTextElementRenderer::FinalizeInternal() + { + auto resourceManager=GetWindowsGDIResourceManager(); + if(font) + { + resourceManager->DestroyGdiFont(oldFont); + resourceManager->DestroyCharMeasurer(oldFont); + } + resourceManager->DestroyGdiPen(oldCaretColor); + DestroyColors(); + } - WinMetaFile::WinMetaFile(WString FileName) - { - FHandle=GetEnhMetaFile(FileName.Buffer()); - ENHMETAHEADER Header; - GetEnhMetaFileHeader(FHandle, sizeof(Header), &Header); - FWidth=(Header.rclFrame.right-Header.rclFrame.left)*Header.szlDevice.cx/(Header.szlMillimeters.cx*100); - FHeight=(Header.rclFrame.bottom-Header.rclFrame.top)*Header.szlDevice.cy/(Header.szlMillimeters.cy*100); - } + void GuiColorizedTextElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + element->GetLines().SetRenderTarget(newRenderTarget); + } - WinMetaFile::WinMetaFile(WinMetaFileBuilder* Builder) - { - FHandle=NULL; - Builder->SaveTo(this); - } + void GuiColorizedTextElementRenderer::Render(Rect bounds) + { + if (renderTarget) + { + WinDC* dc = renderTarget->GetDC(); + dc->SetFont(font); - WinMetaFile::~WinMetaFile() - { - DeleteEnhMetaFile(FHandle); - } + wchar_t passwordChar = element->GetPasswordChar(); + Point viewPosition = element->GetViewPosition(); + Rect viewBounds(viewPosition, bounds.GetSize()); + vint startRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, viewBounds.y1)).row; + vint endRow = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, viewBounds.y2)).row; + TextPos selectionBegin = element->GetCaretBegin() < element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); + TextPos selectionEnd = element->GetCaretBegin() > element->GetCaretEnd() ? element->GetCaretBegin() : element->GetCaretEnd(); + bool focused = element->GetFocused(); + Ptr lastBrush = 0; - HENHMETAFILE WinMetaFile::GetHandle() - { - return FHandle; - } + for (vint row = startRow; row <= endRow; row++) + { + Rect startRect = element->GetLines().GetRectFromTextPos(TextPos(row, 0)); + Point startPoint = startRect.LeftTop(); + vint startColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x1, startPoint.y)).column; + vint endColumn = element->GetLines().GetTextPosFromPoint(Point(viewBounds.x2, startPoint.y)).column; + + text::TextLine& line = element->GetLines().GetLine(row); + if (text::UTF16SPFirst(line.text[endColumn]) && endColumn + 1 < line.dataLength && text::UTF16SPSecond(line.text[startColumn + 1])) + { + endColumn++; + } - vint WinMetaFile::GetWidth() - { - return FWidth; - } + vint x = startColumn == 0 ? 0 : line.att[startColumn - 1].rightOffset; + for (vint column = startColumn; column <= endColumn; column++) + { + bool inSelection = false; + if (selectionBegin.row == selectionEnd.row) + { + inSelection = (row == selectionBegin.row && selectionBegin.column <= column && column < selectionEnd.column); + } + else if (row == selectionBegin.row) + { + inSelection = selectionBegin.column <= column; + } + else if (row == selectionEnd.row) + { + inSelection = column < selectionEnd.column; + } + else + { + inSelection = selectionBegin.row < row && row < selectionEnd.row; + } - vint WinMetaFile::GetHeight() - { - return FHeight; - } + bool crlf = column == line.dataLength; + vint colorIndex = crlf ? 0 : line.att[column].colorIndex; + if (colorIndex >= colors.Count()) + { + colorIndex = 0; + } + ColorItemResource& color = + !inSelection ? colors[colorIndex].normal : + focused ? colors[colorIndex].selectedFocused : + colors[colorIndex].selectedUnfocused; + vint x2 = crlf ? x + startRect.Height() / 2 : line.att[column].rightOffset; + vint tx = x - viewPosition.x + bounds.x1; + vint ty = startPoint.y - viewPosition.y + bounds.y1; -/********************************************************************************************************* -WinBitmap -*********************************************************************************************************/ + if (color.background.a) + { + if (lastBrush != color.backgroundBrush) + { + lastBrush = color.backgroundBrush; + dc->SetBrush(lastBrush); + } + dc->FillRect(tx, ty, tx + (x2 - x), ty + startRect.Height()); + } + if (!crlf) + { + vint count = text::UTF16SPFirst(line.text[column]) && column + 1 < line.dataLength && text::UTF16SPSecond(line.text[column + 1]) ? 2 : 1; + if (color.text.a) + { + dc->SetTextColor(RGB(color.text.r, color.text.g, color.text.b)); + dc->DrawBuffer(tx, ty, (passwordChar ? &passwordChar : &line.text[column]), count); + } + if (count == 2) column++; + } + x = x2; + } + } - vint WinBitmap::GetBitsFromBB(BitmapBits BB) - { - switch(BB) - { - case vbb32Bits: - return 32; - case vbb24Bits: - return 24; - default: - return 1; + if (element->GetCaretVisible() && element->GetLines().IsAvailable(element->GetCaretEnd())) + { + Point caretPoint = element->GetLines().GetPointFromTextPos(element->GetCaretEnd()); + vint height = element->GetLines().GetRowHeight(); + dc->SetPen(caretPen); + dc->MoveTo(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); + dc->LineTo(caretPoint.x - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); + dc->MoveTo(caretPoint.x - 1 - viewPosition.x + bounds.x1, caretPoint.y - viewPosition.y + bounds.y1 + 1); + dc->LineTo(caretPoint.x - 1 - viewPosition.x + bounds.x1, caretPoint.y + height - viewPosition.y + bounds.y1 - 1); + } + } } - } - vint WinBitmap::GetLineBytes(vint Width, BitmapBits BB) - { - vint Bits=GetBitsFromBB(BB); - vint LineBits=Width*Bits; - vint AlignBits=sizeof(DWORD)*8; - LineBits+=(AlignBits-LineBits%AlignBits)%AlignBits; - return LineBits/8; - } + void GuiColorizedTextElementRenderer::OnElementStateChanged() + { + Color caretColor=element->GetCaretColor(); + if(oldCaretColor!=caretColor) + { + auto resourceManager=GetWindowsGDIResourceManager(); + resourceManager->DestroyGdiPen(oldCaretColor); + oldCaretColor=caretColor; + caretPen=resourceManager->CreateGdiPen(oldCaretColor); + } + } - void WinBitmap::FillBitmapInfoHeader(vint Width, vint Height, BitmapBits Bits, BITMAPINFOHEADER* Header) - { - Header->biSize=sizeof(BITMAPINFOHEADER); - Header->biWidth=(int)Width; - Header->biHeight=-(int)Height; - Header->biPlanes=1; - Header->biBitCount=(int)GetBitsFromBB(Bits); - Header->biCompression=BI_RGB; - Header->biSizeImage=0; - Header->biXPelsPerMeter=0; - Header->biYPelsPerMeter=0; - Header->biClrUsed=(Bits==vbb2Bits?2:0); - Header->biClrImportant=0; - } +/*********************************************************************** +GuiGDIElementRenderer +***********************************************************************/ - HBITMAP WinBitmap::CreateDDB(vint Width, vint Height, BitmapBits Bits) - { - if(Bits==vbb2Bits) + void GuiGDIElementRenderer::InitializeInternal() { - return CreateBitmap((int)Width, (int)Height, 2, (int)GetBitsFromBB(Bits), NULL); } - else + + void GuiGDIElementRenderer::FinalizeInternal() { - WinBitmap Bitmap(1, 1, Bits, true); - return CreateCompatibleBitmap(Bitmap.GetWinDC()->GetHandle(), (int)Width, (int)Height); } - } - HBITMAP WinBitmap::CreateDIB(vint Width, vint Height, BitmapBits Bits, BYTE**& ScanLines) - { - BITMAPINFO* Info=(BITMAPINFO*)malloc(sizeof(BITMAPINFOHEADER)+2*sizeof(RGBQUAD)); - FillBitmapInfoHeader(Width, Height, Bits, &Info->bmiHeader); - Info->bmiColors[0].rgbBlue=0; - Info->bmiColors[0].rgbGreen=0; - Info->bmiColors[0].rgbRed=0; - Info->bmiColors[0].rgbReserved=0; - Info->bmiColors[1].rgbBlue=255; - Info->bmiColors[1].rgbGreen=255; - Info->bmiColors[1].rgbRed=255; - Info->bmiColors[1].rgbReserved=255; + void GuiGDIElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget) + { + } - BYTE* FirstLine=0; - HBITMAP Handle=CreateDIBSection(FDC->GetHandle(), Info, DIB_RGB_COLORS, (void**)&FirstLine, NULL, 0); - ScanLines=new BYTE*[Height]; - vint LineBytes=GetLineBytes(Width, Bits); - for(vint i=0;iPushClipper(bounds); + if(!renderTarget->IsClipperCoverWholeTarget()) + { + WinDC* dc=renderTarget->GetDC(); + GuiGDIElementEventArgs arguments(element, dc, bounds); + element->Rendering.Execute(arguments); + } + renderTarget->PopClipper(); + } } - FWidth=Width; - FHeight=Height; - FBits=Bits; - FAlphaChannelBuilt=false; - HGDIOBJ Object=SelectObject(FDC->GetHandle(), FHandle); - if(Object) + + void GuiGDIElementRenderer::OnElementStateChanged() { - DeleteObject(Object); } } - - WinBitmap::WinBitmap(vint Width, vint Height, BitmapBits Bits, bool DIBSections) - { - Constructor(Width, Height, Bits, DIBSections); - } + } +} - WinBitmap::WinBitmap(WString FileName, bool Use32Bits, bool DIBSections) - { - FBits=Use32Bits?vbb32Bits:vbb24Bits; - - HBITMAP TempBmp=(HBITMAP)LoadImage(NULL, FileName.Buffer(), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); - HDC TempDC=CreateCompatibleDC(NULL); - BITMAP TempRec; +/*********************************************************************** +.\GDI\RENDERERS\GUIGRAPHICSUNISCRIBE.CPP +***********************************************************************/ - GetObject(TempBmp, sizeof(BITMAP), &TempRec); - DeleteObject(SelectObject(TempDC, TempBmp)); +#pragma comment(lib, "usp10.lib") - Constructor(TempRec.bmWidth, TempRec.bmHeight, FBits, DIBSections); - BitBlt(FDC->GetHandle(), 0, 0, TempRec.bmWidth, TempRec.bmHeight, TempDC, 0, 0, SRCCOPY); +namespace vl +{ + namespace presentation + { + namespace elements_windows_gdi + { + using namespace regex; - DeleteObject(TempDC); - DeleteObject(TempBmp); - } +/*********************************************************************** +UniscribeFragment +***********************************************************************/ - WinBitmap::~WinBitmap() - { - if(FScanLines) + UniscribeFragment::UniscribeFragment(const WString& _text) + :text(_text) { - delete[] FScanLines; + colors.Add(UniscribeColorRange(0, text.Length()), UniscribeColor(Color(0, 0, 0), Color(0, 0, 0, 0))); } - if(FHandle) + + WString UniscribeFragment::GetFingerprint() { - DeleteObject(FHandle); + return fontStyle.fontFamily+L"#" + +itow(fontStyle.size)+L"#" + +(fontStyle.bold?L"B":L"N")+L"#" + +(fontStyle.italic?L"I":L"N")+L"#" + +(fontStyle.underline?L"U":L"N")+L"#" + +(fontStyle.strikeline?L"S":L"N")+L"#" + ; } - delete FDC; - } - void WinBitmap::SaveToStream(stream::IStream& Output, bool DIBV5ClipboardFormat) - { - if (FScanLines) - { - BITMAPFILEHEADER Header1; - BITMAPV5HEADER Header2; + void UniscribeFragment::CutColors(vint start, vint length) + { + vint end=start+length; + for(vint i=colors.Count()-1;i>=0;i--) + { + UniscribeColorRange key=colors.Keys()[i]; + if(key.startstart?key.start:start; + vint s3=key.end=0;i--) { - memset(&Header2, 0, sizeof(Header2)); - Header2.bV5Size = sizeof(Header2); - Header2.bV5Width = (int)FWidth; - Header2.bV5Height = -(int)FHeight; - Header2.bV5Planes = 1; - Header2.bV5BitCount = (int)GetBitsFromBB(FBits); - Header2.bV5Compression = BI_RGB; - Header2.bV5CSType = LCS_sRGB; - Header2.bV5Intent = LCS_GM_GRAPHICS; - Output.Write(&Header2, sizeof(Header2)); + UniscribeColorRange key=colors.Keys()[i]; + if(key.start=-1;i--) { - Output.Write(FScanLines[i], GetLineBytes()); + if(lastIndex==-1) + { + lastIndex=i; + if(i!=-1) + { + lastColor=colors.Values()[i]; + } + } + else if(i==-1 || colors.Values()[i]!=lastColor) + { + if(lastIndex-i>0) + { + vint start=colors.Keys()[i+1].start; + vint end=colors.Keys()[lastIndex].end; + UniscribeColorRange key(start, end); + + for(vint j=lastIndex;j>i;j--) + { + colors.Remove(colors.Keys()[j]); + } + colors.Add(key, lastColor); + } + lastIndex=i; + if(i!=-1) + { + lastColor=colors.Values()[i]; + } + } } } - else + + UniscribeColor UniscribeFragment::GetCharColor(vint charIndex) { - WinBitmap Temp(FWidth, FHeight, FBits, true); - Temp.GetWinDC()->Copy(0, 0, FWidth, FHeight, FDC, 0, 0); - Temp.SaveToStream(Output, false); + vint start=0; + vint end=colors.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + UniscribeColorRange key=colors.Keys()[middle]; + if(charIndex=key.end) + { + start=middle+1; + } + else + { + return colors.Values()[middle]; + } + } + return UniscribeColor(); } - } - void WinBitmap::SaveToFile(WString FileName) - { - stream::FileStream Output(FileName, stream::FileStream::WriteOnly); - SaveToStream(Output, false); - } + Ptr UniscribeFragment::Copy(vint start, vint length) + { + vint end=start+length; + auto fragment=Ptr(new UniscribeFragment(length==0?L"":text.Sub(start, length))); + fragment->fontStyle=fontStyle; + fragment->fontObject=fontObject; - WinDC* WinBitmap::GetWinDC() - { - return FDC; - } + if(length!=0) + { + fragment->colors.Clear(); + CutColors(start, length); + for(vint i=0;icolors.Add(UniscribeColorRange(key.start-start, key.end-start), value); + } + } + } + return fragment; + } - vint WinBitmap::GetWidth() - { - return FWidth; - } +/*********************************************************************** +UniscribeGlyphData +***********************************************************************/ - vint WinBitmap::GetHeight() - { - return FHeight; - } + UniscribeGlyphData::UniscribeGlyphData() + { + ClearUniscribeData(0, 0); + } - vint WinBitmap::GetLineBytes() - { - return GetLineBytes(FWidth, FBits); - } + void UniscribeGlyphData::ClearUniscribeData(vint glyphCount, vint length) + { + glyphs.Resize(glyphCount); + glyphVisattrs.Resize(glyphCount); + glyphAdvances.Resize(glyphCount); + glyphOffsets.Resize(glyphCount); + charCluster.Resize(length); + memset(&runAbc, 0, sizeof(runAbc)); + memset(&sa, 0, sizeof(sa)); + } + + bool UniscribeGlyphData::BuildUniscribeData(WinDC* dc, SCRIPT_ITEM* scriptItem, SCRIPT_CACHE& scriptCache, const wchar_t* runText, vint length, List& breakings, List& breakingAvailabilities) + { + vint glyphCount=glyphs.Count(); + bool resizeGlyphData=false; + if(glyphCount==0) + { + glyphCount=(vint)(1.5*length+16); + resizeGlyphData=true; + } + sa=scriptItem->a; + WinDC* dcParameter=0; + { + // generate shape information + if(resizeGlyphData) + { + glyphs.Resize(glyphCount); + glyphVisattrs.Resize(glyphCount); + charCluster.Resize(length); + } - BYTE** WinBitmap::GetScanLines() - { - return FScanLines; - } + while(true) + { + int availableGlyphCount=0; + HRESULT hr=ScriptShape( + (dcParameter?dcParameter->GetHandle():NULL), + &scriptCache, + runText, + (int)length, + (int)glyphCount, + &sa, + &glyphs[0], + &charCluster[0], + &glyphVisattrs[0], + &availableGlyphCount + ); + if(hr==0) + { + glyphCount=availableGlyphCount; + break; + } + else if(hr==E_PENDING) + { + dcParameter=dc; + } + else if(hr==E_OUTOFMEMORY) + { + if(resizeGlyphData) + { + glyphCount+=length; + } + else + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } + } + else if(hr==USP_E_SCRIPT_NOT_IN_FONT) + { + if(sa.eScript==SCRIPT_UNDEFINED) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } + else + { + sa.eScript=SCRIPT_UNDEFINED; + } + } + else + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } + } + if(resizeGlyphData) + { + glyphs.Resize(glyphCount); + glyphVisattrs.Resize(glyphCount); + } + } - HBITMAP WinBitmap::GetBitmap() - { - return FHandle; - } + { + SCRIPT_FONTPROPERTIES fp; + memset(&fp, 0, sizeof(fp)); + fp.cBytes=sizeof(fp); + HRESULT hr=ScriptGetFontProperties( + (dcParameter?dcParameter->GetHandle():NULL), + &scriptCache, + &fp + ); + WORD invalidGlyph=fp.wgDefault; + if(hr!=S_OK) + { + invalidGlyph=0; + } - WinBitmap::BitmapBits WinBitmap::GetBitmapBits() - { - return FBits; - } - - void WinBitmap::FillCompatibleHeader(BITMAPINFOHEADER* Header) - { - FillBitmapInfoHeader(FWidth, FHeight, FBits, Header); - } + // generate breaking information + breakings.Add(0); + vint charIndex=0; + bool lastGlyphAvailable=false; + while(charIndexa.fRTL) + { + glyphCount=-glyphCount; + glyphIndex-=glyphCount-1; + } - void WinBitmap::BuildAlphaChannel(bool autoPremultiply) - { - if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) - { - FAlphaChannelBuilt=true; - if(autoPremultiply) - { - for(vint i=0;iGetHandle():NULL), + &scriptCache, + &glyphs[0], + (int)glyphCount, + &glyphVisattrs[0], + &sa, + &glyphAdvances[0], + &glyphOffsets[0], + &runAbc + ); + if(hr==0) + { + break; + } + else if(hr==E_PENDING) + { + dcParameter=dc; + } + else + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } } } + + return true; + BUILD_UNISCRIBE_DATA_FAILED: + return false; } - } - void WinBitmap::GenerateAlpha(BYTE Alpha) - { - if(CanBuildAlphaChannel() && !FAlphaChannelBuilt) + void UniscribeGlyphData::BuildUniscribeData(WinDC* dc, SCRIPT_ITEM* scriptItem, SCRIPT_LOGATTR* charLogattrs, const wchar_t* runText, vint length) { - for(vint i=0;ia; + memset(&glyphs[0], 0, sizeof(glyphs[0])*glyphs.Count()); + memset(&glyphVisattrs[0], 0, sizeof(glyphVisattrs[0])*glyphVisattrs.Count()); + memset(&glyphAdvances[0], 0, sizeof(glyphAdvances[0])*glyphAdvances.Count()); + memset(&glyphOffsets[0], 0, sizeof(glyphOffsets[0])*glyphOffsets.Count()); + memset(&charCluster[0], 0, sizeof(charCluster[0])*charCluster.Count()); + + for(vint i=0;iMeasureBuffer(runText, glyphLength, -1); + glyphAdvances[lastGlyphIndex]=size.cx; + lastCharIndex=i; + lastGlyphIndex++; + } } } - } - } - -/********************************************************************************************************* -WinBrush -*********************************************************************************************************/ - - WinBrush::WinBrush() - { - FDIBMemory=0; - LOGBRUSH lb; - lb.lbColor=0; - lb.lbStyle=BS_NULL; - lb.lbHatch=0; - FHandle=CreateBrushIndirect(&lb); - } - - WinBrush::WinBrush(COLORREF Color) - { - FDIBMemory=0; - FHandle=CreateSolidBrush(Color); - } - WinBrush::WinBrush(vint Hatch, COLORREF Color) - { - FDIBMemory=0; - FHandle=CreateHatchBrush((int)Hatch, Color); - } - - WinBrush::WinBrush(WinBitmap::Ptr DIB) - { - WinBitmap Temp(DIB->GetWidth(), DIB->GetHeight(), WinBitmap::vbb24Bits, true); - Temp.GetWinDC()->Draw(0, 0, DIB); - vint HeaderSize=sizeof(BITMAPINFOHEADER); - FDIBMemory=new unsigned char[HeaderSize+Temp.GetHeight()*Temp.GetLineBytes()]; - Temp.FillCompatibleHeader((BITMAPINFOHEADER*)FDIBMemory); - memcpy(FDIBMemory+HeaderSize, Temp.GetScanLines()[0], Temp.GetHeight()*Temp.GetLineBytes()); + for(vint i=0;iGetWidth(), DIB->GetHeight(), WinBitmap::vbb24Bits, true); - Temp.GetWinDC()->Draw(0, 0, DIB); - vint HeaderSize=sizeof(BITMAPINFOHEADER); - FDIBMemory=new unsigned char[HeaderSize+Temp.GetHeight()*Temp.GetLineBytes()]; - Temp.FillCompatibleHeader((BITMAPINFOHEADER*)FDIBMemory); - memcpy(FDIBMemory+HeaderSize, Temp.GetScanLines()[0], Temp.GetHeight()*Temp.GetLineBytes()); - - LOGBRUSH Brush; - Brush.lbColor=RGB(0, 0, 0); - Brush.lbStyle=BS_DIBPATTERNPT; - Brush.lbHatch=(ULONG_PTR)FDIBMemory; - FHandle=ExtCreatePen((int)(PS_GEOMETRIC|Style|EndCap|Join), (int)Width, &Brush, NULL, NULL); - } - - WinPen::~WinPen() - { - DeleteObject(FHandle); - if(FDIBMemory) + UniscribeItem::~UniscribeItem() { - delete[] FDIBMemory; } - } - HPEN WinPen::GetHandle() - { - return FHandle; - } + void UniscribeItem::ClearUniscribeData() + { + charLogattrs.Resize(0); + } -/********************************************************************************************************* -WinFont -*********************************************************************************************************/ + bool UniscribeItem::BuildUniscribeData() + { + // generate break information + charLogattrs.Resize(length); - WinFont::WinFont(WString Name, vint Height, vint Width, vint Escapement, vint Orientation, vint Weight, bool Italic, bool Underline, bool StrikeOut, bool Antialise) - { - FFontInfo.lfHeight=(int)Height; - FFontInfo.lfWidth=(int)Width; - FFontInfo.lfEscapement=(int)Escapement; - FFontInfo.lfOrientation=(int)Orientation; - FFontInfo.lfWeight=(int)Weight; - FFontInfo.lfItalic=Italic?TRUE:FALSE; - FFontInfo.lfUnderline=Underline?TRUE:FALSE; - FFontInfo.lfStrikeOut=StrikeOut?TRUE:FALSE; - FFontInfo.lfCharSet=DEFAULT_CHARSET; - FFontInfo.lfOutPrecision=OUT_DEFAULT_PRECIS; - FFontInfo.lfClipPrecision=CLIP_DEFAULT_PRECIS; - FFontInfo.lfQuality=Antialise?CLEARTYPE_QUALITY:NONANTIALIASED_QUALITY; - FFontInfo.lfPitchAndFamily=DEFAULT_PITCH | FF_DONTCARE; - wcsncpy_s(FFontInfo.lfFaceName, sizeof(FFontInfo.lfFaceName)/sizeof(*FFontInfo.lfFaceName), Name.Buffer(), LF_FACESIZE-1); - FHandle=CreateFontIndirect(&FFontInfo); - } + HRESULT hr=ScriptBreak( + itemText, + (int)length, + &scriptItem.a, + &charLogattrs[0] + ); + if(hr!=0) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } - WinFont::WinFont(LOGFONT* FontInfo) - { - FFontInfo=*FontInfo; - FHandle=CreateFontIndirect(&FFontInfo); - } + return true; + BUILD_UNISCRIBE_DATA_FAILED: + ClearUniscribeData(); + return false; + } - WinFont::~WinFont() - { - DeleteObject(FHandle); - } + bool UniscribeItem::IsRightToLeft() + { + return scriptItem.a.fRTL; + } - HFONT WinFont::GetHandle() - { - return FHandle; - } +/*********************************************************************** +UniscribeRun +***********************************************************************/ - LOGFONT* WinFont::GetInfo() - { - return &FFontInfo; - } + UniscribeRun::UniscribeRun() + :documentFragment(0) + ,scriptItem(0) + ,startFromLine(0) + ,startFromFragment(0) + ,length(0) + ,runText(0) + { + } -/********************************************************************************************************* -IWinResourceService -*********************************************************************************************************/ + UniscribeRun::~UniscribeRun() + { + } - WinBrush::Ptr CreateDefaultBrush() - { - return new WinBrush(RGB(255, 255, 255)); - } +/*********************************************************************** +UniscribeTextRun +***********************************************************************/ - WinPen::Ptr CreateDefaultPen() - { - return new WinPen(PS_SOLID, 0, RGB(0, 0, 0)); - } + UniscribeTextRun::UniscribeTextRun() + :scriptCache(0) + ,advance(0) + ,needFontFallback(false) + { + } - WinFont::Ptr CreateDefaultFont() - { - NONCLIENTMETRICS NonClientMetrics; - NonClientMetrics.cbSize=sizeof(NONCLIENTMETRICS); - SystemParametersInfo(SPI_GETNONCLIENTMETRICS, NonClientMetrics.cbSize, &NonClientMetrics, 0); - if(!*NonClientMetrics.lfMessageFont.lfFaceName) + UniscribeTextRun::~UniscribeTextRun() { - NonClientMetrics.cbSize=sizeof(NONCLIENTMETRICS)-sizeof(NonClientMetrics.iPaddedBorderWidth); - SystemParametersInfo(SPI_GETNONCLIENTMETRICS, NonClientMetrics.cbSize, &NonClientMetrics, 0); + ClearUniscribeData(); } - return new WinFont(&NonClientMetrics.lfMessageFont); - } - class DefaultResourceService : public Object, public IWinResourceService - { - public: - static IWinResourceService* _DefaultResourceService; + void UniscribeTextRun::ClearUniscribeData() + { + if(scriptCache) + { + ScriptFreeCache(&scriptCache); + scriptCache=0; + } + advance=0; + needFontFallback=false; + wholeGlyph.ClearUniscribeData(0, 0); + } - WinPen::Ptr GetDefaultPen() + void UniscribeTextRun::SearchSingleGlyphCluster(vint charStart, vint& charLength, vint& cluster, vint& nextCluster) { - return CreateDefaultPen(); + cluster=wholeGlyph.charCluster[charStart]; + vint nextChar=charStart; + while(nextCharstartFromLine; + vint currentFromItem=startFromItem; + while(++currentFromItemlength) + { + if(scriptItem->charLogattrs[currentFromItem].fCharStop) + { + break; + } + } + charLength=currentFromItem-startFromItem; + SearchGlyphCluster(charStart, charLength, cluster, nextCluster); } - WinFont::Ptr GetDefaultFont() + void UniscribeTextRun::SearchGlyphCluster(vint charStart, vint charLength, vint& cluster, vint& nextCluster) { - return CreateDefaultFont(); + cluster=wholeGlyph.charCluster[charStart]; + if(charStart+charLength>length) + { + charLength=length-charStart; + } + if(scriptItem->IsRightToLeft()) + { + nextCluster + =charStart+charLength==length + ?-1 + :wholeGlyph.charCluster[charStart+charLength]; + } + else + { + nextCluster + =charStart+charLength==length + ?wholeGlyph.glyphs.Count() + :wholeGlyph.charCluster[charStart+charLength]; + } } - } _DRS; - IWinResourceService* DefaultResourceService::_DefaultResourceService=&_DRS; - - IWinResourceService* GetDefaultResourceService() - { - return DefaultResourceService::_DefaultResourceService; - } - void SetDefaultResourceService(IWinResourceService* Service) - { - DefaultResourceService::_DefaultResourceService=Service; - } + bool UniscribeTextRun::BuildUniscribeData(WinDC* dc, List& breakings) + { + ClearUniscribeData(); -/********************************************************************************************************* -WinDC -*********************************************************************************************************/ + dc->SetFont(documentFragment->fontObject); + List breakingAvailabilities; + if(!wholeGlyph.BuildUniscribeData(dc, &scriptItem->scriptItem, scriptCache, runText, length, breakings, breakingAvailabilities)) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } - void WinDC::Init() - { - FPen=GetDefaultResourceService()->GetDefaultPen(); - FOldPen=(HPEN)SelectObject(FHandle, FPen->GetHandle()); + if(breakings.Count()==1 && !breakingAvailabilities[0]) + { + SCRIPT_LOGATTR* charLogattrs=&scriptItem->charLogattrs[0]+startFromLine-scriptItem->startFromLine; + wholeGlyph.BuildUniscribeData(dc, &scriptItem->scriptItem, charLogattrs, runText, length); + needFontFallback=true; + } + advance=wholeGlyph.runAbc.abcA+wholeGlyph.runAbc.abcB+wholeGlyph.runAbc.abcC; - FBrush=GetDefaultResourceService()->GetDefaultBrush(); - FOldBrush=(HBRUSH)SelectObject(FHandle, FBrush->GetHandle()); + return true; + BUILD_UNISCRIBE_DATA_FAILED: + ClearUniscribeData(); + return false; + } - FFont=GetDefaultResourceService()->GetDefaultFont(); - FOldFont=(HFONT)SelectObject(FHandle, FFont->GetHandle()); + vint UniscribeTextRun::SumWidth(vint charStart, vint charLength) + { + vint cluster=0; + vint nextCluster=0; + SearchGlyphCluster(charStart, charLength, cluster, nextCluster); + vint width=0; + if(scriptItem->IsRightToLeft()) + { + for(vint i=cluster;i>nextCluster;i--) + { + width+=wholeGlyph.glyphAdvances[i]; + } + } + else + { + for(vint i=cluster;ifontStyle.size; + } - WinDC::WinDC() - { - FHandle=0; - FOldPen=0; - FOldBrush=0; - FOldFont=0; - } + vint UniscribeTextRun::SumTextHeight() + { + return SumHeight(); + } - WinDC::~WinDC() - { - SelectObject(FHandle, FOldFont); - SelectObject(FHandle, FOldBrush); - SelectObject(FHandle, FOldPen); - } + void UniscribeTextRun::SearchForLineBreak(vint tempStart, vint maxWidth, bool firstRun, vint& charLength, vint& charAdvances) + { + vint width=0; + charLength=0; + charAdvances=0; + for(vint i=tempStart;i<=length;) + { + if(i==length || scriptItem->charLogattrs[i+(startFromLine-scriptItem->startFromLine)].fSoftBreak==TRUE) + { + if(width<=maxWidth || (firstRun && charLength==0)) + { + charLength=i-tempStart; + charAdvances=width; + } + else + { + return; + } + } + if(i==length) break; - HDC WinDC::GetHandle() - { - return FHandle; - } + vint cluster=wholeGlyph.charCluster[i]; + vint clusterLength=1; + while(i+clusterLengthIsRightToLeft()) + { + vint nextCluster + =i+clusterLength==length + ?-1 + :wholeGlyph.charCluster[i+clusterLength]; + for(vint j=cluster;j>nextCluster;j--) + { + width+=wholeGlyph.glyphAdvances[j]; + } + } + else + { + vint nextCluster + =i+clusterLength==length + ?wholeGlyph.glyphs.Count() + :wholeGlyph.charCluster[i+clusterLength]; + for(vint j=cluster;jGetWinDC(); + RunFragmentBounds& fragment=fragmentBounds[fragmentBoundsIndex]; + if(fragment.length==0) return; - WinFont::Ptr WinDC::GetFont() - { - return FFont; - } + vint startFromFragmentBounds=0; + vint accumulatedWidth=0; + while(startFromFragmentBoundsGetHandle()); - FPen=Pen; - } + vint clusterStart=0; + vint clusterCount=0; + if(scriptItem->IsRightToLeft()) + { + clusterStart=nextCluster+1; + clusterCount=cluster-nextCluster; + } + else + { + clusterStart=cluster; + clusterCount=nextCluster-cluster; + } - void WinDC::SetBrush(WinBrush::Ptr Brush) - { - SelectObject(FHandle, Brush->GetHandle()); - FBrush=Brush; - } + vint clusterWidth=0; + for(vint i=0;iGetHandle()); - FFont=Font; - } + vint x=0; + if(scriptItem->IsRightToLeft()) + { + x=fragment.bounds.x2-accumulatedWidth-clusterWidth; + } + else + { + x=fragment.bounds.x1+accumulatedWidth; + } + RECT rect; + rect.left=(int)(x+offsetX); + rect.top=(int)(fragment.bounds.Top()+offsetY); + rect.right=(int)(rect.left+clusterWidth); + rect.bottom=(int)(rect.top+fragment.bounds.Height()*1.5); - COLORREF WinDC::GetBackColor() - { - return GetBkColor(FHandle); - } + UniscribeColor color=documentFragment->GetCharColor(charIndex+startFromFragment); + if(renderBackground) + { + Color backgroundColor=color.backgroundColor; - void WinDC::SetBackColor(COLORREF Color) - { - SetBkColor(FHandle, Color); - } + if(backgroundColor.a>0) + { + auto brush=Ptr(new WinBrush(RGB(backgroundColor.r, backgroundColor.g, backgroundColor.b))); + dc->SetBrush(brush); + dc->FillRect(rect); + } + } + else + { + Color fontColor=color.fontColor; + dc->SetFont(documentFragment->fontObject); + dc->SetTextColor(RGB(fontColor.r, fontColor.g, fontColor.b)); - COLORREF WinDC::GetTextColor() - { - return ::GetTextColor(FHandle); - } + if(needFontFallback) + { + dc->DrawBuffer(rect.left, rect.top, runText+charIndex, charLength); + } + else + { + HRESULT hr=ScriptTextOut( + dc->GetHandle(), + &scriptCache, + rect.left, + rect.top, + 0, + &rect, + &wholeGlyph.sa, + NULL, + 0, + &wholeGlyph.glyphs[clusterStart], + (int)(clusterCount), + &wholeGlyph.glyphAdvances[clusterStart], + NULL, + &wholeGlyph.glyphOffsets[clusterStart] + ); + } + } - void WinDC::SetTextColor(COLORREF Color) - { - ::SetTextColor(FHandle, Color); - } + startFromFragmentBounds+=charLength; + accumulatedWidth+=clusterWidth; + } + } - bool WinDC::GetBackTransparent() - { - return GetBkMode(FHandle)==TRANSPARENT; - } +/*********************************************************************** +UniscribeEmbeddedObjectRun +***********************************************************************/ - void WinDC::SetBackTransparent(bool Transparent) - { - SetBkMode(FHandle, Transparent?TRANSPARENT:OPAQUE); - } + UniscribeEmbeddedObjectRun::UniscribeEmbeddedObjectRun() + { + } - POINT WinDC::GetBrushOrigin() - { - POINT Point; - GetBrushOrgEx(FHandle, &Point); - return Point; - } + UniscribeEmbeddedObjectRun::~UniscribeEmbeddedObjectRun() + { + } - void WinDC::SetBrushOrigin(POINT Point) - { - SetBrushOrgEx(FHandle, Point.x, Point.y, NULL); - } + bool UniscribeEmbeddedObjectRun::BuildUniscribeData(WinDC* dc, List& breakings) + { + breakings.Add(0); + return true; + } - int WinDC::SetRasterOperation(int rop2) - { - return SetROP2(FHandle, rop2); - } + vint UniscribeEmbeddedObjectRun::SumWidth(vint charStart, vint charLength) + { + return properties.size.x; + } - /*------------------------------------------------------------------------------*/ + vint UniscribeEmbeddedObjectRun::SumHeight() + { + return properties.size.y; + } - void WinDC::DrawBuffer(vint X, vint Y, const wchar_t* Text, vint CharCount) - { - TextOut(FHandle, (int)X, (int)Y, Text, (int)CharCount); - } + vint UniscribeEmbeddedObjectRun::SumTextHeight() + { + return 0; + } - void WinDC::DrawBuffer(vint X, vint Y, const wchar_t* Text, vint CharCount, vint TabWidth, vint TabOriginX) - { - int realTabWidth=(int)TabWidth; - TabbedTextOut(FHandle, (int)X, (int)Y, Text, (int)CharCount, 1, &realTabWidth, (int)TabOriginX); - } + void UniscribeEmbeddedObjectRun::SearchForLineBreak(vint tempStart, vint maxWidth, bool firstRun, vint& charLength, vint& charAdvances) + { + if (firstRun || properties.size.x <= maxWidth) + { + charLength = length - tempStart; + charAdvances = properties.size.x; + } + else + { + charLength = 0; + charAdvances = 0; + } + } - void WinDC::DrawBuffer(RECT Rect, const wchar_t* Text, vint CharCount, UINT Format) - { - DrawText(FHandle, Text, (int)CharCount, &Rect, Format); - } + void UniscribeEmbeddedObjectRun::Render(IRendererCallback* callback, vint fragmentBoundsIndex, vint offsetX, vint offsetY, bool renderBackground) + { + auto dc = callback->GetWinDC(); + RunFragmentBounds& fragment=fragmentBounds[fragmentBoundsIndex]; + if(renderBackground) + { + RECT rect; + rect.left=(int)(fragment.bounds.Left()+offsetX)-2; + rect.top=(int)(fragment.bounds.Top()+offsetY)-2; + rect.right=(int)(fragment.bounds.Right()+offsetX)+2; + rect.bottom=(int)(fragment.bounds.Bottom()+offsetY)+2; - void WinDC::DrawString(vint X, vint Y, WString Text) - { - DrawBuffer(X, Y, Text.Buffer(), Text.Length()); - } + Color backgroundColor=documentFragment->colors.Values()[0].backgroundColor; - void WinDC::DrawString(vint X, vint Y, WString Text, vint TabWidth, vint TabOriginX) - { - DrawBuffer(X, Y, Text.Buffer(), Text.Length(), TabWidth, TabOriginX); - } + if(backgroundColor.a>0) + { + auto brush=Ptr(new WinBrush(RGB(backgroundColor.r, backgroundColor.g, backgroundColor.b))); + dc->SetBrush(brush); + dc->FillRect(rect); + } + } + else + { + if (properties.backgroundImage) + { + Rect bounds=fragment.bounds; + bounds.x1+=offsetX; + bounds.x2+=offsetX; + bounds.y1+=offsetY; + bounds.y2+=offsetY; + IGuiGraphicsRenderer* renderer=properties.backgroundImage->GetRenderer(); + if(renderer) + { + renderer->Render(bounds); + } + } - void WinDC::DrawString(RECT Rect, WString Text, UINT Format) - { - DrawBuffer(Rect, Text.Buffer(), Text.Length(), Format); - } + if (properties.callbackId != -1) + { + if (auto paragraphCallback = callback->GetParagraphCallback()) + { + auto offset = callback->GetParagraphOffset(); + vint x = fragment.bounds.x1 + offsetX - offset.x; + vint y = fragment.bounds.y1 + offsetY - offset.y; + auto size = paragraphCallback->OnRenderInlineObject(properties.callbackId, Rect(Point(x, y), fragment.bounds.GetSize())); + properties.size = size; + } + } + } + } - SIZE WinDC::MeasureString(WString Text, vint TabSize) - { - return MeasureBuffer(Text.Buffer(), Text.Length(), TabSize); - } +/*********************************************************************** +UniscribeVirtualLine +***********************************************************************/ - SIZE WinDC::MeasureBuffer(const wchar_t* Text, vint CharCount, vint TabSize) - { - SIZE Size; - if(TabSize==-1) - { - GetTextExtentPoint32(FHandle, Text, (int)CharCount, &Size); - } - else + UniscribeVirtualLine::UniscribeVirtualLine() + :startFromLine(0) + ,length(0) + ,runText(0) + ,firstRunIndex(-1) + ,firstRunBoundsIndex(-1) + ,lastRunIndex(-1) + ,lastRunBoundsIndex(-1) { - int realTabSize=(int)TabSize; - DWORD Result=GetTabbedTextExtent(FHandle, Text, (int)CharCount, 1, &realTabSize); - Size.cx=LOWORD(Result); - Size.cy=HIWORD(Result); } - return Size; - } - SIZE WinDC::MeasureBuffer(const wchar_t* Text, vint TabSize) - { - return MeasureBuffer(Text, wcslen(Text), TabSize); - } +/*********************************************************************** +UniscribeLine +***********************************************************************/ - SIZE WinDC::MeasureWrapLineString(WString Text, vint MaxWidth) - { - return MeasureWrapLineBuffer(Text.Buffer(), Text.Length(), MaxWidth); - } + UniscribeLine::UniscribeLine() + :startFromParagraph(0) + { + } - SIZE WinDC::MeasureWrapLineBuffer(const wchar_t* Text, vint CharCount, vint MaxWidth) - { - SIZE size = {0}; - vint lineCount=0; - const wchar_t* reading=Text; - INT* dx=new INT[CharCount]; - while(*reading) + void UniscribeLine::ClearUniscribeData() { - INT fit=0; - GetTextExtentExPoint(FHandle, reading, (int)(CharCount-(reading-Text)), (int)MaxWidth, &fit, dx, &size); - reading+=fit; - lineCount++; + scriptItems.Clear(); + scriptRuns.Clear(); + virtualLines.Clear(); } - delete dx; - size.cx=0; - size.cy*=(int)lineCount; - return size; - } - SIZE WinDC::MeasureWrapLineBuffer(const wchar_t* Text, vint MaxWidth) - { - return MeasureWrapLineBuffer(Text, wcslen(Text), MaxWidth); - } + bool UniscribeLine::BuildUniscribeData(WinDC* dc) + { + lineText=L""; + ClearUniscribeData(); + vint current=0; + List fragmentStarts; + for (auto fragment : documentFragments) + { + fragmentStarts.Add(current); + lineText+=fragment->text; + current+=fragment->text.Length(); + } - void WinDC::FillRegion(WinRegion::Ptr Region) - { - FillRgn(FHandle, Region->GetHandle(), FBrush->GetHandle()); - } + if(lineText!=L"") + { + { + SCRIPT_DIGITSUBSTITUTE sds={0}; + ScriptRecordDigitSubstitution(LOCALE_USER_DEFAULT, &sds); + SCRIPT_CONTROL sc={0}; + SCRIPT_STATE ss={0}; + ScriptApplyDigitSubstitution(&sds, &sc, &ss); - void WinDC::FrameRegion(WinRegion::Ptr Region, vint BlockWidth, vint BlockHeight) - { - FrameRgn(FHandle, Region->GetHandle(), FBrush->GetHandle(), (int)BlockWidth, (int)BlockHeight); - } + // itemize a line + Array items(lineText.Length()+2); + int scriptItemCount=0; + HRESULT hr=ScriptItemize( + lineText.Buffer(), + (int)lineText.Length(), + (int)(items.Count()-1), + &sc, + &ss, + &items[0], + &scriptItemCount + ); + if(hr!=0) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } - void WinDC::MoveTo(vint X, vint Y) - { - ::MoveToEx(FHandle, (int)X, (int)Y, NULL); - } + items.Resize(scriptItemCount+1); + for(vint i=0;istartFromLine=item.iCharPos; + scriptItem->length=items[i+1].iCharPos-item.iCharPos; + scriptItem->itemText=lineText.Buffer()+item.iCharPos; + scriptItem->scriptItem=item; - void WinDC::LineTo(vint X, vint Y) - { - ::LineTo(FHandle, (int)X, (int)Y); - } + if(!scriptItem->BuildUniscribeData()) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } + scriptItems.Add(scriptItem); + } + } + { + // use item and document fragment information to produce runs + // one item is constructed by one or more runs + // characters in each run contains the same style + vint fragmentIndex=0; + vint fragmentStart=0; + for(vint i=0;i scriptItem=scriptItems[i]; + vint currentStart=scriptItem->startFromLine; - void WinDC::Rectangle(vint Left, vint Top, vint Right, vint Bottom) - { - ::Rectangle(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom); - } + while(currentStartstartFromLine+scriptItem->length) + { + UniscribeFragment* fragment=0; + vint itemRemainLength=scriptItem->length-(currentStart-scriptItem->startFromLine); + vint fragmentRemainLength=0; + while(true) + { + fragment=documentFragments[fragmentIndex].Obj(); + fragmentRemainLength=fragment->text.Length()-(currentStart-fragmentStart); + if(fragmentRemainLength<=0) + { + fragmentStart+=fragment->text.Length(); + fragmentIndex++; + } + else + { + break; + } + } + vint shortLength=itemRemainLengthtext.Length(); + if(elementFragment->inlineObjectProperties) + { + if(elementCurrent<=currentStart && currentStart+shortLength<=elementCurrent+elementLength) + { + if(elementCurrent==currentStart) + { + auto run=Ptr(new UniscribeEmbeddedObjectRun); + run->documentFragment=fragment; + run->scriptItem=scriptItem.Obj(); + run->startFromLine=currentStart; + run->startFromFragment=currentStart-fragmentStarts[fragmentIndex]; + run->length=elementLength; + run->runText=lineText.Buffer()+currentStart; + run->properties=elementFragment->inlineObjectProperties.Value(); + scriptRuns.Add(run); + } + skip=true; + break; + } + } + elementCurrent+=elementLength; + } + } + if(!skip) + { + auto run = Ptr(new UniscribeTextRun); + run->documentFragment=fragment; + run->scriptItem=scriptItem.Obj(); + run->startFromLine=currentStart; + run->startFromFragment=currentStart-fragmentStarts[fragmentIndex]; + run->length=shortLength; + run->runText=lineText.Buffer()+currentStart; + scriptRuns.Add(run); + } + currentStart+=shortLength; + } + } - void WinDC::Rectangle(RECT Rect) - { - ::Rectangle(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); - } + // for each run, generate shape information + vint runIndex=0; + while(runIndex run=scriptRuns[runIndex]; + List breakings; + if(!run->BuildUniscribeData(dc, breakings)) + { + goto BUILD_UNISCRIBE_DATA_FAILED; + } + else if(breakings.Count()>1) + { + if(Ptr textRun=run.Cast()) + { + scriptRuns.RemoveAt(runIndex); + for(vint i=0;ilength-start:breakings[i+1]-start; - void WinDC::FocusRectangle(vint Left, vint Top, vint Right, vint Bottom) - { - RECT Rect; - Rect.left=(int)Left; - Rect.top=(int)Top; - Rect.right=(int)Right; - Rect.bottom=(int)Bottom; - ::DrawFocusRect(FHandle, &Rect); - } + auto newRun = Ptr(new UniscribeTextRun); + newRun->documentFragment=run->documentFragment; + newRun->scriptItem=run->scriptItem; + newRun->startFromLine=start+run->startFromLine; + newRun->startFromFragment=start+run->startFromFragment; + newRun->length=length; + newRun->runText=run->runText+newRun->startFromLine-run->startFromLine; + scriptRuns.Insert(runIndex+i, newRun); + } + continue; + } + } + runIndex++; + } + } + } + return true; + BUILD_UNISCRIBE_DATA_FAILED: + ClearUniscribeData(); + return false; + } - void WinDC::FocusRectangle(RECT Rect) - { - ::DrawFocusRect(FHandle, &Rect); - } + void UniscribeLine::Layout(vint availableWidth, Alignment alignment, vint top, vint& totalHeight) + { + vint cx=0; + vint cy=top; + virtualLines.Clear(); + if(scriptRuns.Count()==0) + { + // if this line doesn't contains any run, skip and render a blank line + vint height=(vint)(documentFragments[0]->fontStyle.size*1.5); + bounds=Rect(Point(cx, cy), Size(0, height)); + cy+=height; + } + else + { + for (auto run : scriptRuns) + { + run->fragmentBounds.Clear(); + } - void WinDC::FillRect(vint Left, vint Top, vint Right, vint Bottom) - { - RECT Rect; - Rect.left=(int)Left; - Rect.top=(int)Top; - Rect.right=(int)Right; - Rect.bottom=(int)Bottom; - ::FillRect(FHandle, &Rect, FBrush->GetHandle()); - } + // render this line into lines with auto line wrapping + vint startRun=0; + vint startRunOffset=0; + vint lastRun=0; + vint lastRunOffset=0; + vint currentWidth=0; + + while(startRunSearchForLineBreak(lastRunOffset, availableWidth-currentWidth, firstRun, charLength, charAdvances); + firstRun=false; + + if(charLength==run->length-lastRunOffset) + { + lastRun=i+1; + lastRunOffset=0; + currentWidth+=charAdvances; + } + else + { + lastRun=i; + lastRunOffset=lastRunOffset+charLength; + break; + } + } - void WinDC::FillRect(RECT Rect) - { - ::FillRect(FHandle, &Rect, FBrush->GetHandle()); - } + // if the range is empty, than this should be the end of line, ignore it + if(startRunSumHeight(); + if(maxHeightSumTextHeight(); + if(maxTextHeight levels(availableLastRun-startRun+1); + Array runVisualToLogical(levels.Count()); + Array runLogicalToVisual(levels.Count()); + for(vint i=startRun;i<=availableLastRun;i++) + { + levels[i-startRun]=scriptRuns[i]->scriptItem->scriptItem.a.s.uBidiLevel; + } + ScriptLayout((int)levels.Count(), &levels[0], &runVisualToLogical[0], &runLogicalToVisual[0]); - void WinDC::Ellipse(RECT Rect) - { - ::Ellipse(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); - } + // render all runs inside this range + vint startRunFragmentCount=-1; + for(vint i=startRun;i<=availableLastRun;i++) + { + vint runIndex=runVisualToLogical[i-startRun]+startRun; + UniscribeRun* run=scriptRuns[runIndex].Obj(); + vint start=runIndex==startRun?startRunOffset:0; + vint end=runIndex==lastRun?lastRunOffset:run->length; + vint length=end-start; - void WinDC::RoundRect(vint Left, vint Top, vint Right, vint Bottom, vint EllipseWidth, vint EllipseHeight) - { - ::RoundRect(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)EllipseWidth, (int)EllipseHeight); - } + if(runIndex==startRun) + { + startRunFragmentCount=run->fragmentBounds.Count(); + } - void WinDC::RoundRect(RECT Rect, vint EllipseWidth, vint EllipseHeight) - { - ::RoundRect(FHandle, (int)Rect.left, (int)Rect.top, (int)Rect.right, (int)Rect.bottom, (int)EllipseWidth, (int)EllipseHeight); - } + UniscribeRun::RunFragmentBounds fragmentBounds; + fragmentBounds.startFromRun=start; + fragmentBounds.length=length; + fragmentBounds.bounds=Rect( + Point(cx, cy+maxHeight-run->SumHeight()), + Size(run->SumWidth(start, length), run->SumHeight()) + ); + run->fragmentBounds.Add(fragmentBounds); - void WinDC::PolyLine(const POINT* Points, vint Count) - { - ::Polyline(FHandle, Points, (int)Count); - } + cx+=run->SumWidth(start, length); + } - void WinDC::PolyLineTo(const POINT* Points, vint Count) - { - ::PolylineTo(FHandle, Points, (int)Count); - } + // adjust alignment + vint cxOffset=0; + switch(alignment) + { + case Alignment::Center: + cxOffset=(availableWidth-cx)/2; + break; + case Alignment::Right: + cxOffset=availableWidth-cx; + break; + } - void WinDC::PolyGon(const POINT* Points, vint Count) - { - ::Polygon(FHandle, Points, (int)Count); - } + // shift all bounds using alignment + if(cxOffset!=0) + { + for(vint i=startRun;i<=availableLastRun;i++) + { + UniscribeRun* run=scriptRuns[i].Obj(); + for(vint j=(i==startRun?startRunFragmentCount:0);jfragmentBounds.Count();j++) + { + UniscribeRun::RunFragmentBounds& fragmentBounds=run->fragmentBounds[j]; + fragmentBounds.bounds.x1+=cxOffset; + fragmentBounds.bounds.x2+=cxOffset; + } + } + } - void WinDC::PolyBezier(const POINT* Points, vint Count) - { - ::PolyBezier(FHandle, Points, (int)Count); - } + // create a virtual line + { + auto virtualLine = Ptr(new UniscribeVirtualLine); + virtualLine->firstRunIndex=startRun; + virtualLine->firstRunBoundsIndex=startRunFragmentCount; + virtualLine->lastRunIndex=availableLastRun; + virtualLine->lastRunBoundsIndex=scriptRuns[availableLastRun]->fragmentBounds.Count()-1; - void WinDC::PolyBezierTo(const POINT* Points, vint Count) - { - ::PolyBezierTo(FHandle, Points, (int)Count); - } + UniscribeRun* firstRun=scriptRuns[virtualLine->firstRunIndex].Obj(); + UniscribeRun* lastRun=scriptRuns[virtualLine->lastRunIndex].Obj(); + UniscribeRun::RunFragmentBounds& firstBounds=firstRun->fragmentBounds[virtualLine->firstRunBoundsIndex]; + UniscribeRun::RunFragmentBounds& lastBounds=lastRun->fragmentBounds[virtualLine->lastRunBoundsIndex]; + + virtualLine->startFromLine=firstRun->startFromLine+firstBounds.startFromRun; + virtualLine->length=lastRun->startFromLine+lastBounds.startFromRun+lastBounds.length-virtualLine->startFromLine; + virtualLine->runText=lineText.Buffer()+virtualLine->startFromLine; - void WinDC::PolyDraw(const POINT* Points, const BYTE* Actions, vint PointCount) - { - ::PolyDraw(FHandle, Points, Actions, (int)PointCount); - } + bool updateBounds=false; + for(vint i=startRun;i<=availableLastRun;i++) + { + UniscribeRun* run=scriptRuns[i].Obj(); + for(vint j=(i==startRun?startRunFragmentCount:0);jfragmentBounds.Count();j++) + { + UniscribeRun::RunFragmentBounds& fragmentBounds=run->fragmentBounds[j]; + if(updateBounds) + { + if(virtualLine->bounds.x1>fragmentBounds.bounds.x1) virtualLine->bounds.x1=fragmentBounds.bounds.x1; + if(virtualLine->bounds.x2bounds.x2=fragmentBounds.bounds.x2; + if(virtualLine->bounds.y1>fragmentBounds.bounds.y1) virtualLine->bounds.y1=fragmentBounds.bounds.y1; + if(virtualLine->bounds.y2bounds.y2=fragmentBounds.bounds.y2; + } + else + { + virtualLine->bounds=fragmentBounds.bounds; + updateBounds=true; + } + } + } + virtualLines.Add(virtualLine); + } - void WinDC::Arc(RECT Bound, POINT Start, POINT End) - { - ::Arc(FHandle, Bound.left, Bound.top, Bound.right, Bound.bottom, Start.x, Start.y, End.x, End.y); - } + cx=0; + cy+=(vint)(maxHeight + maxTextHeight*0.5); + } - void WinDC::Arc(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) - { - ::Arc(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); - } + startRun=lastRun; + startRunOffset=lastRunOffset; + } - void WinDC::ArcTo(RECT Bound, POINT Start, POINT End) - { - ::ArcTo(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); - } + // calculate line bounds + vint minX=0; + vint minY=top; + vint maxX=0; + vint maxY=top; + for (auto run : scriptRuns) + { + for (auto fragmentBounds : run->fragmentBounds) + { + Rect bounds=fragmentBounds.bounds; + if(minX>bounds.Left()) minX=bounds.Left(); + if(minY>bounds.Top()) minX=bounds.Top(); + if(maxXfragmentBounds.Count();i++) + { + run->Render(callback, i, offsetX, offsetY, renderBackground); + } + } + } - void WinDC::AngleArc(vint X, vint Y, vint Radius, float StartAngle, float SweepAngle) - { - ::AngleArc(FHandle, (int)X, (int)Y, (int)Radius, StartAngle, SweepAngle); - } +/*********************************************************************** +UniscribeParagraph +***********************************************************************/ - void WinDC::AngleArc(vint X, vint Y, vint Radius, double StartAngle, double SweepAngle) - { - ::AngleArc(FHandle, (int)X, (int)Y, (int)Radius, (float)StartAngle, (float)SweepAngle); - } + UniscribeParagraph::UniscribeParagraph() + :lastAvailableWidth(-1) + ,paragraphAlignment(Alignment::Left) + ,built(false) + { + } - void WinDC::Chord(RECT Bound, POINT Start, POINT End) - { - ::Chord(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); - } + UniscribeParagraph::~UniscribeParagraph() + { + ClearUniscribeData(); + } - void WinDC::Chord(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) - { - ::Chord(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); - } +/*********************************************************************** +UniscribeParagraph (Initialization) +***********************************************************************/ - void WinDC::Pie(RECT Bound, POINT Start, POINT End) - { - ::Pie(FHandle, (int)Bound.left, (int)Bound.top, (int)Bound.right, (int)Bound.bottom, (int)Start.x, (int)Start.y, (int)End.x, (int)End.y); - } + void UniscribeParagraph::ClearUniscribeData() + { + for (auto fragment : documentFragments) + { + GetWindowsGDIResourceManager()->DestroyGdiFont(fragment->fontStyle); + fragment->fontObject=0; + } + lines.Clear(); + lastAvailableWidth=-1; + } - void WinDC::Pie(vint Left, vint Top, vint Right, vint Bottom, vint StartX, vint StartY, vint EndX, vint EndY) - { - ::Pie(FHandle, (int)Left, (int)Top, (int)Right, (int)Bottom, (int)StartX, (int)StartY, (int)EndX, (int)EndY); - } + bool UniscribeParagraph::BuildUniscribeData(WinDC* dc) + { + if(built) return false; - void WinDC::GradientRectH(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_RECT* Rectangles, vint RectangleCount) - { - GradientFill(FHandle, Vertices, (int)VerticesCount, Rectangles, (int)RectangleCount, GRADIENT_FILL_RECT_H); - } + built=true; + ClearUniscribeData(); + Dictionary> fonts; + for (auto fragment : documentFragments) + { + if(!fragment->fontObject) + { + WString fragmentFingerPrint=fragment->GetFingerprint(); + vint index=fonts.Keys().IndexOf(fragmentFingerPrint); + if(index==-1) + { + fragment->fontObject=GetWindowsGDIResourceManager()->CreateGdiFont(fragment->fontStyle); + fonts.Add(fragmentFingerPrint, fragment->fontObject); + } + else + { + fragment->fontObject=fonts.Values().Get(index); + } + } + } + { + Regex regexLine(L"\r\n"); + Ptr line; + for (auto fragment : documentFragments) + { + if(fragment->inlineObjectProperties) + { + if(!line) + { + line=Ptr(new UniscribeLine); + lines.Add(line); + } + line->documentFragments.Add(fragment); + } + else + { + RegexMatch::List textLines; + regexLine.Split(fragment->text, true, textLines); - void WinDC::GradientRectV(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_RECT* Rectangles, vint RectangleCount) - { - GradientFill(FHandle, Vertices, (int)VerticesCount, Rectangles, (int)RectangleCount, GRADIENT_FILL_RECT_V); - } + for(vint i=0;iResult(); + WString text=rs.Value(); + if(i>0) + { + line=0; + } + if(!line) + { + line=Ptr(new UniscribeLine); + lines.Add(line); + } - void WinDC::GradientTriangle(TRIVERTEX* Vertices, vint VerticesCount, GRADIENT_TRIANGLE* Triangles, vint TriangleCount) - { - GradientFill(FHandle, Vertices, (int)VerticesCount, Triangles, (int)TriangleCount, GRADIENT_FILL_TRIANGLE); - } + if(textLines.Count()==1) + { + line->documentFragments.Add(fragment); + } + else + { + Ptr runFragment=fragment->Copy(rs.Start(), rs.Length()); + line->documentFragments.Add(runFragment); + } + } + } + } + } - /*------------------------------------------------------------------------------*/ + for (auto line : lines) + { + line->BuildUniscribeData(dc); + } - void WinDC::BeginPath() - { - ::BeginPath(FHandle); - } + vint lineStart=0; + for (auto line : lines) + { + line->startFromParagraph=lineStart; + lineStart+=line->lineText.Length()+2; + } - void WinDC::EndPath() - { - ::EndPath(FHandle); - } + return true; + } - void WinDC::ClosePath() - { - ::CloseFigure(FHandle); - } + void UniscribeParagraph::Layout(vint availableWidth, Alignment alignment) + { + if(lastAvailableWidth==availableWidth && paragraphAlignment==alignment) + { + return; + } + lastAvailableWidth=availableWidth; + paragraphAlignment=alignment; - void WinDC::WidenPath() - { - ::WidenPath(FHandle); - } + vint cy=0; + for (auto line : lines) + { + line->Layout(availableWidth, alignment, cy, cy); + } - void WinDC::DiscardPath() - { - ::AbortPath(FHandle); - } + // calculate paragraph bounds + vint minX=0; + vint minY=0; + vint maxX=0; + vint maxY=0; + for (auto line : lines) + { + Rect bounds=line->bounds; + if(minX>bounds.Left()) minX=bounds.Left(); + if(minY>bounds.Top()) minX=bounds.Top(); + if(maxXdocumentFragments) + { + vint size=fragment->fontStyle.size/3; + if(size>offsetY) + { + offsetY=size; + } + } + } + bounds=Rect(minX, minY, maxX, maxY+offsetY); + } - void WinDC::FillPath() - { - ::FillPath(FHandle); - } + void UniscribeParagraph::Render(UniscribeRun::IRendererCallback* callback, bool renderBackground) + { + auto offset = callback->GetParagraphOffset(); + for (auto line : lines) + { + line->Render(callback, offset.x, offset.y, renderBackground); + } + } - void WinDC::DrawAndFillPath() - { - ::StrokeAndFillPath(FHandle); - } +/*********************************************************************** +UniscribeParagraph (Formatting Helper) +***********************************************************************/ - WinRegion::Ptr WinDC::RegionFromPath() - { - return new WinRegion(::PathToRegion(FHandle)); - } - - /*------------------------------------------------------------------------------*/ + void UniscribeParagraph::SearchFragment(vint start, vint length, vint& fs, vint& ss, vint& fe, vint& se) + { + fs=-1; + ss=-1; + fe=-1; + se=-1; + vint current=0; + for(vint i=0;itext.Length(); + if(current<=start && start fragment=documentFragments[fs]; + if(fragment->inlineObjectProperties) + { + if(ss==0 && se==fragment->text.Length()) + { + f1=f2=fs; + return true; + } + else + { + return false; + } + } + } + for(vint i=fs;i<=fe;i++) + { + if(documentFragments[i]->inlineObjectProperties) + { + return false; + } + } + if(fs==fe) + { + Ptr fragment=documentFragments[fs]; + vint length=fragment->text.Length(); + if(ss==0) + { + if(se==length) + { + f1=f2=fs; + } + else + { + f1=f2=fs; + Ptr leftFragment=fragment->Copy(0, se); + Ptr rightFragment=fragment->Copy(se, length-se); + documentFragments.RemoveAt(fs); + documentFragments.Insert(fs, leftFragment); + documentFragments.Insert(fs+1, rightFragment); + } + } + else + { + if(se==length) + { + f1=fs+1; + f2=fs+1; + Ptr leftFragment=fragment->Copy(0, ss); + Ptr rightFragment=fragment->Copy(ss, length-ss); + documentFragments.RemoveAt(fs); + documentFragments.Insert(fs, leftFragment); + documentFragments.Insert(fs+1, rightFragment); + } + else + { + f1=fs+1; + f2=fs+1; + Ptr leftFragment=fragment->Copy(0, ss); + Ptr middleFragment=fragment->Copy(ss, se-ss); + Ptr rightFragment=fragment->Copy(se, length-se); + documentFragments.RemoveAt(fs); + documentFragments.Insert(fs, leftFragment); + documentFragments.Insert(fs+1, middleFragment); + documentFragments.Insert(fs+2, rightFragment); + } + } + } + else + { + Ptr fragmentStart=documentFragments[fs]; + Ptr fragmentEnd=documentFragments[fe]; + if(ss==0) + { + f1=fs; + } + else + { + f1=fs+1; + fe++; + vint length=fragmentStart->text.Length(); + Ptr leftFragment=fragmentStart->Copy(0, ss); + Ptr rightFragment=fragmentStart->Copy(ss, length-ss); + documentFragments.RemoveAt(fs); + documentFragments.Insert(fs, leftFragment); + documentFragments.Insert(fs+1, rightFragment); + } + if(se==fragmentEnd->text.Length()) + { + f2=fe; + } + else + { + f2=fe; + fe++; + vint length=fragmentEnd->text.Length(); + Ptr leftFragment=fragmentStart->Copy(0, se); + Ptr rightFragment=fragmentEnd->Copy(se, length-se); + documentFragments.RemoveAt(fe); + documentFragments.Insert(fe, leftFragment); + documentFragments.Insert(fe+1, rightFragment); + } + } + return true; + } - bool WinDC::RectInClip(RECT Rect) - { - return RectVisible(FHandle, &Rect)==TRUE; - } + void UniscribeParagraph::CutFragmentColors(vint fs, vint ss, vint fe, vint se, Color UniscribeColor::* colorField, Color color) + { + for(vint f=fs;f<=fe;f++) + { + Ptr fragment=documentFragments[f]; + vint start=f==fs?ss:0; + vint end=f==fe?se:fragment->text.Length(); - void WinDC::ClipPath(vint CombineMode) - { - SelectClipPath(FHandle, (int)CombineMode); - } + fragment->CutColors(start, end-start); + fragment->UpdateOverlappedColors(start, end-start, colorField, color); + fragment->DefragmentColors(); + } + } - void WinDC::ClipRegion(WinRegion::Ptr Region) - { - SelectClipRgn(FHandle, Region->GetHandle()); - } +/*********************************************************************** +UniscribeParagraph (Formatting) +***********************************************************************/ - void WinDC::RemoveClip() - { - SelectClipRgn(FHandle, NULL); - } + bool UniscribeParagraph::SetFont(vint start, vint length, const WString& value) + { + vint fs, ss, fe, se, f1, f2; + SearchFragment(start, length, fs, ss, fe, se); + if(CutFragment(fs, ss, fe, se, f1, f2)) + { + for(vint i=f1;i<=f2;i++) + { + documentFragments[i]->fontStyle.fontFamily=value; + } + built=false; + return true; + } + else + { + return false; + } + } - void WinDC::MoveClip(vint OffsetX, vint OffsetY) - { - OffsetClipRgn(FHandle, (int)OffsetX, (int)OffsetY); - } + bool UniscribeParagraph::SetSize(vint start, vint length, vint value) + { + vint fs, ss, fe, se, f1, f2; + SearchFragment(start, length, fs, ss, fe, se); + if(CutFragment(fs, ss, fe, se, f1, f2)) + { + for(vint i=f1;i<=f2;i++) + { + documentFragments[i]->fontStyle.size=value; + } + built=false; + return true; + } + else + { + return false; + } + } - void WinDC::CombineClip(WinRegion::Ptr Region, vint CombineMode) - { - ExtSelectClipRgn(FHandle, Region->GetHandle(), (int)CombineMode); - } + bool UniscribeParagraph::SetStyle(vint start, vint length, bool bold, bool italic, bool underline, bool strikeline) + { + vint fs, ss, fe, se, f1, f2; + SearchFragment(start, length, fs, ss, fe, se); + if(CutFragment(fs, ss, fe, se, f1, f2)) + { + for(vint i=f1;i<=f2;i++) + { + documentFragments[i]->fontStyle.bold=bold; + documentFragments[i]->fontStyle.italic=italic; + documentFragments[i]->fontStyle.underline=underline; + documentFragments[i]->fontStyle.strikeline=strikeline; + } + built=false; + return true; + } + else + { + return false; + } + } - void WinDC::IntersetClipRect(RECT Rect) - { - ::IntersectClipRect(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); - } + bool UniscribeParagraph::SetColor(vint start, vint length, Color value) + { + vint fs, ss, fe, se; + SearchFragment(start, length, fs, ss, fe, se); + if(fs==-1 || ss==-1 || fe==-1 || se==-1) return false; - void WinDC::ExcludeClipRect(RECT Rect) - { - ::ExcludeClipRect(FHandle, Rect.left, Rect.top, Rect.right, Rect.bottom); - } + CutFragmentColors(fs, ss, fe, se, &UniscribeColor::fontColor, value); + return true; + } - WinRegion::Ptr WinDC::GetClipRegion() - { - HRGN Handle=CreateRectRgn(0, 0, 1, 1); - GetClipRgn(FHandle, Handle); - return new WinRegion(Handle); - } + bool UniscribeParagraph::SetBackgroundColor(vint start, vint length, Color value) + { + vint fs, ss, fe, se; + SearchFragment(start, length, fs, ss, fe, se); + if(fs==-1 || ss==-1 || fe==-1 || se==-1) return false; - RECT WinDC::GetClipBoundRect() - { - RECT Rect; - GetClipBox(FHandle, &Rect); - return Rect; - } + CutFragmentColors(fs, ss, fe, se, &UniscribeColor::backgroundColor, value); + return true; + } - /*------------------------------------------------------------------------------*/ + bool UniscribeParagraph::SetInlineObject(vint start, vint length, const IGuiGraphicsParagraph::InlineObjectProperties& properties) + { + vint fs, ss, fe, se, f1, f2; + SearchFragment(start, length, fs, ss, fe, se); + if(CutFragment(fs, ss, fe, se, f1, f2)) + { + WString text; + for(vint i=f1;i<=f2;i++) + { + text+=documentFragments[f1]->text; + } + auto elementFragment=Ptr(new UniscribeFragment(text)); - WinTransform WinDC::GetTransform() - { - XFORM Transform; - GetWorldTransform(FHandle, &Transform); - return Transform; - } + for(vint i=f1;i<=f2;i++) + { + elementFragment->cachedTextFragment.Add(documentFragments[f1]); + documentFragments.RemoveAt(f1); + } + elementFragment->inlineObjectProperties=properties; + documentFragments.Insert(f1, elementFragment); + built=false; + return true; + } + else + { + return false; + } + } - void WinDC::SetTransform(const WinTransform& Transform) - { - SetWorldTransform(FHandle, Transform.GetHandle()); - } + InlineObject UniscribeParagraph::ResetInlineObject(vint start, vint length) + { + vint fs, ss, fe, se; + SearchFragment(start, length, fs, ss, fe, se); + Ptr fragment = documentFragments[fs]; + if(fs==fe && ss==0 && se==fragment->text.Length() && fragment->inlineObjectProperties) + { + documentFragments.RemoveAt(fs); + for(vint i=0;icachedTextFragment.Count();i++) + { + documentFragments.Insert(fs+i, fragment->cachedTextFragment[i]); + } + built=false; + return fragment->inlineObjectProperties; + } + return InlineObject(); + } - /*------------------------------------------------------------------------------*/ +/*********************************************************************** +UniscribeParagraph (Caret Helper) +***********************************************************************/ - void WinDC::Copy(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY, DWORD DrawROP) - { - HDC SourceHandle=Source?Source->GetHandle():0; - BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, SourceHandle, (int)srcX, (int)srcY, (int)DrawROP); - } + void UniscribeParagraph::GetLineIndexFromTextPos(vint textPos, vint& frontLine, vint& backLine) + { + frontLine=-1; + backLine=-1; + if(!IsValidTextPos(textPos)) return; - void WinDC::Copy(RECT dstRect, WinDC* Source, POINT srcPos, DWORD DrawROP) - { - HDC SourceHandle=Source?Source->GetHandle():0; - BitBlt(FHandle, dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, SourceHandle, srcPos.x, srcPos.y, DrawROP); - } + vint start=0; + vint end=lines.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + Ptr line=lines[middle]; + vint lineStart=line->startFromParagraph; + vint lineEnd=line->startFromParagraph+line->lineText.Length(); + if(textPoslineEnd) + { + if(textPos==lineEnd+1) + { + frontLine=middle; + backLine=middle+1; + return; + } + else + { + start=middle+1; + } + } + else + { + frontLine=middle; + backLine=middle; + return; + } + } + } - void WinDC::Copy(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY , vint srcW, vint srcH, DWORD DrawROP) - { - HDC SourceHandle=Source?Source->GetHandle():0; - StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, SourceHandle, (int)srcX, (int)srcY, (int)srcW, (int)srcH, (int)DrawROP); - } + void UniscribeParagraph::GetVirtualLineIndexFromTextPos(vint textPos, vint lineIndex, vint& frontLine, vint& backLine) + { + frontLine=-1; + backLine=-1; + if(!IsValidTextPos(textPos)) return; + if(lineIndex<0 || lineIndex>=lines.Count()) return; - void WinDC::Copy(RECT dstRect, WinDC* Source, RECT srcRect, DWORD DrawROP) - { - HDC SourceHandle=Source?Source->GetHandle():0; - StretchBlt( FHandle , dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, - SourceHandle, srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, - DrawROP); - } + Ptr line=lines[lineIndex]; + vint start=0; + vint end=line->virtualLines.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + Ptr vline=line->virtualLines[middle]; + vint lineStart=line->startFromParagraph+vline->startFromLine; + vint lineEnd=line->startFromParagraph+vline->startFromLine+vline->length; + if(textPoslineEnd) + { + start=middle+1; + } + else if(textPos==lineStart) + { + frontLine=middle==0?0:middle-1; + backLine=middle; + return; + } + else if(textPos==lineEnd) + { + frontLine=middle; + backLine=middle==line->virtualLines.Count()-1?middle:middle+1; + return; + } + else + { + frontLine=middle; + backLine=middle; + return; + } + } + } - void WinDC::Copy(POINT UpperLeft, POINT UpperRight, POINT LowerLeft, WinDC* Source, vint srcX, vint srcY, vint srcW, vint srcH) - { - POINT Pt[3]; - Pt[0]=UpperLeft; - Pt[1]=UpperRight; - Pt[2]=LowerLeft; - PlgBlt(FHandle, Pt, Source->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, 0, 0, 0); - } + void UniscribeParagraph::GetItemIndexFromTextPos(vint textPos, vint lineIndex, vint& frontItem, vint& backItem) + { + frontItem=-1; + backItem=-1; + if(!IsValidTextPos(textPos)) return; + if(lineIndex<0 || lineIndex>=lines.Count()) return; - void WinDC::Copy(POINT UpperLeft, POINT UpperRight, POINT LowerLeft, WinDC*Source, RECT srcRect) - { - POINT Pt[3]; - Pt[0]=UpperLeft; - Pt[1]=UpperRight; - Pt[2]=LowerLeft; - PlgBlt(FHandle, Pt, Source->GetHandle(), srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, 0, 0, 0); - } + Ptr line=lines[lineIndex]; + vint start=0; + vint end=line->scriptItems.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + Ptr item=line->scriptItems[middle]; + vint lineStart=line->startFromParagraph+item->startFromLine; + vint lineEnd=line->startFromParagraph+item->startFromLine+item->length; + if(textPoslineEnd) + { + start=middle+1; + } + else if(textPos==lineStart) + { + frontItem=middle==0?0:middle-1; + backItem=middle; + return; + } + else if(textPos==lineEnd) + { + frontItem=middle; + backItem=middle==line->scriptItems.Count()-1?middle:middle+1; + return; + } + else + { + frontItem=middle; + backItem=middle; + return; + } + } + } - void WinDC::CopyTrans(vint dstX, vint dstY, vint dstW, vint dstH, WinDC* Source, vint srcX, vint srcY , vint srcW, vint srcH, COLORREF Color) - { - TransparentBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Source->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Color); - } + Rect UniscribeParagraph::GetCaretBoundsWithLine(vint caret, vint lineIndex, vint virtualLineIndex, bool frontSide) + { + Ptr line=lines[lineIndex]; + if(line->startFromParagraph<=caret && caret<=line->startFromParagraph+line->lineText.Length()) + { + if(line->lineText==L"") return line->bounds; + Ptr virtualLine=line->virtualLines[virtualLineIndex]; - void WinDC::CopyTrans(RECT dstRect, WinDC* Source, RECT srcRect, COLORREF Color) - { - TransparentBlt( FHandle , dstRect.left, dstRect.top, dstRect.right-dstRect.left, dstRect.bottom-dstRect.top, - Source->GetHandle() , srcRect.left, srcRect.top, srcRect.right-srcRect.left, srcRect.bottom-srcRect.top, - Color); - } + for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) + { + Ptr run=line->scriptRuns[i]; + if(Ptr textRun=run.Cast()) + { + vint firstBounds=i==virtualLine->firstRunIndex?virtualLine->firstRunBoundsIndex:0; + vint lastBounds=i==virtualLine->lastRunIndex?virtualLine->lastRunBoundsIndex:run->fragmentBounds.Count()-1; + + for(vint j=firstBounds;j<=lastBounds;j++) + { + UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[j]; + vint boundsStart=line->startFromParagraph+run->startFromLine+bounds.startFromRun; + if(boundsStart==caret) + { + if(!frontSide || i==virtualLine->firstRunIndex && j==virtualLine->firstRunBoundsIndex) + { + if(run->scriptItem->scriptItem.a.fRTL) + { + return Rect(bounds.bounds.x2, bounds.bounds.y1, bounds.bounds.x2, bounds.bounds.y2); + } + else + { + return Rect(bounds.bounds.x1, bounds.bounds.y1, bounds.bounds.x1, bounds.bounds.y2); + } + } + } + else if(caret==boundsStart+bounds.length) + { + if(frontSide || i==virtualLine->lastRunIndex && j==virtualLine->lastRunBoundsIndex) + { + if(run->scriptItem->scriptItem.a.fRTL) + { + return Rect(bounds.bounds.x1, bounds.bounds.y1, bounds.bounds.x1, bounds.bounds.y2); + } + else + { + return Rect(bounds.bounds.x2, bounds.bounds.y1, bounds.bounds.x2, bounds.bounds.y2); + } + } + } + else if(boundsStart0) + { + if(i==bounds.length) + { + newLastRunChar=charIndex; + } + else + { + WORD cluster1=textRun->wholeGlyph.charCluster[charIndex-1]; + WORD cluster2=textRun->wholeGlyph.charCluster[charIndex]; + if(cluster1!=cluster2) + { + newLastRunChar=charIndex; + } + } + } - /*------------------------------------------------------------------------------*/ + if(newLastRunChar!=lastRunChar) + { + WORD glyph1=0; + WORD glyph2=0; + if(run->scriptItem->scriptItem.a.fRTL) + { + glyph2=textRun->wholeGlyph.charCluster[lastRunChar]+1; + glyph1=newLastRunChar==run->length?0:textRun->wholeGlyph.charCluster[newLastRunChar]+1; + } + else + { + glyph1=textRun->wholeGlyph.charCluster[lastRunChar]; + glyph2=newLastRunChar==run->length?(WORD)textRun->wholeGlyph.glyphs.Count():textRun->wholeGlyph.charCluster[newLastRunChar]; + } - void WinDC::Draw(vint dstX, vint dstY, WinMetaFile* MetaFile) - { - Draw(dstX, dstY, MetaFile->GetWidth(), MetaFile->GetHeight(), MetaFile); - } + vint glyphWidth=0; + for(WORD g=glyph1;gwholeGlyph.glyphAdvances[g]; + } + accumulatedWidth+=glyphWidth; + lastRunChar=newLastRunChar; - void WinDC::Draw(POINT Pos, WinMetaFile* MetaFile) - { - Draw(Pos.x, Pos.y, MetaFile->GetWidth(), MetaFile->GetHeight(), MetaFile); - } + if(line->startFromParagraph+run->startFromLine+lastRunChar==caret) + { + vint x=0; + if(run->scriptItem->scriptItem.a.fRTL) + { + x=bounds.bounds.x2-accumulatedWidth; + } + else + { + x=bounds.bounds.x1+accumulatedWidth; + } + return Rect(x, bounds.bounds.y1, x, bounds.bounds.y2); + } + } + } + } + } + } + } + } + return Rect(); + } - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinMetaFile* MetaFile) - { - RECT Rect; - Rect.left=(int)dstX; - Rect.top=(int)dstY; - Rect.right=(int)(dstX+dstW); - Rect.bottom=(int)(dstY+dstH); - Draw(Rect, MetaFile); - } + vint UniscribeParagraph::GetCaretFromXWithTextRunBounds(vint x, vint lineIndex, vint runIndex, vint runBoundsIndex) + { + Ptr line=lines[lineIndex]; + if(line->lineText==L"") return line->startFromParagraph; + Ptr run=line->scriptRuns[runIndex].Cast(); + UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[runBoundsIndex]; + + vint startFromFragmentBounds=0; + vint accumulatedWidth=0; + while(startFromFragmentBoundsSearchSingleChar(charIndex, charLength, cluster, nextCluster); - void WinDC::Draw(RECT Rect, WinMetaFile* MetaFile) - { - PlayEnhMetaFile(FHandle, MetaFile->GetHandle(), &Rect); - } + vint clusterStart=0; + vint clusterCount=0; + if(run->scriptItem->IsRightToLeft()) + { + clusterStart=nextCluster+1; + clusterCount=cluster-nextCluster; + } + else + { + clusterStart=cluster; + clusterCount=nextCluster-cluster; + } - /*------------------------------------------------------------------------------*/ + vint clusterWidth=0; + for(vint i=0;iwholeGlyph.glyphAdvances[i+clusterStart]; + } - void WinDC::Draw(vint dstX, vint dstY, WinBitmap::Ptr Bitmap) - { - vint dstW=Bitmap->GetWidth(); - vint dstH=Bitmap->GetHeight(); - vint srcX=0; - vint srcY=0; - if(!Bitmap->IsAlphaChannelBuilt()) - { - BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); - } - else - { - vint srcW=dstW; - vint srcH=dstH; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } - } + if(run->scriptItem->scriptItem.a.fRTL) + { + vint x2=bounds.bounds.x2-accumulatedWidth; + vint x1=x2-clusterWidth; + if(x1<=x && xstartFromParagraph+run->startFromLine+charIndex+charLength; + } + else + { + return line->startFromParagraph+run->startFromLine+charIndex; + } + } + } + else + { + vint x1=bounds.bounds.x1+accumulatedWidth; + vint x2=x1+clusterWidth; + if(x1<=x && xstartFromParagraph+run->startFromLine+charIndex; + } + else + { + return line->startFromParagraph+run->startFromLine+charIndex+charLength; + } + } + } - void WinDC::Draw(POINT Pos, WinBitmap::Ptr Bitmap) - { - vint dstX=Pos.x; - vint dstY=Pos.y; - vint dstW=Bitmap->GetWidth(); - vint dstH=Bitmap->GetHeight(); - vint srcX=0; - vint srcY=0; - if(!Bitmap->IsAlphaChannelBuilt()) - { - BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); - } - else - { - vint srcW=dstW; - vint srcH=dstH; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + startFromFragmentBounds+=charLength; + accumulatedWidth+=clusterWidth; + } + return -1; } - } - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap) - { - vint srcX=0; - vint srcY=0; - vint srcW=Bitmap->GetWidth(); - vint srcH=Bitmap->GetHeight(); - if(!Bitmap->IsAlphaChannelBuilt()) - { - StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); - } - else + vint UniscribeParagraph::GetCaretFromXWithLine(vint x, vint lineIndex, vint virtualLineIndex) { - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } - } + Ptr line=lines[lineIndex]; + if(line->virtualLines.Count()==0) return line->startFromParagraph; + Ptr virtualLine=line->virtualLines[virtualLineIndex]; + if(xbounds.x1) return line->startFromParagraph+virtualLine->startFromLine; + if(x>=virtualLine->bounds.x2) return line->startFromParagraph+virtualLine->startFromLine+virtualLine->length; - void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap) - { - vint dstX=Rect.left; - vint dstY=Rect.top; - vint dstW=Rect.right-Rect.left; - vint dstH=Rect.bottom-Rect.top; - vint srcX=0; - vint srcY=0; - vint srcW=Bitmap->GetWidth(); - vint srcH=Bitmap->GetHeight(); - if(!Bitmap->IsAlphaChannelBuilt()) - { - StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); - } - else - { - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) + { + Ptr run=line->scriptRuns[i]; + if(Ptr textRun=run.Cast()) + { + vint firstBounds=i==virtualLine->firstRunIndex?virtualLine->firstRunBoundsIndex:0; + vint lastBounds=i==virtualLine->lastRunIndex?virtualLine->lastRunBoundsIndex:run->fragmentBounds.Count()-1; + + for(vint j=firstBounds;j<=lastBounds;j++) + { + UniscribeRun::RunFragmentBounds& bounds=run->fragmentBounds[j]; + if(bounds.bounds.x1<=x && xfragmentBounds[0].bounds; + if(bounds.x1<=x && xstartFromParagraph+run->startFromLine; + } + else + { + return line->startFromParagraph+run->startFromLine+run->length; + } + } + } + } + return -1; } - } - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY) - { - if(!Bitmap->IsAlphaChannelBuilt()) - { - BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); - } - else + InlineObject UniscribeParagraph::GetInlineObjectFromXWithLine(vint x, vint lineIndex, vint virtualLineIndex, vint& start, vint& length) { - vint srcW=dstW; - vint srcH=dstH; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } - } + Ptr line=lines[lineIndex]; + if(line->virtualLines.Count()==0) return InlineObject(); + Ptr virtualLine=line->virtualLines[virtualLineIndex]; + if(xbounds.x1) return InlineObject(); + if(x>=virtualLine->bounds.x2) return InlineObject(); - void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, POINT Pos) - { - vint dstX=Rect.left; - vint dstY=Rect.top; - vint dstW=Rect.right-Rect.left; - vint dstH=Rect.bottom-Rect.top; - vint srcX=Pos.x; - vint srcY=Pos.y; - if(!Bitmap->IsAlphaChannelBuilt()) - { - BitBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, SRCCOPY); - } - else - { - vint srcW=dstW; - vint srcH=dstH; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + for(vint i=virtualLine->firstRunIndex;i<=virtualLine->lastRunIndex;i++) + { + Ptr run=line->scriptRuns[i]; + if(auto elementRun=run.Cast()) + { + Rect bounds=run->fragmentBounds[0].bounds; + if(bounds.x1<=x && xstartFromParagraph+elementRun->startFromLine; + length=elementRun->length; + return elementRun->properties; + } + } + } + return InlineObject(); } - } - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, vint srcW, vint srcH) - { - if(!Bitmap->IsAlphaChannelBuilt()) + vint UniscribeParagraph::GetLineY(vint lineIndex) { - StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + if(lineIndex==lines.Count()) + { + return bounds.Height(); + } + else + { + return lines[lineIndex]->bounds.y1; + } } - else + + vint UniscribeParagraph::GetVirtualLineY(vint lineIndex, vint virtualLineIndex) { - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + Ptr line=lines[lineIndex]; + if(virtualLineIndex==line->virtualLines.Count()) + { + return GetLineY(lineIndex+1); + } + else + { + return line->virtualLines[virtualLineIndex]->bounds.y1; + } } - } - void WinDC::Draw(RECT dstRect, WinBitmap::Ptr Bitmap, RECT srcRect) - { - vint dstX=dstRect.left; - vint dstY=dstRect.top; - vint dstW=dstRect.right-dstRect.left; - vint dstH=dstRect.bottom-dstRect.top; - vint srcX=srcRect.left; - vint srcY=srcRect.top; - vint srcW=srcRect.right-srcRect.left; - vint srcH=srcRect.bottom-srcRect.top; - if(!Bitmap->IsAlphaChannelBuilt()) + vint UniscribeParagraph::GetLineIndexFromY(vint y) { - StretchBlt(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, SRCCOPY); + if(ybounds.y1) return 0; + if(y>=lines[lines.Count()-1]->bounds.y2) return lines.Count()-1; + + vint start=0; + vint end=lines.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + vint minY=GetLineY(middle); + vint maxY=GetLineY(middle+1); + if(y=maxY) + { + start=middle+1; + } + else + { + return middle; + } + } + return -1; } - else + + vint UniscribeParagraph::GetVirtualLineIndexFromY(vint y, vint lineIndex) { - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=255; - Blend.AlphaFormat=AC_SRC_ALPHA; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); + Ptr line=lines[lineIndex]; + if(ybounds.y1) return 0; + if(y>=line->bounds.y2) return line->virtualLines.Count()-1; + + vint start=0; + vint end=line->virtualLines.Count()-1; + while(start<=end) + { + vint middle=(start+end)/2; + vint minY=GetVirtualLineY(lineIndex, middle); + vint maxY=GetVirtualLineY(lineIndex, middle+1); + if(y=maxY) + { + start=middle+1; + } + else + { + return middle; + } + } + return -1; } - } - /*------------------------------------------------------------------------------*/ +/*********************************************************************** +UniscribeParagraph (Caret) +***********************************************************************/ - void WinDC::Draw(vint dstX, vint dstY, WinBitmap::Ptr Bitmap, unsigned char Alpha) - { - vint dstW=Bitmap->GetWidth(); - vint dstH=Bitmap->GetHeight(); - vint srcX=0; - vint srcY=0; - vint srcW=dstW; - vint srcH=dstH; + vint UniscribeParagraph::GetCaret(vint comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) + { + if(position==IGuiGraphicsParagraph::CaretFirst) return 0; + if(position==IGuiGraphicsParagraph::CaretLast) return paragraphText.Length(); + if(!IsValidCaret(comparingCaret)) return -1; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + if(position==IGuiGraphicsParagraph::CaretMoveLeft) + { + return comparingCaret==0?0:GetNearestCaretFromTextPos(comparingCaret-1, true); + } + if(position==IGuiGraphicsParagraph::CaretMoveRight) + { + return comparingCaret==paragraphText.Length()?paragraphText.Length():GetNearestCaretFromTextPos(comparingCaret+1, false); + } - void WinDC::Draw(POINT Pos, WinBitmap::Ptr Bitmap, unsigned char Alpha) - { - vint dstX=Pos.x; - vint dstY=Pos.y; - vint dstW=Bitmap->GetWidth(); - vint dstH=Bitmap->GetHeight(); - vint srcX=0; - vint srcY=0; - vint srcW=dstW; - vint srcH=dstH; + vint frontLine=0; + vint backLine=0; + GetLineIndexFromTextPos(comparingCaret, frontLine, backLine); - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + Ptr line=lines[frontLine]; + if(line->virtualLines.Count()==0) + { + switch(position) + { + case IGuiGraphicsParagraph::CaretLineFirst: + case IGuiGraphicsParagraph::CaretLineLast: + return line->startFromParagraph; + } + } - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, unsigned char Alpha) - { - vint srcX=0; - vint srcY=0; - vint srcW=Bitmap->GetWidth(); - vint srcH=Bitmap->GetHeight(); + vint frontVirtualLine=0; + vint backVirtualLine=0; + GetVirtualLineIndexFromTextPos(comparingCaret, frontLine, frontVirtualLine, backVirtualLine); + vint virtualLineIndex=preferFrontSide?frontVirtualLine:backVirtualLine; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + Ptr virtualLine=virtualLineIndex==-1?nullptr:line->virtualLines[virtualLineIndex]; - void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, unsigned char Alpha) - { - vint dstX=Rect.left; - vint dstY=Rect.top; - vint dstW=Rect.right-Rect.left; - vint dstH=Rect.bottom-Rect.top; - vint srcX=0; - vint srcY=0; - vint srcW=Bitmap->GetWidth(); - vint srcH=Bitmap->GetHeight(); + switch(position) + { + case IGuiGraphicsParagraph::CaretLineFirst: + return line->startFromParagraph+virtualLine->startFromLine; + case IGuiGraphicsParagraph::CaretLineLast: + return line->startFromParagraph+virtualLine->startFromLine+virtualLine->length; + case IGuiGraphicsParagraph::CaretMoveUp: + { + if(frontLine==0 && virtualLineIndex<=0) return comparingCaret; + Rect bounds=GetCaretBoundsWithLine(comparingCaret, frontLine, virtualLineIndex, preferFrontSide); + if(bounds.Height()!=0) + { + if(virtualLineIndex<=0) + { + frontLine--; + virtualLineIndex=lines[frontLine]->virtualLines.Count()-1; + } + else + { + virtualLineIndex--; + } + preferFrontSide=true; + return GetCaretFromXWithLine(bounds.x1, frontLine, virtualLineIndex); + } + } + break; + case IGuiGraphicsParagraph::CaretMoveDown: + { + if(frontLine==lines.Count()-1 && virtualLineIndex==line->virtualLines.Count()-1) return comparingCaret; + Rect bounds=GetCaretBoundsWithLine(comparingCaret, frontLine, virtualLineIndex, preferFrontSide); + if(bounds.Height()!=0) + { + if(virtualLineIndex==line->virtualLines.Count()-1) + { + frontLine++; + virtualLineIndex=0; + } + else + { + virtualLineIndex++; + } + preferFrontSide=false; + return GetCaretFromXWithLine(bounds.x1, frontLine, virtualLineIndex); + } + } + break; + } + return -1; + } - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + Rect UniscribeParagraph::GetCaretBounds(vint caret, bool frontSide) + { + if(!IsValidCaret(caret)) return Rect(); - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, unsigned char Alpha) - { - vint srcW=dstW; - vint srcH=dstH; + vint frontLine=0; + vint backLine=0; + GetLineIndexFromTextPos(caret, frontLine, backLine); - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + vint frontVirtualLine=0; + vint backVirtualLine=0; + GetVirtualLineIndexFromTextPos(caret, frontLine, frontVirtualLine, backVirtualLine); + vint virtualLineIndex=frontSide?frontVirtualLine:backVirtualLine; - void WinDC::Draw(RECT Rect, WinBitmap::Ptr Bitmap, POINT Pos, unsigned char Alpha) - { - vint dstX=Rect.left; - vint dstY=Rect.top; - vint dstW=Rect.right-Rect.left; - vint dstH=Rect.bottom-Rect.top; - vint srcX=Pos.x; - vint srcY=Pos.y; - vint srcW=dstW; - vint srcH=dstH; + return GetCaretBoundsWithLine(caret, frontLine, virtualLineIndex, frontSide); + } - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + vint UniscribeParagraph::GetCaretFromPoint(Point point) + { + vint lineIndex=GetLineIndexFromY(point.y); + if(lineIndex==-1) return -1; - void WinDC::Draw(vint dstX, vint dstY, vint dstW, vint dstH, WinBitmap::Ptr Bitmap, vint srcX, vint srcY, vint srcW, vint srcH, unsigned char Alpha) - { - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + Ptr line=lines[lineIndex]; + if(line->virtualLines.Count()==0) return line->startFromParagraph; - void WinDC::Draw(RECT dstRect, WinBitmap::Ptr Bitmap, RECT srcRect, unsigned char Alpha) - { - vint dstX=dstRect.left; - vint dstY=dstRect.top; - vint dstW=dstRect.right-dstRect.left; - vint dstH=dstRect.bottom-dstRect.top; - vint srcX=srcRect.left; - vint srcY=srcRect.top; - vint srcW=srcRect.right-srcRect.left; - vint srcH=srcRect.bottom-srcRect.top; + vint virtualLineIndex=GetVirtualLineIndexFromY(point.y, lineIndex); + if(virtualLineIndex==-1) return -1; - BLENDFUNCTION Blend; - Blend.BlendOp=AC_SRC_OVER; - Blend.BlendFlags=0; - Blend.SourceConstantAlpha=Alpha; - Blend.AlphaFormat=Bitmap->IsAlphaChannelBuilt()?AC_SRC_ALPHA:0; - AlphaBlend(FHandle, (int)dstX, (int)dstY, (int)dstW, (int)dstH, Bitmap->GetWinDC()->GetHandle(), (int)srcX, (int)srcY, (int)srcW, (int)srcH, Blend); - } + return GetCaretFromXWithLine(point.x, lineIndex, virtualLineIndex); + } -/********************************************************************************************************* -WinControlDC -*********************************************************************************************************/ + InlineObject UniscribeParagraph::GetInlineObjectFromPoint(Point point, vint& start, vint& length) + { + start = -1; + length = 0; + vint lineIndex = GetLineIndexFromY(point.y); + if (lineIndex == -1) return InlineObject(); - WinControlDC::WinControlDC(HWND Handle) - { - FControlHandle=Handle; - FHandle=GetDC(FControlHandle); - Init(); - } + Ptr line = lines[lineIndex]; + if (line->virtualLines.Count() == 0) return InlineObject(); - WinControlDC::~WinControlDC() - { - ReleaseDC(FControlHandle, FHandle); - } + vint virtualLineIndex = GetVirtualLineIndexFromY(point.y, lineIndex); + if (virtualLineIndex == -1) return InlineObject(); -/********************************************************************************************************* -WinProxyDC -*********************************************************************************************************/ + return GetInlineObjectFromXWithLine(point.x, lineIndex, virtualLineIndex, start, length); + } - WinProxyDC::WinProxyDC() - { - FHandle=NULL; - } + vint UniscribeParagraph::GetNearestCaretFromTextPos(vint textPos, bool frontSide) + { + if(!IsValidTextPos(textPos)) return -1; + vint frontLine=0; + vint backLine=0; + GetLineIndexFromTextPos(textPos, frontLine, backLine); + if(frontLine==-1 || backLine==-1) return -1; + if(frontLine!=backLine) + { + return frontSide?textPos-1:textPos+1; + } - WinProxyDC::~WinProxyDC() - { - } + Ptr line=lines[frontLine]; + if(textPos==line->startFromParagraph || textPos==line->startFromParagraph+line->lineText.Length()) + { + return textPos; + } - void WinProxyDC::Initialize(HDC Handle) - { - FHandle=Handle; - Init(); - } + vint frontItem=-1; + vint backItem=-1; + GetItemIndexFromTextPos(textPos, frontLine, frontItem, backItem); + if(frontItem==-1 || backItem==-1) return -1; + if(frontItem!=backItem) return textPos; + + Ptr item=line->scriptItems[frontItem]; + vint lineTextPos=textPos-line->startFromParagraph; + if(lineTextPos==item->startFromLine) return textPos; + if(lineTextPos==item->startFromLine+item->length) return textPos; -/********************************************************************************************************* -WinImageDC -*********************************************************************************************************/ + vint itemTextPos=lineTextPos-item->startFromLine; + if(item->charLogattrs[itemTextPos].fCharStop) return textPos; - WinImageDC::WinImageDC() - { - FHandle=CreateCompatibleDC(NULL); - Init(); - } + if(frontSide) + { + for(vint i=itemTextPos-1;i>=0;i--) + { + if(item->charLogattrs[i].fCharStop) return i+line->startFromParagraph+item->startFromLine; + } + return line->startFromParagraph+item->startFromLine; + } + else + { + for(vint i=itemTextPos+1;ilength;i++) + { + if(item->charLogattrs[i].fCharStop) return i+line->startFromParagraph+item->startFromLine; + } + return line->startFromParagraph+item->startFromLine+item->length; + } + } - WinImageDC::~WinImageDC() - { - DeleteDC(FHandle); - } + bool UniscribeParagraph::IsValidCaret(vint caret) + { + if(!IsValidTextPos(caret)) return false; + return GetNearestCaretFromTextPos(caret, true)==caret; + } + bool UniscribeParagraph::IsValidTextPos(vint textPos) + { + return 0<=textPos && textPos<=paragraphText.Length(); + } } } } - /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\GDI\WINGDIAPPLICATION.CPP +.\GDI\RENDERERS\GUIGRAPHICSWINDOWSGDI.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace windows + namespace elements { - using namespace vl::collections; - class GdiWindowsNativeWindowListener : public Object, public INativeWindowListener +/*********************************************************************** +GuiGDIElement +***********************************************************************/ + + GuiGDIElement::GuiGDIElement() + { + } + } + + namespace elements_windows_gdi + { + using namespace windows; + using namespace elements; + using namespace collections; + +/*********************************************************************** +WindowsGDIRenderTarget +***********************************************************************/ + + class WindowsGDIRenderTarget : public IWindowsGDIRenderTarget { protected: - Ptr buffer; - INativeWindow* window; - bool needPaintAfterResize = false; + INativeWindow* window = nullptr; + WinDC* dc = nullptr; + List clippers; + vint clipperCoverWholeTargetCounter = 0; + bool hostedRendering = false; + bool rendering = false; - vint DetermineBufferLength(vint minSize, vint minBound, vint maxBound, vint currentSize) + void ApplyClipper(Rect validArea, bool clipperExists) { - if(currentSizemaxBound) + if (clipperExists) { - return minBound; + dc->ClipRegion(Ptr(new WinRegion(validArea.Left(), validArea.Top(), validArea.Right(), validArea.Bottom(), true))); } else { - return currentSize; + dc->RemoveClip(); } } - NativeSize CalculateBufferSize() + void StartRenderingOnNativeWindow() override { - NativeSize nativeWindowSize = window->GetClientSize(); - Size windowSize(nativeWindowSize.x.value, nativeWindowSize.y.value); - Size minBounds(windowSize.x * 5 / 4, windowSize.y * 5 / 4); - Size maxBounds(windowSize.x * 3 / 2, windowSize.y * 3 / 2); - Size currentSize = buffer ? Size(buffer->GetWidth(), buffer->GetHeight()) : Size(0, 0); - vint newWidth = DetermineBufferLength(windowSize.x, minBounds.x, maxBounds.x, currentSize.x); - vint newHeight = DetermineBufferLength(windowSize.y, minBounds.y, maxBounds.y, currentSize.y); - return NativeSize(newWidth, newHeight); + dc = GetWindowsGDIObjectProvider()->GetNativeWindowDC(window); } - void RebuildCanvas(NativeSize size) + RenderTargetFailure StopRenderingOnNativeWindow() override { - if (size.x < 256)size.x = 256; - if (size.y < 256)size.y = 256; - if (buffer) - { - if (buffer->GetWidth() != size.x.value || buffer->GetHeight() != size.y.value) - { - buffer = 0; - needPaintAfterResize = true; - } - } - if (!buffer) - { - buffer = new WinBitmap(size.x.value, size.y.value, WinBitmap::vbb32Bits, true); - buffer->GetWinDC()->SetBackTransparent(true); - } + dc = nullptr; + return RenderTargetFailure::None; } - public: - GdiWindowsNativeWindowListener(INativeWindow* _window) - :window(_window) + + Size GetCanvasSize() override { + return window->Convert(window->GetClientSize()); } - void Moved() + void AfterPushedClipper(Rect clipper, Rect validArea) override { - RebuildCanvas(CalculateBufferSize()); + ApplyClipper(validArea, true); } - void Paint() + void AfterPushedClipperAndBecameInvalid(Rect clipper) override { - // for the first Paint() call after Moved() - // trigger the global timer so that all GuiGraphicsHost with needToRender=true will call Render(false) - // so that to fill the buffer to prevent from seeing a black frame - // but it still leave some black color since the layout may needs more than 1 frame to finish - if (needPaintAfterResize) - { - needPaintAfterResize = false; - auto callbackService = GetCurrentController()->CallbackService(); - dynamic_cast(callbackService)->InvokeGlobalTimer(); - } - IWindowsForm* form=GetWindowsForm(window); - WinControlDC controlDC(form->GetWindowHandle()); - controlDC.Draw(0, 0, buffer); } - WinDC* GetWinDC() + void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists) override { - if(!buffer) Moved(); - return buffer->GetWinDC(); + ApplyClipper(validArea, clipperExists); } - }; - - class GdiWindowsNativeControllerListener : public Object, public INativeControllerListener - { - public: - Dictionary> nativeWindowListeners; - ~GdiWindowsNativeControllerListener() + void AfterPoppedClipper(Rect validArea, bool clipperExists) override { - for (vint i = 0; i < nativeWindowListeners.Count(); i++) - { - auto window = nativeWindowListeners.Keys()[i]; - auto listener = nativeWindowListeners.Values()[i]; - window->UninstallListener(listener.Obj()); - } + ApplyClipper(validArea, clipperExists); } - - void NativeWindowCreated(INativeWindow* window) + public: + WindowsGDIRenderTarget(INativeWindow* _window) + : window(_window) { - Ptr listener=new GdiWindowsNativeWindowListener(window); - window->InstallListener(listener.Obj()); - nativeWindowListeners.Add(window, listener); } - void NativeWindowDestroying(INativeWindow* window) + WinDC* GetDC()override { - Ptr listener=nativeWindowListeners[window]; - nativeWindowListeners.Remove(window); - window->UninstallListener(listener.Obj()); + return dc ? dc : GetWindowsGDIObjectProvider()->GetNativeWindowDC(window); } }; - GdiWindowsNativeControllerListener* gdiListener=0; - - WinDC* GetNativeWindowDC(INativeWindow* window) - { - vint index=gdiListener->nativeWindowListeners.Keys().IndexOf(window); - return index==-1?0:gdiListener->nativeWindowListeners.Values().Get(index)->GetWinDC(); - } - - HDC GetNativeWindowHDC(INativeWindow* window) - { - WinDC* dc=GetNativeWindowDC(window); - return dc?dc->GetHandle():NULL; - } - } - - namespace elements_windows_gdi - { /*********************************************************************** -OS Supporting +CachedResourceAllocator ***********************************************************************/ - class WinGDIApplicationGDIObjectProvider : public IWindowsGDIObjectProvider + class CachedPenAllocator { - protected: - IMLangFontLink2* mLangFontLink; - + DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr) public: - WinGDIApplicationGDIObjectProvider() - :mLangFontLink(0) - { - CoCreateInstance(CLSID_CMultiLanguage, NULL, CLSCTX_INPROC_SERVER, IID_IMLangFontLink2, (void**)&mLangFontLink); - } - - ~WinGDIApplicationGDIObjectProvider() - { - mLangFontLink->Release(); - } - - windows::WinDC* GetNativeWindowDC(INativeWindow* window)override - { - return vl::presentation::windows::GetNativeWindowDC(window); - } - - IWindowsGDIRenderTarget* GetBindedRenderTarget(INativeWindow* window)override - { - return dynamic_cast(vl::presentation::windows::GetWindowsForm(window)->GetGraphicsHandler()); - } - - void SetBindedRenderTarget(INativeWindow* window, IWindowsGDIRenderTarget* renderTarget)override + Ptr CreateInternal(Color color) { - vl::presentation::windows::GetWindowsForm(window)->SetGraphicsHandler(renderTarget); + return Ptr(new WinPen(PS_SOLID, 1, RGB(color.r, color.g, color.b))); } + }; - IWICImagingFactory* GetWICImagingFactory()override + class CachedBrushAllocator + { + DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr) + public: + Ptr CreateInternal(Color color) { - return vl::presentation::windows::GetWICImagingFactory(); + return color.a == 0 ? Ptr(new WinBrush) : Ptr(new WinBrush(RGB(color.r, color.g, color.b))); } + }; - IWICBitmap* GetWICBitmap(INativeImageFrame* frame)override + class CachedFontAllocator + { + DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) + public: + static Ptr CreateGdiFont(const FontProperties& value) { - return vl::presentation::windows::GetWICBitmap(frame); + vint size = value.size < 0 ? value.size : -value.size; + return Ptr(new WinFont(value.fontFamily, size, 0, 0, 0, (value.bold ? FW_BOLD : FW_NORMAL), value.italic, value.underline, value.strikeline, value.antialias)); } - IMLangFontLink2* GetMLangFontLink()override + Ptr CreateInternal(const FontProperties& value) { - return mLangFontLink; + return CreateGdiFont(value); } }; - } - } -} - -using namespace vl; -using namespace vl::presentation; -using namespace vl::presentation::windows; -using namespace vl::presentation::elements_windows_gdi; - -int WinMainGDI(HINSTANCE hInstance, void(*RendererMain)()) -{ - EnableCrossKernelCrashing(); - // create controller - INativeController* controller=CreateWindowsNativeController(hInstance); - SetCurrentController(controller); - { - // install listener - GdiWindowsNativeControllerListener listener; - controller->CallbackService()->InstallListener(&listener); - gdiListener=&listener; - // main - RendererMain(); - // uninstall listener - gdiListener=0; - controller->CallbackService()->UninstallListener(&listener); - } - // destroy controller - DestroyWindowsNativeController(controller); - return 0; -} - -int SetupWindowsGDIRenderer() -{ - InitDpiAwareness(false); - CoInitializeEx(NULL, COINIT_MULTITHREADED); - HINSTANCE hInstance=(HINSTANCE)GetModuleHandle(NULL); - WinGDIApplicationGDIObjectProvider objectProvider; - SetWindowsGDIObjectProvider(&objectProvider); - return WinMainGDI(hInstance, &RendererMainGDI); -} - -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSASYNCSERVICE.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace windows - { - using namespace collections; - -/*********************************************************************** -WindowsAsyncService::TaskItem -***********************************************************************/ - WindowsAsyncService::TaskItem::TaskItem() - :semaphore(0) - { - } - - WindowsAsyncService::TaskItem::TaskItem(Semaphore* _semaphore, const Func& _proc) - :semaphore(_semaphore) - ,proc(_proc) - { - } - - WindowsAsyncService::TaskItem::~TaskItem() + class CachedCharMeasurerAllocator { - } - -/*********************************************************************** -WindowsAsyncService::DelayItem -***********************************************************************/ + DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr) - WindowsAsyncService::DelayItem::DelayItem(WindowsAsyncService* _service, const Func& _proc, bool _executeInMainThread, vint milliseconds) - :service(_service) - ,proc(_proc) - ,status(INativeDelay::Pending) - ,executeTime(DateTime::LocalTime().Forward(milliseconds)) - ,executeInMainThread(_executeInMainThread) - { - } + protected: + class GdiCharMeasurer : public text::CharMeasurer + { + protected: + Ptr font; + vint size; - WindowsAsyncService::DelayItem::~DelayItem() - { - } + Size MeasureInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) + { + if (renderTarget) + { + WindowsGDIRenderTarget* gdiRenderTarget = dynamic_cast(renderTarget); + WinDC* dc = gdiRenderTarget->GetDC(); + dc->SetFont(font); - INativeDelay::ExecuteStatus WindowsAsyncService::DelayItem::GetStatus() - { - return status; - } + vint count = text::UTF16SPFirst(codePoint.characters[0]) && text::UTF16SPSecond(codePoint.characters[1]) ? 2 : 1; + SIZE size = dc->MeasureBuffer(codePoint.characters, count, -1); + return Size(size.cx, size.cy); + } + else + { + return Size(0, 0); + } + } - bool WindowsAsyncService::DelayItem::Delay(vint milliseconds) - { - SPIN_LOCK(service->taskListLock) - { - if(status==INativeDelay::Pending) + vint MeasureWidthInternal(text::UnicodeCodePoint codePoint, IGuiGraphicsRenderTarget* renderTarget) { - executeTime=DateTime::LocalTime().Forward(milliseconds); - return true; + return MeasureInternal(codePoint, renderTarget).x; } - } - return false; - } - bool WindowsAsyncService::DelayItem::Cancel() - { - SPIN_LOCK(service->taskListLock) - { - if(status==INativeDelay::Pending) + vint GetRowHeightInternal(IGuiGraphicsRenderTarget* renderTarget) { - if(service->delayItems.Remove(this)) + if (renderTarget) { - status=INativeDelay::Canceled; - return true; + return MeasureInternal({ L' ' }, renderTarget).y; + } + else + { + return size; } } + public: + GdiCharMeasurer(Ptr _font, vint _size) + : text::CharMeasurer(_size) + , size(_size) + , font(_font) + { + } + }; + public: + Ptr CreateInternal(const FontProperties& value) + { + return Ptr(new GdiCharMeasurer(CachedFontAllocator::CreateGdiFont(value), value.size)); } - return false; - } + }; /*********************************************************************** -WindowsAsyncService +WindowsGDIResourceManager ***********************************************************************/ - WindowsAsyncService::WindowsAsyncService() - :mainThreadId(Thread::GetCurrentThreadId()) + class WindowsGDIImageFrameCache : public Object, public INativeImageFrameCache { - } + protected: + IWindowsGDIResourceManager* resourceManager = nullptr; + INativeImageFrame* cachedFrame = nullptr; + Ptr bitmap; + Ptr disabledBitmap; + public: + WindowsGDIImageFrameCache(IWindowsGDIResourceManager* _resourceManager) + :resourceManager(_resourceManager) + { + } - WindowsAsyncService::~WindowsAsyncService() - { - } + ~WindowsGDIImageFrameCache() + { + } - void WindowsAsyncService::ExecuteAsyncTasks() - { - DateTime now=DateTime::LocalTime(); - Array items; - List> executableDelayItems; + void OnAttach(INativeImageFrame* frame)override + { + cachedFrame = frame; + Size size = frame->GetSize(); + bitmap = Ptr(new WinBitmap(size.x, size.y, WinBitmap::vbb32Bits, true)); + + IWICBitmap* wicBitmap = GetWindowsGDIObjectProvider()->GetWICBitmap(frame); + WICRect rect; + rect.X = 0; + rect.Y = 0; + rect.Width = (INT)size.x; + rect.Height = (INT)size.y; + wicBitmap->CopyPixels(&rect, (UINT)bitmap->GetLineBytes(), (UINT)(bitmap->GetLineBytes() * size.y), (BYTE*)bitmap->GetScanLines()[0]); + + bitmap->BuildAlphaChannel(false); + } - SPIN_LOCK(taskListLock) + void OnDetach(INativeImageFrame* frame)override { - CopyFrom(items, taskItems); - taskItems.RemoveRange(0, items.Count()); - for(vint i=delayItems.Count()-1;i>=0;i--) - { - Ptr item=delayItems[i]; - if(now.filetime>=item->executeTime.filetime) - { - item->status=INativeDelay::Executing; - executableDelayItems.Add(item); - delayItems.RemoveAt(i); - } - } + resourceManager->DestroyBitmapCache(cachedFrame); } - for (auto item : items) + INativeImageFrame* GetFrame() { - item.proc(); - if(item.semaphore) - { - item.semaphore->Release(); - } + return cachedFrame; } - for (auto item : executableDelayItems) + + Ptr GetBitmap(bool enabled) { - if(item->executeInMainThread) + if (enabled) { - item->proc(); - item->status=INativeDelay::Executed; + return bitmap; } else { - InvokeAsync([=]() + if (!disabledBitmap) { - item->proc(); - item->status=INativeDelay::Executed; - }); + vint w = bitmap->GetWidth(); + vint h = bitmap->GetHeight(); + disabledBitmap = Ptr(new WinBitmap(w, h, WinBitmap::vbb32Bits, true)); + for (vint y = 0; y < h; y++) + { + BYTE* read = bitmap->GetScanLines()[y]; + BYTE* write = disabledBitmap->GetScanLines()[y]; + for (vint x = 0; x < w; x++) + { + BYTE g = (read[0] + read[1] + read[2]) / 6 + read[3] / 2; + write[0] = g; + write[1] = g; + write[2] = g; + write[3] = read[3]; + read += 4; + write += 4; + } + } + disabledBitmap->BuildAlphaChannel(false); + } + return disabledBitmap; } } - } + }; - bool WindowsAsyncService::IsInMainThread(INativeWindow* window) + class WindowsGDIResourceManager : public GuiGraphicsResourceManager, public IWindowsGDIResourceManager, public INativeControllerListener { - return Thread::GetCurrentThreadId()==mainThreadId; - } + typedef SortedList> ImageCacheList; + protected: + SortedList> renderTargets; + Ptr layoutProvider; + Ptr focusRectanglePen; + CachedPenAllocator pens; + CachedBrushAllocator brushes; + CachedFontAllocator fonts; + CachedCharMeasurerAllocator charMeasurers; + ImageCacheList imageCaches; + public: + WindowsGDIResourceManager() + { + layoutProvider = Ptr(new WindowsGDILayoutProvider); + } - void WindowsAsyncService::InvokeAsync(const Func& proc) - { - ThreadPoolLite::Queue(proc); - } + IGuiGraphicsRenderTarget* GetRenderTarget(INativeWindow* window)override + { + return GetWindowsGDIObjectProvider()->GetBindedRenderTarget(window); + } - void WindowsAsyncService::InvokeInMainThread(INativeWindow* window, const Func& proc) - { - SPIN_LOCK(taskListLock) + void RecreateRenderTarget(INativeWindow* window)override { - TaskItem item(0, proc); - taskItems.Add(item); } - } - bool WindowsAsyncService::InvokeInMainThreadAndWait(INativeWindow* window, const Func& proc, vint milliseconds) - { - Semaphore semaphore; - semaphore.Create(0, 1); + void ResizeRenderTarget(INativeWindow* window)override + { + } - SPIN_LOCK(taskListLock) + IGuiGraphicsLayoutProvider* GetLayoutProvider()override { - TaskItem item(&semaphore, proc); - taskItems.Add(item); + return layoutProvider.Obj(); } - if(milliseconds<0) + void NativeWindowCreated(INativeWindow* window)override { - return semaphore.Wait(); + auto renderTarget = Ptr(new WindowsGDIRenderTarget(window)); + renderTargets.Add(renderTarget); + GetWindowsGDIObjectProvider()->SetBindedRenderTarget(window, renderTarget.Obj()); } - else + + void NativeWindowDestroying(INativeWindow* window)override { - return semaphore.WaitForTime(milliseconds); + WindowsGDIRenderTarget* renderTarget = dynamic_cast(GetWindowsGDIObjectProvider()->GetBindedRenderTarget(window)); + GetWindowsGDIObjectProvider()->SetBindedRenderTarget(window, 0); + renderTargets.Remove(renderTarget); } - } - Ptr WindowsAsyncService::DelayExecute(const Func& proc, vint milliseconds) - { - Ptr delay; - SPIN_LOCK(taskListLock) + Ptr GetFocusRectanglePen()override { - delay=new DelayItem(this, proc, false, milliseconds); - delayItems.Add(delay); + if (!focusRectanglePen) + { + DWORD styleArray[] = { 1,1 }; + focusRectanglePen = Ptr(new WinPen(PS_USERSTYLE, PS_ENDCAP_FLAT, PS_JOIN_BEVEL, 1, RGB(255, 255, 255), (DWORD)(sizeof(styleArray) / sizeof(*styleArray)), styleArray)); + } + return focusRectanglePen; } - return delay; - } - Ptr WindowsAsyncService::DelayExecuteInMainThread(const Func& proc, vint milliseconds) - { - Ptr delay; - SPIN_LOCK(taskListLock) + Ptr CreateGdiPen(Color color)override { - delay=new DelayItem(this, proc, true, milliseconds); - delayItems.Add(delay); + return pens.Create(color); } - return delay; - } - } - } -} -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSCALLBACKSERVICE.CPP -***********************************************************************/ + void DestroyGdiPen(Color color)override + { + pens.Destroy(color); + } -namespace vl -{ - namespace presentation - { - namespace windows - { + Ptr CreateGdiBrush(Color color)override + { + return brushes.Create(color); + } -/*********************************************************************** -WindowsCallbackService -***********************************************************************/ + void DestroyGdiBrush(Color color)override + { + brushes.Destroy(color); + } - WindowsCallbackService::WindowsCallbackService() - { - } + Ptr CreateGdiFont(const FontProperties& fontProperties)override + { + return fonts.Create(fontProperties); + } - bool WindowsCallbackService::InstallListener(INativeControllerListener* listener) - { - if(listeners.Contains(listener)) + void DestroyGdiFont(const FontProperties& fontProperties)override { - return false; + fonts.Destroy(fontProperties); } - else + + Ptr CreateCharMeasurer(const FontProperties& fontProperties)override { - listeners.Add(listener); - return true; + return charMeasurers.Create(fontProperties); } - } - bool WindowsCallbackService::UninstallListener(INativeControllerListener* listener) - { - if(listeners.Contains(listener)) + void DestroyCharMeasurer(const FontProperties& fontProperties)override { - listeners.Remove(listener); - return true; + charMeasurers.Destroy(fontProperties); } - else + + Ptr GetBitmap(INativeImageFrame* frame, bool enabled)override { - return false; + Ptr cache = frame->GetCache(this); + if (cache) + { + return cache.Cast()->GetBitmap(enabled); + } + else + { + auto gdiCache = Ptr(new WindowsGDIImageFrameCache(this)); + if (frame->SetCache(this, gdiCache)) + { + return gdiCache->GetBitmap(enabled); + } + else + { + return 0; + } + } } - } - void WindowsCallbackService::InvokeGlobalTimer() - { - for(vint i=0;iGlobalTimer(); + WindowsGDIImageFrameCache* cache = frame->GetCache(this).Cast().Obj(); + imageCaches.Remove(cache); } + }; + } + + namespace elements_windows_gdi + { + IWindowsGDIResourceManager* windowsGDIResourceManager = nullptr; + + IWindowsGDIResourceManager* GetWindowsGDIResourceManager() + { + return windowsGDIResourceManager; } - void WindowsCallbackService::InvokeClipboardUpdated() + void SetWindowsGDIResourceManager(IWindowsGDIResourceManager* resourceManager) { - for(vint i=0;iClipboardUpdated(); - } + windowsGDIResourceManager = resourceManager; } - void WindowsCallbackService::InvokeNativeWindowCreated(INativeWindow* window) +/*********************************************************************** +OS Supporting +***********************************************************************/ + + IWindowsGDIObjectProvider* windowsGDIObjectProvider = nullptr; + + IWindowsGDIObjectProvider* GetWindowsGDIObjectProvider() { - for(vint i=0;iNativeWindowCreated(window); - } + return windowsGDIObjectProvider; } - void WindowsCallbackService::InvokeNativeWindowDestroyed(INativeWindow* window) + void SetWindowsGDIObjectProvider(IWindowsGDIObjectProvider* provider) { - for(vint i=0;iNativeWindowDestroying(window); - } + windowsGDIObjectProvider = provider; } } } } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSCLIPBOARDSERVICE.CPP +NativeMain +***********************************************************************/ + +using namespace vl::presentation; +using namespace vl::presentation::elements; + +extern void GuiApplicationMain(); + +void RendererMainGDI(GuiHostedController* hostedController) +{ + elements_windows_gdi::WindowsGDIResourceManager resourceManager; + elements_windows_gdi::SetWindowsGDIResourceManager(&resourceManager); + windows::GetWindowsNativeController()->CallbackService()->InstallListener(&resourceManager); + + auto hostedResourceManager = hostedController ? new GuiHostedGraphicsResourceManager(hostedController, &resourceManager) : nullptr; + SetGuiGraphicsResourceManager( + hostedResourceManager + ? hostedResourceManager + : static_cast(&resourceManager) + ); + + { + elements_windows_gdi::GuiFocusRectangleElementRenderer::Register(); + elements_windows_gdi::GuiSolidBorderElementRenderer::Register(); + elements_windows_gdi::Gui3DBorderElementRenderer::Register(); + elements_windows_gdi::Gui3DSplitterElementRenderer::Register(); + elements_windows_gdi::GuiSolidBackgroundElementRenderer::Register(); + elements_windows_gdi::GuiGradientBackgroundElementRenderer::Register(); + elements_windows_gdi::GuiInnerShadowElementRenderer::Register(); + elements_windows_gdi::GuiSolidLabelElementRenderer::Register(); + elements_windows_gdi::GuiImageFrameElementRenderer::Register(); + elements_windows_gdi::GuiPolygonElementRenderer::Register(); + elements_windows_gdi::GuiColorizedTextElementRenderer::Register(); + elements_windows_gdi::GuiGDIElementRenderer::Register(); + elements::GuiDocumentElement::GuiDocumentElementRenderer::Register(); + + if (hostedController) hostedController->Initialize(); + GuiApplicationMain(); + if (hostedController) hostedController->Finalize(); + } + + SetGuiGraphicsResourceManager(nullptr); + if (hostedResourceManager) delete hostedResourceManager; + + windows::GetWindowsNativeController()->CallbackService()->UninstallListener(&resourceManager); + elements_windows_gdi::SetWindowsGDIResourceManager(nullptr); +} + +/*********************************************************************** +.\SERVICESIMPL\WINDOWSCLIPBOARDSERVICE.CPP ***********************************************************************/ namespace vl @@ -13456,7 +13198,7 @@ WindowsClipboardWriter UINT width = 0; UINT height = 0; wicBitmap->GetSize(&width, &height); - auto bitmap = MakePtr((vint)width, (vint)height, WinBitmap::vbb32Bits, true); + auto bitmap = Ptr(new WinBitmap((vint)width, (vint)height, WinBitmap::vbb32Bits, true)); WICRect rect; rect.X = 0; @@ -13502,15 +13244,15 @@ WindowsClipboardService { if (!reader) { - if (!::OpenClipboard(ownerHandle)) return new WindowsFakeClipboardReader; + if (!::OpenClipboard(ownerHandle)) return Ptr(new WindowsFakeClipboardReader); reader = new WindowsClipboardReader(this); } - return reader; + return Ptr(reader); } Ptr WindowsClipboardService::WriteClipboard() { - return new WindowsClipboardWriter(this); + return Ptr(new WindowsClipboardWriter(this)); } void WindowsClipboardService::SetOwnerHandle(HWND handle) @@ -13531,7 +13273,7 @@ WindowsClipboardService } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSDIALOGSERVICE.CPP +.\SERVICESIMPL\WINDOWSDIALOGSERVICE.CPP ***********************************************************************/ #include @@ -13808,7 +13550,7 @@ WindowsDialogService } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSIMAGESERVICE.CPP +.\SERVICESIMPL\WINDOWSIMAGESERVICE.CPP ***********************************************************************/ #include @@ -13937,7 +13679,7 @@ WindowsImageFrame UINT width = 0; UINT height = 0; frameBitmap->GetSize(&width, &height); - auto bitmap = MakePtr((vint)width, (vint)height, WinBitmap::vbb32Bits, true); + auto bitmap = Ptr(new WinBitmap((vint)width, (vint)height, WinBitmap::vbb32Bits, true)); WICRect rect; rect.X = 0; @@ -14025,7 +13767,7 @@ WindowsImage HRESULT hr=bitmapDecoder->GetFrame((int)index, &frameDecode); if(SUCCEEDED(hr)) { - frame=new WindowsImageFrame(this, frameDecode); + frame=Ptr(new WindowsImageFrame(this, frameDecode)); frameDecode->Release(); } } @@ -14263,7 +14005,7 @@ WindowsBitmapImage :imageService(_imageService) ,formatType(_formatType) { - frame = new WindowsImageFrame(this, sourceBitmap); + frame = Ptr(new WindowsImageFrame(this, sourceBitmap)); } WindowsBitmapImage::~WindowsBitmapImage() @@ -14379,11 +14121,11 @@ WindowsImageService &bitmapDecoder); if(SUCCEEDED(hr)) { - return new WindowsImage(this, bitmapDecoder); + return Ptr(new WindowsImage(this, bitmapDecoder)); } else { - return 0; + return nullptr; } } @@ -14397,7 +14139,7 @@ WindowsImageService HRESULT hr=imagingFactory->CreateDecoderFromStream(stream, NULL, WICDecodeMetadataCacheOnDemand, &bitmapDecoder); if(SUCCEEDED(hr)) { - result=new WindowsImage(this, bitmapDecoder); + result=Ptr(new WindowsImage(this, bitmapDecoder)); } stream->Release(); } @@ -14426,7 +14168,7 @@ WindowsImageService HRESULT hr=imagingFactory->CreateBitmapFromHBITMAP(handle, NULL, WICBitmapUseAlpha, &bitmap); if(SUCCEEDED(hr)) { - Ptr image=new WindowsBitmapImage(this, bitmap, INativeImage::Bmp); + auto image=Ptr(new WindowsBitmapImage(this, bitmap, INativeImage::Bmp)); bitmap->Release(); return image; } @@ -14442,7 +14184,7 @@ WindowsImageService HRESULT hr=imagingFactory->CreateBitmapFromHICON(handle, &bitmap); if(SUCCEEDED(hr)) { - Ptr image=new WindowsBitmapImage(this, bitmap, INativeImage::Icon); + auto image=Ptr(new WindowsBitmapImage(this, bitmap, INativeImage::Icon)); bitmap->Release(); return image; } @@ -14461,9 +14203,14 @@ WindowsImageService Helper Functions ***********************************************************************/ + WindowsImageService* GetWindowsImageService() + { + return dynamic_cast(GetWindowsNativeController()->ImageService()); + } + IWICImagingFactory* GetWICImagingFactory() { - return dynamic_cast(GetCurrentController()->ImageService())->GetImagingFactory(); + return GetWindowsImageService()->GetImagingFactory(); } IWICBitmap* GetWICBitmap(INativeImageFrame* frame) @@ -14473,19 +14220,19 @@ Helper Functions Ptr CreateImageFromHBITMAP(HBITMAP handle) { - return dynamic_cast(GetCurrentController()->ImageService())->CreateImageFromHBITMAP(handle); + return GetWindowsImageService()->CreateImageFromHBITMAP(handle); } Ptr CreateImageFromHICON(HICON handle) { - return dynamic_cast(GetCurrentController()->ImageService())->CreateImageFromHICON(handle); + return GetWindowsImageService()->CreateImageFromHICON(handle); } } } } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSINPUTSERVICE.CPP +.\SERVICESIMPL\WINDOWSINPUTSERVICE.CPP ***********************************************************************/ namespace vl @@ -14615,12 +14362,31 @@ WindowsInputService vint index = keys.Keys().IndexOf(name); return index == -1 ? VKEY::KEY_UNKNOWN : keys.Values()[index]; } + + vint WindowsInputService::RegisterGlobalShortcutKey(bool ctrl, bool shift, bool alt, VKEY key) + { + UINT modifier = 0; + if (ctrl) modifier |= MOD_CONTROL; + if (shift) modifier |= MOD_SHIFT; + if (alt) modifier |= MOD_ALT; + + vint id = ++usedHotKeys; + BOOL result = RegisterHotKey(ownerHandle, (int)id, modifier, (UINT)key); + if (result == 0) return (vint)NativeGlobalShortcutKeyResult::Occupied; + return id; + } + + bool WindowsInputService::UnregisterGlobalShortcutKey(vint id) + { + BOOL result = UnregisterHotKey(ownerHandle, (int)id); + return result != 0; + } } } } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSRESOURCESERVICE.CPP +.\SERVICESIMPL\WINDOWSRESOURCESERVICE.CPP ***********************************************************************/ namespace vl @@ -14635,58 +14401,58 @@ WindowsCursor ***********************************************************************/ WindowsCursor::WindowsCursor(HCURSOR _handle) - :handle(_handle) - ,isSystemCursor(false) - ,systemCursorType(INativeCursor::Arrow) + : handle(_handle) + , isSystemCursor(false) + , systemCursorType(INativeCursor::Arrow) { } WindowsCursor::WindowsCursor(SystemCursorType type) :handle(NULL) - ,isSystemCursor(true) - ,systemCursorType(type) + , isSystemCursor(true) + , systemCursorType(type) { - LPWSTR id=NULL; - switch(type) + LPWSTR id = NULL; + switch (type) { case SmallWaiting: - id=IDC_APPSTARTING; + id = IDC_APPSTARTING; break; case LargeWaiting: - id=IDC_WAIT; + id = IDC_WAIT; break; case Arrow: - id=IDC_ARROW; + id = IDC_ARROW; break; case Cross: - id=IDC_CROSS; + id = IDC_CROSS; break; case Hand: - id=IDC_HAND; + id = IDC_HAND; break; case Help: - id=IDC_HELP; + id = IDC_HELP; break; case IBeam: - id=IDC_IBEAM; + id = IDC_IBEAM; break; case SizeAll: - id=IDC_SIZEALL; + id = IDC_SIZEALL; break; case SizeNESW: - id=IDC_SIZENESW; + id = IDC_SIZENESW; break; case SizeNS: - id=IDC_SIZENS; + id = IDC_SIZENS; break; case SizeNWSE: - id=IDC_SIZENWSE; + id = IDC_SIZENWSE; break; case SizeWE: - id=IDC_SIZEWE; + id = IDC_SIZEWE; break; } - handle=(HCURSOR)LoadImage(NULL, id, IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE|LR_SHARED); + handle = (HCURSOR)LoadImage(NULL, id, IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE | LR_SHARED); } bool WindowsCursor::IsSystemCursor() @@ -14712,33 +14478,33 @@ WindowsResourceService { { systemCursors.Resize(INativeCursor::SystemCursorCount); - for(vint i=0;i& fonts) + { + auto proc = [](const LOGFONTW* lpelf, const TEXTMETRICW* lpntm, DWORD fontType, LPARAM lParam) -> int + { + auto&& fonts = *(collections::List*)lParam; + fonts.Add(lpelf->lfFaceName); + return 1; + }; + + HDC refHdc = GetDC(NULL); + EnumFontFamilies(refHdc, NULL, proc, (LPARAM)&fonts); + ReleaseDC(NULL, refHdc); } } } } /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSSCREENSERVICE.CPP +.\SERVICESIMPL\WINDOWSSCREENSERVICE.CPP ***********************************************************************/ namespace vl @@ -14850,7 +14630,7 @@ WindowsScreenService MonitorEnumProcData* data=(MonitorEnumProcData*)dwData; if(data->currentScreen==data->screenService->screens.Count()) { - data->screenService->screens.Add(new WindowsScreen()); + data->screenService->screens.Add(Ptr(new WindowsScreen)); } data->screenService->screens[data->currentScreen]->monitor=hMonitor; data->currentScreen++; diff --git a/Import/GacUI.Windows.h b/Import/GacUI.Windows.h index 3edab95da..fc0a87f0e 100644 --- a/Import/GacUI.Windows.h +++ b/Import/GacUI.Windows.h @@ -11,7 +11,45 @@ DEVELOPER: Zihan Chen(vczh) #include "VlppRegex.h" /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSLAYOUTPROVIDERWINDOWSDIRECT2D.H +.\WINNATIVEDPIAWARENESS.H +***********************************************************************/ +/*********************************************************************** +Vczh Library++ 3.0 +Developer: Zihan Chen(vczh) +GacUI::Native Window::Windows Implementation + +Interfaces: +***********************************************************************/ + +#ifndef VCZH_PRESENTATION_WINDOWS_WINNATIVEDPIAWARENESS +#define VCZH_PRESENTATION_WINDOWS_WINNATIVEDPIAWARENESS + +#include +#include + +namespace vl +{ + namespace presentation + { + namespace windows + { +/*********************************************************************** +DPI Awareness Functions +***********************************************************************/ + + extern void InitDpiAwareness(bool dpiAware); + extern void DpiAwared_GetDpiForMonitor(HMONITOR monitor, UINT* x, UINT* y); + extern void DpiAwared_GetDpiForWindow(HWND handle, UINT* x, UINT* y); + extern void DpiAwared_AdjustWindowRect(LPRECT rect, HWND handle, UINT dpi); + extern int DpiAwared_GetSystemMetrics(int index, UINT dpi); + } + } +} + +#endif + +/*********************************************************************** +.\DIRECT2D\RENDERERS\GUIGRAPHICSLAYOUTPROVIDERWINDOWSDIRECT2D.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -43,7 +81,7 @@ namespace vl #endif /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSWINDOWSDIRECT2D.H +.\DIRECT2D\RENDERERS\GUIGRAPHICSWINDOWSDIRECT2D.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -65,6 +103,8 @@ namespace vl { namespace presentation { + class GuiHostedController; + namespace elements { @@ -124,7 +164,7 @@ Raw API Rendering Element Functionality ***********************************************************************/ - class IWindowsDirect2DRenderTarget : public elements::IGuiGraphicsRenderTarget + class IWindowsDirect2DRenderTarget : public elements::GuiGraphicsRenderTarget { public: virtual ID2D1RenderTarget* GetDirect2DRenderTarget()=0; @@ -188,12 +228,12 @@ OS Supporting } } -extern void RendererMainDirect2D(); +extern void RendererMainDirect2D(vl::presentation::GuiHostedController* hostedController); #endif /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSDIRECT2D\GUIGRAPHICSRENDERERSWINDOWSDIRECT2D.H +.\DIRECT2D\RENDERERS\GUIGRAPHICSRENDERERSWINDOWSDIRECT2D.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -421,8 +461,7 @@ Renderers ColorItemResource selectedFocused; ColorItemResource selectedUnfocused; - bool operator==(const ColorEntryResource& value){return false;} - bool operator!=(const ColorEntryResource& value){return true;} + bool operator==(const ColorEntryResource& value) const { return false; } }; typedef collections::Array ColorArray; @@ -473,77 +512,7 @@ Renderers #endif /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI.H -***********************************************************************/ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::Native Window::GDI Provider for Windows Implementation::Renderer - -Interfaces: -***********************************************************************/ - -#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI -#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI - - -namespace vl -{ - namespace presentation - { - namespace elements_windows_gdi - { - class WindowsGDILayoutProvider : public Object, public elements::IGuiGraphicsLayoutProvider - { - public: - Ptr CreateParagraph(const WString& text, elements::IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback)override; - }; - } - } -} - -#endif - -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\WINNATIVEDPIAWARENESS.H -***********************************************************************/ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::Native Window::Windows Implementation - -Interfaces: -***********************************************************************/ - -#ifndef VCZH_PRESENTATION_WINDOWS_WINNATIVEDPIAWARENESS -#define VCZH_PRESENTATION_WINDOWS_WINNATIVEDPIAWARENESS - -#include -#include - -namespace vl -{ - namespace presentation - { - namespace windows - { -/*********************************************************************** -DPI Awareness Functions -***********************************************************************/ - - extern void InitDpiAwareness(bool dpiAware); - extern void DpiAwared_GetDpiForMonitor(HMONITOR monitor, UINT* x, UINT* y); - extern void DpiAwared_GetDpiForWindow(HWND handle, UINT* x, UINT* y); - extern void DpiAwared_AdjustWindowRect(LPRECT rect, HWND handle, UINT dpi); - extern int DpiAwared_GetSystemMetrics(int index, UINT dpi); - } - } -} - -#endif - -/*********************************************************************** -.\NATIVEWINDOW\WINDOWS\GDI\WINGDI.H +.\GDI\WINGDI.H ***********************************************************************/ /******************************************************************************* Vczh Library++ 3.0 @@ -1018,7 +987,7 @@ Device Context #endif /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSWINDOWSGDI.H +.\GDI\RENDERERS\GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -1028,116 +997,29 @@ GacUI::Native Window::GDI Provider for Windows Implementation::Renderer Interfaces: ***********************************************************************/ -#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSWINDOWSGDI -#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSWINDOWSGDI +#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI +#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSLAYOUTPROVIDERWINDOWSGDI -#include namespace vl { namespace presentation { - namespace elements - { - -/*********************************************************************** -Raw API Rendering Element -***********************************************************************/ - - class GuiGDIElement; - - /// GDI Rendering event arguments. - struct GuiGDIElementEventArgs : compositions::GuiEventArgs - { - public: - /// The element that raised this event. - GuiGDIElement* element; - /// The device context to draw. The HDC handle can be retrived using dc->GetHandle(), but it is recommended that using the WinDC class directly. - windows::WinDC* dc; - /// The range for rendering. - Rect bounds; - - GuiGDIElementEventArgs(GuiGDIElement* _element, windows::WinDC* _dc, Rect _bounds) - :element(_element) - ,dc(_dc) - ,bounds(_bounds) - { - } - }; - - /// - /// Defines an element for customized rendering using GDI. - /// - class GuiGDIElement : public GuiElementBase - { - DEFINE_GUI_GRAPHICS_ELEMENT(GuiGDIElement, L"GDIElement") - protected: - GuiGDIElement(); - public: - /// Rendering event. - compositions::GuiGraphicsEvent Rendering; - }; - } - namespace elements_windows_gdi { - -/*********************************************************************** -Functionality -***********************************************************************/ - - class IWindowsGDIRenderTarget : public elements::IGuiGraphicsRenderTarget - { - public: - virtual windows::WinDC* GetDC()=0; - }; - - class IWindowsGDIResourceManager : public Interface - { - public: - virtual Ptr GetFocusRectanglePen()=0; - virtual Ptr CreateGdiPen(Color color)=0; - virtual void DestroyGdiPen(Color color)=0; - virtual Ptr CreateGdiBrush(Color color)=0; - virtual void DestroyGdiBrush(Color color)=0; - virtual Ptr CreateGdiFont(const FontProperties& fontProperties)=0; - virtual void DestroyGdiFont(const FontProperties& fontProperties)=0; - virtual Ptr CreateCharMeasurer(const FontProperties& fontProperties)=0; - virtual void DestroyCharMeasurer(const FontProperties& fontProperties)=0; - - virtual Ptr GetBitmap(INativeImageFrame* frame, bool enabled)=0; - virtual void DestroyBitmapCache(INativeImageFrame* frame)=0; - }; - - extern IWindowsGDIResourceManager* GetWindowsGDIResourceManager(); - -/*********************************************************************** -OS Supporting -***********************************************************************/ - - class IWindowsGDIObjectProvider : public Interface + class WindowsGDILayoutProvider : public Object, public elements::IGuiGraphicsLayoutProvider { public: - virtual windows::WinDC* GetNativeWindowDC(INativeWindow* window)=0; - virtual IWindowsGDIRenderTarget* GetBindedRenderTarget(INativeWindow* window)=0; - virtual void SetBindedRenderTarget(INativeWindow* window, IWindowsGDIRenderTarget* renderTarget)=0; - virtual IWICImagingFactory* GetWICImagingFactory()=0; - virtual IWICBitmap* GetWICBitmap(INativeImageFrame* frame)=0; - virtual IMLangFontLink2* GetMLangFontLink()=0; + Ptr CreateParagraph(const WString& text, elements::IGuiGraphicsRenderTarget* renderTarget, elements::IGuiGraphicsParagraphCallback* callback)override; }; - - extern IWindowsGDIObjectProvider* GetWindowsGDIObjectProvider(); - extern void SetWindowsGDIObjectProvider(IWindowsGDIObjectProvider* provider); } } } -extern void RendererMainGDI(); - #endif /*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSRENDERERSWINDOWSGDI.H +.\GDI\RENDERERS\GUIGRAPHICSUNISCRIBE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -1147,9 +1029,10 @@ GacUI::Native Window::GDI Provider for Windows Implementation::Renderer Interfaces: ***********************************************************************/ -#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI -#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI +#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSUNISCRIBE +#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSUNISCRIBE +#include namespace vl { @@ -1158,308 +1041,36 @@ namespace vl namespace elements_windows_gdi { using namespace elements; + using namespace collections; + using namespace windows; /*********************************************************************** -Renderers +UniscribeColor ***********************************************************************/ - class GuiFocusRectangleElementRenderer : public Object, public IGuiGraphicsRenderer + struct UniscribeColorRange { - DEFINE_GUI_GRAPHICS_RENDERER(GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget) - protected: - Ptr pen; + vint start; + vint end; - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; + UniscribeColorRange(){} + UniscribeColorRange(vint _start, vint _end):start(_start),end(_end){} + + GUI_DEFINE_COMPARE_OPERATORS(UniscribeColorRange) }; - class GuiSolidBorderElementRenderer : public Object, public IGuiGraphicsRenderer + struct UniscribeColor { - DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget) - protected: - Color oldColor; - Ptr pen; - Ptr brush; + Color fontColor; + Color backgroundColor; - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; + UniscribeColor(){} + UniscribeColor(Color _fontColor, Color _backgroundColor):fontColor(_fontColor),backgroundColor(_backgroundColor){} + + GUI_DEFINE_COMPARE_OPERATORS(UniscribeColor) }; - - class Gui3DBorderElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget) - protected: - Color oldColor1; - Color oldColor2; - Ptr pen1; - Ptr pen2; - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class Gui3DSplitterElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget) - protected: - Color oldColor1; - Color oldColor2; - Ptr pen1; - Ptr pen2; - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiSolidBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget) - protected: - Color oldColor; - Ptr pen; - Ptr brush; - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiGradientBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget) - protected: - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiInnerShadowElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget) - protected: - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - GuiInnerShadowElementRenderer(); - - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiSolidLabelElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget) - protected: - FontProperties oldFont; - Ptr font; - vint oldMaxWidth; - - void UpdateMinSize(); - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - GuiSolidLabelElementRenderer(); - - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiImageFrameElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget) - protected: - Ptr bitmap; - - void UpdateBitmap(); - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - GuiImageFrameElementRenderer(); - - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiPolygonElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget) - protected: - POINT* points; - vint pointCount; - Color oldPenColor; - Color oldBrushColor; - Ptr pen; - Ptr brush; - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - GuiPolygonElementRenderer(); - ~GuiPolygonElementRenderer(); - - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiColorizedTextElementRenderer : public Object, public IGuiGraphicsRenderer, protected GuiColorizedTextElement::ICallback - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget) - - public: - struct ColorItemResource - { - Color text; - Color background; - Ptr backgroundBrush; - }; - - struct ColorEntryResource - { - ColorItemResource normal; - ColorItemResource selectedFocused; - ColorItemResource selectedUnfocused; - - bool operator==(const ColorEntryResource& value){return false;} - bool operator!=(const ColorEntryResource& value){return true;} - }; - - typedef collections::Array ColorArray; - protected: - FontProperties oldFont; - Ptr font; - ColorArray colors; - Color oldCaretColor; - Ptr caretPen; - - void DestroyColors(); - void ColorChanged(); - void FontChanged(); - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - - class GuiGDIElementRenderer : public Object, public IGuiGraphicsRenderer - { - DEFINE_GUI_GRAPHICS_RENDERER(GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget) - - protected: - - void InitializeInternal(); - void FinalizeInternal(); - void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); - public: - GuiGDIElementRenderer(); - ~GuiGDIElementRenderer(); - - void Render(Rect bounds)override; - void OnElementStateChanged()override; - }; - } - } -} - -#endif - -/*********************************************************************** -.\GRAPHICSELEMENT\WINDOWSGDI\GUIGRAPHICSUNISCRIBE.H -***********************************************************************/ -/*********************************************************************** -Vczh Library++ 3.0 -Developer: Zihan Chen(vczh) -GacUI::Native Window::GDI Provider for Windows Implementation::Renderer - -Interfaces: -***********************************************************************/ - -#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSUNISCRIBE -#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSUNISCRIBE - -#include - -namespace vl -{ - namespace presentation - { - namespace elements_windows_gdi - { - using namespace elements; - using namespace collections; - using namespace windows; - -/*********************************************************************** -UniscribeColor -***********************************************************************/ - - struct UniscribeColorRange - { - vint start; - vint end; - - UniscribeColorRange(){} - UniscribeColorRange(vint _start, vint _end):start(_start),end(_end){} - - inline vint Compare(const UniscribeColorRange& value)const - { - vint result; - if ((result = start - value.start) != 0) return result; - if ((result = end - value.end) != 0) return result; - return 0; - } - GUI_DEFINE_COMPARE_OPERATORS(UniscribeColorRange) - }; - - struct UniscribeColor - { - Color fontColor; - Color backgroundColor; - - UniscribeColor(){} - UniscribeColor(Color _fontColor, Color _backgroundColor):fontColor(_fontColor),backgroundColor(_backgroundColor){} - - inline vint Compare(const UniscribeColor& value)const - { - vint result; - if ((result = fontColor.Compare(value.fontColor)) != 0) return result; - if ((result = backgroundColor.Compare(value.backgroundColor)) != 0) return result; - return 0; - } - GUI_DEFINE_COMPARE_OPERATORS(UniscribeColor) - }; - } - } + } + } namespace presentation { @@ -1744,114 +1355,377 @@ UniscribeParagraph #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSASYNCSERVICE.H +.\GDI\RENDERERS\GUIGRAPHICSWINDOWSGDI.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 Developer: Zihan Chen(vczh) -GacUI::Native Window::Windows Implementation +GacUI::Native Window::GDI Provider for Windows Implementation::Renderer Interfaces: ***********************************************************************/ -#ifndef VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSASYNCSERVICE -#define VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSASYNCSERVICE +#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSWINDOWSGDI +#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSWINDOWSGDI +#include namespace vl { namespace presentation { - namespace windows - { - class WindowsAsyncService : public INativeAsyncService - { - protected: - struct TaskItem - { - Semaphore* semaphore; - Func proc; + class GuiHostedController; - TaskItem(); - TaskItem(Semaphore* _semaphore, const Func& _proc); - ~TaskItem(); - }; + namespace elements + { + +/*********************************************************************** +Raw API Rendering Element +***********************************************************************/ - class DelayItem : public Object, public INativeDelay + class GuiGDIElement; + + /// GDI Rendering event arguments. + struct GuiGDIElementEventArgs : compositions::GuiEventArgs + { + public: + /// The element that raised this event. + GuiGDIElement* element; + /// The device context to draw. The HDC handle can be retrived using dc->GetHandle(), but it is recommended that using the WinDC class directly. + windows::WinDC* dc; + /// The range for rendering. + Rect bounds; + + GuiGDIElementEventArgs(GuiGDIElement* _element, windows::WinDC* _dc, Rect _bounds) + :element(_element) + ,dc(_dc) + ,bounds(_bounds) { - public: - DelayItem(WindowsAsyncService* _service, const Func& _proc, bool _executeInMainThread, vint milliseconds); - ~DelayItem(); - - WindowsAsyncService* service; - Func proc; - ExecuteStatus status; - DateTime executeTime; - bool executeInMainThread; - - ExecuteStatus GetStatus()override; - bool Delay(vint milliseconds)override; - bool Cancel()override; - }; + } + }; + + /// + /// Defines an element for customized rendering using GDI. + /// + class GuiGDIElement : public GuiElementBase + { + DEFINE_GUI_GRAPHICS_ELEMENT(GuiGDIElement, L"GDIElement") protected: - vint mainThreadId; - SpinLock taskListLock; - collections::List taskItems; - collections::List> delayItems; - public: - WindowsAsyncService(); - ~WindowsAsyncService(); - - void ExecuteAsyncTasks(); - bool IsInMainThread(INativeWindow* window)override; - void InvokeAsync(const Func& proc)override; - void InvokeInMainThread(INativeWindow* window, const Func& proc)override; - bool InvokeInMainThreadAndWait(INativeWindow* window, const Func& proc, vint milliseconds)override; - Ptr DelayExecute(const Func& proc, vint milliseconds)override; - Ptr DelayExecuteInMainThread(const Func& proc, vint milliseconds)override; + GuiGDIElement(); + public: + /// Rendering event. + compositions::GuiGraphicsEvent Rendering; + }; + } + + namespace elements_windows_gdi + { + +/*********************************************************************** +Functionality +***********************************************************************/ + + class IWindowsGDIRenderTarget : public elements::GuiGraphicsRenderTarget + { + public: + virtual windows::WinDC* GetDC()=0; + }; + + class IWindowsGDIResourceManager : public Interface + { + public: + virtual Ptr GetFocusRectanglePen()=0; + virtual Ptr CreateGdiPen(Color color)=0; + virtual void DestroyGdiPen(Color color)=0; + virtual Ptr CreateGdiBrush(Color color)=0; + virtual void DestroyGdiBrush(Color color)=0; + virtual Ptr CreateGdiFont(const FontProperties& fontProperties)=0; + virtual void DestroyGdiFont(const FontProperties& fontProperties)=0; + virtual Ptr CreateCharMeasurer(const FontProperties& fontProperties)=0; + virtual void DestroyCharMeasurer(const FontProperties& fontProperties)=0; + + virtual Ptr GetBitmap(INativeImageFrame* frame, bool enabled)=0; + virtual void DestroyBitmapCache(INativeImageFrame* frame)=0; + }; + + extern IWindowsGDIResourceManager* GetWindowsGDIResourceManager(); + +/*********************************************************************** +OS Supporting +***********************************************************************/ + + class IWindowsGDIObjectProvider : public Interface + { + public: + virtual windows::WinDC* GetNativeWindowDC(INativeWindow* window)=0; + virtual IWindowsGDIRenderTarget* GetBindedRenderTarget(INativeWindow* window)=0; + virtual void SetBindedRenderTarget(INativeWindow* window, IWindowsGDIRenderTarget* renderTarget)=0; + virtual IWICImagingFactory* GetWICImagingFactory()=0; + virtual IWICBitmap* GetWICBitmap(INativeImageFrame* frame)=0; + virtual IMLangFontLink2* GetMLangFontLink()=0; }; + + extern IWindowsGDIObjectProvider* GetWindowsGDIObjectProvider(); + extern void SetWindowsGDIObjectProvider(IWindowsGDIObjectProvider* provider); } } } +extern void RendererMainGDI(vl::presentation::GuiHostedController* hostedController); + #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSCALLBACKSERVICE.H +.\GDI\RENDERERS\GUIGRAPHICSRENDERERSWINDOWSGDI.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 Developer: Zihan Chen(vczh) -GacUI::Native Window::Windows Implementation +GacUI::Native Window::GDI Provider for Windows Implementation::Renderer Interfaces: ***********************************************************************/ -#ifndef VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSCALLBACKSERVICE -#define VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSCALLBACKSERVICE +#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI +#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI namespace vl { namespace presentation { - namespace windows + namespace elements_windows_gdi { - class WindowsCallbackService : public Object, public INativeCallbackService + using namespace elements; + +/*********************************************************************** +Renderers +***********************************************************************/ + + class GuiFocusRectangleElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget) + protected: + Ptr pen; + Ptr brush; + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiSolidBorderElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget) + protected: + Color oldColor; + Ptr pen; + Ptr brush; + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class Gui3DBorderElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget) + protected: + Color oldColor1; + Color oldColor2; + Ptr pen1; + Ptr pen2; + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class Gui3DSplitterElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget) + protected: + Color oldColor1; + Color oldColor2; + Ptr pen1; + Ptr pen2; + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiSolidBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget) + protected: + Color oldColor; + Ptr pen; + Ptr brush; + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiGradientBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget) + protected: + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiInnerShadowElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget) + protected: + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + GuiInnerShadowElementRenderer(); + + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiSolidLabelElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget) + protected: + FontProperties oldFont; + Ptr font; + vint oldMaxWidth; + + void UpdateMinSize(); + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + GuiSolidLabelElementRenderer(); + + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiImageFrameElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget) + protected: + Ptr bitmap; + + void UpdateBitmap(); + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + GuiImageFrameElementRenderer(); + + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiPolygonElementRenderer : public Object, public IGuiGraphicsRenderer { + DEFINE_GUI_GRAPHICS_RENDERER(GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget) protected: - collections::List listeners; + POINT* points; + vint pointCount; + Color oldPenColor; + Color oldBrushColor; + Ptr pen; + Ptr brush; + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); public: - WindowsCallbackService(); + GuiPolygonElementRenderer(); + ~GuiPolygonElementRenderer(); - bool InstallListener(INativeControllerListener* listener)override; - bool UninstallListener(INativeControllerListener* listener)override; + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiColorizedTextElementRenderer : public Object, public IGuiGraphicsRenderer, protected GuiColorizedTextElement::ICallback + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget) + + public: + struct ColorItemResource + { + Color text; + Color background; + Ptr backgroundBrush; + }; + + struct ColorEntryResource + { + ColorItemResource normal; + ColorItemResource selectedFocused; + ColorItemResource selectedUnfocused; - void InvokeGlobalTimer(); - void InvokeClipboardUpdated(); - void InvokeNativeWindowCreated(INativeWindow* window); - void InvokeNativeWindowDestroyed(INativeWindow* window); + bool operator==(const ColorEntryResource& value){return false;} + bool operator!=(const ColorEntryResource& value){return true;} + }; + + typedef collections::Array ColorArray; + protected: + FontProperties oldFont; + Ptr font; + ColorArray colors; + Color oldCaretColor; + Ptr caretPen; + + void DestroyColors(); + void ColorChanged(); + void FontChanged(); + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + void Render(Rect bounds)override; + void OnElementStateChanged()override; + }; + + class GuiGDIElementRenderer : public Object, public IGuiGraphicsRenderer + { + DEFINE_GUI_GRAPHICS_RENDERER(GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget) + + protected: + + void InitializeInternal(); + void FinalizeInternal(); + void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget); + public: + GuiGDIElementRenderer(); + ~GuiGDIElementRenderer(); + + void Render(Rect bounds)override; + void OnElementStateChanged()override; }; } } @@ -1860,7 +1734,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSCLIPBOARDSERVICE.H +.\SERVICESIMPL\WINDOWSCLIPBOARDSERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -1873,7 +1747,6 @@ GacUI::Native Window::Windows Implementation #ifndef VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSCLIPBOARDSERVICE #define VCZH_PRESENTATION_WINDOWS_SERVICESIMPL_WINDOWSCLIPBOARDSERVICE - namespace vl { namespace presentation @@ -1951,7 +1824,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSDIALOGSERVICE.H +.\SERVICESIMPL\WINDOWSDIALOGSERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -1992,7 +1865,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSIMAGESERVICE.H +.\SERVICESIMPL\WINDOWSIMAGESERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2095,7 +1968,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\WINNATIVEWINDOW.H +.\WINNATIVEWINDOW.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2138,11 +2011,12 @@ Windows Platform Native Controller }; extern void SetWindowDefaultIcon(UINT resourceId); - extern INativeController* CreateWindowsNativeController(HINSTANCE hInstance); + extern void StartWindowsNativeController(HINSTANCE hInstance); + extern INativeController* GetWindowsNativeController(); extern IWindowsForm* GetWindowsFormFromHandle(HWND hwnd); extern IWindowsForm* GetWindowsForm(INativeWindow* window); extern void GetAllCreatedWindows(collections::List& windows, bool rootWindowOnly); - extern void DestroyWindowsNativeController(INativeController* controller); + extern void StopWindowsNativeController(); extern void EnableCrossKernelCrashing(); } } @@ -2151,7 +2025,7 @@ Windows Platform Native Controller #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\DIRECT2D\WINDIRECT2DAPPLICATION.H +.\DIRECT2D\WINDIRECT2DAPPLICATION.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2183,7 +2057,7 @@ extern int WinMainDirect2D(HINSTANCE hInstance, void(*RendererMain)()); #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\GDI\WINGDIAPPLICATION.H +.\GDI\WINGDIAPPLICATION.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2213,7 +2087,7 @@ extern int WinMainGDI(HINSTANCE hInstance, void(*RendererMain)()); #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSINPUTSERVICE.H +.\SERVICESIMPL\WINDOWSINPUTSERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2238,6 +2112,7 @@ namespace vl protected: HWND ownerHandle; bool isTimerEnabled; + vint usedHotKeys = (vint)NativeGlobalShortcutKeyResult::ValidIdBegins; collections::Array keyNames; collections::Dictionary keys; @@ -2255,6 +2130,8 @@ namespace vl bool IsKeyToggled(VKEY code)override; WString GetKeyName(VKEY code)override; VKEY GetKey(const WString& name)override; + vint RegisterGlobalShortcutKey(bool ctrl, bool shift, bool alt, VKEY key)override; + bool UnregisterGlobalShortcutKey(vint id)override; }; extern bool WinIsKeyPressing(VKEY code); @@ -2266,7 +2143,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSRESOURCESERVICE.H +.\SERVICESIMPL\WINDOWSRESOURCESERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 @@ -2313,6 +2190,7 @@ namespace vl INativeCursor* GetDefaultSystemCursor()override; FontProperties GetDefaultFont()override; void SetDefaultFont(const FontProperties& value)override; + void EnumerateFonts(collections::List& fonts)override; }; } } @@ -2321,7 +2199,7 @@ namespace vl #endif /*********************************************************************** -.\NATIVEWINDOW\WINDOWS\SERVICESIMPL\WINDOWSSCREENSERVICE.H +.\SERVICESIMPL\WINDOWSSCREENSERVICE.H ***********************************************************************/ /*********************************************************************** Vczh Library++ 3.0 diff --git a/Import/GacUI.cpp b/Import/GacUI.cpp index 233cbf34e..ff57eeb0a 100644 --- a/Import/GacUI.cpp +++ b/Import/GacUI.cpp @@ -13,6 +13,22 @@ DEVELOPER: Zihan Chen(vczh) namespace vl { + namespace presentation + { + namespace helper_types + { + +/*********************************************************************** +LocalizedStrings +***********************************************************************/ + + WString LocalizedStrings::FirstOrEmpty(const collections::LazyList& formats) + { + return formats.First(WString::Empty); + } + } + } + namespace reflection { namespace description @@ -48,11 +64,6 @@ Serialization (Color) return true; } - IBoxedValue::CompareResult TypedValueSerializerProvider::Compare(const presentation::Color& a, const presentation::Color& b) - { - return TypedValueSerializerProvider::Compare(a.value, b.value); - } - /*********************************************************************** Serialization (DocumentFontSize) ***********************************************************************/ @@ -74,11 +85,6 @@ Serialization (DocumentFontSize) return true; } - IBoxedValue::CompareResult TypedValueSerializerProvider::Compare(const presentation::DocumentFontSize& a, const presentation::DocumentFontSize& b) - { - return TypedValueSerializerProvider::Compare(a.ToString(), b.ToString()); - } - /*********************************************************************** Serialization (GlobalStringKey) ***********************************************************************/ @@ -100,11 +106,6 @@ Serialization (GlobalStringKey) return true; } - IBoxedValue::CompareResult TypedValueSerializerProvider::Compare(const presentation::GlobalStringKey& a, const presentation::GlobalStringKey& b) - { - return TypedValueSerializerProvider::Compare(a.ToString(), b.ToString()); - } - /*********************************************************************** External Functions (Basic) ***********************************************************************/ @@ -165,7 +166,7 @@ External Functions (Compositions) } /*********************************************************************** -.\CONTROLS\GUIAPPLICATION.CPP +.\APPLICATION\CONTROLS\GUIAPPLICATION.CPP ***********************************************************************/ extern void GuiMain(); @@ -174,6 +175,9 @@ namespace vl { namespace presentation { + extern void GuiInitializeUtilities(); + extern void GuiFinalizeUtilities(); + namespace controls { using namespace collections; @@ -181,6 +185,52 @@ namespace vl using namespace theme; using namespace description; +/*********************************************************************** +GuiGlobalShortcutKeyManager +***********************************************************************/ + + class GuiGlobalShortcutKeyManager : public GuiShortcutKeyManager + { + protected: + Dictionary idToItemsMap; + Dictionary itemToIdsMap; + + bool IsGlobal() override + { + return true; + } + + bool OnCreatingShortcut(GuiShortcutKeyItem* item) override + { + bool ctrl, shift, alt; + VKEY key; + item->ReadKeyConfig(ctrl, shift, alt, key); + + vint id = GetCurrentController()->InputService()->RegisterGlobalShortcutKey(ctrl, shift, alt, key); + if (id < (vint)NativeGlobalShortcutKeyResult::ValidIdBegins) return false; + + idToItemsMap.Add(id, item); + itemToIdsMap.Add(item, id); + return true; + } + + void OnDestroyingShortcut(GuiShortcutKeyItem* item) override + { + vint id = itemToIdsMap[item]; + idToItemsMap.Remove(id); + itemToIdsMap.Remove(item); + GetCurrentController()->InputService()->UnregisterGlobalShortcutKey(id); + } + + public: + + GuiShortcutKeyItem* TryGetItemFromId(vint id) + { + vint index = idToItemsMap.Keys().IndexOf(id); + return index == -1 ? nullptr : idToItemsMap.Values()[index]; + } + }; + /*********************************************************************** GuiApplication ***********************************************************************/ @@ -207,9 +257,19 @@ GuiApplication } } + void GuiApplication::GlobalShortcutKeyActivated(vint id) + { + auto manager = dynamic_cast(globalShortcutKeyManager.Obj()); + if (auto item = manager->TryGetItemFromId(id)) + { + item->Execute(); + } + } + GuiApplication::GuiApplication() :locale(Locale::UserDefault()) { + globalShortcutKeyManager = Ptr(new GuiGlobalShortcutKeyManager); GetCurrentController()->CallbackService()->InstallListener(this); } @@ -230,12 +290,47 @@ GuiApplication void GuiApplication::RegisterWindow(GuiWindow* window) { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::controls::GuiApplication::RegisterWindow(GuiWindow*)#" + CHECK_ERROR(!window->registeredInApplication, ERROR_MESSAGE_PREFIX L"The window has been registered"); + window->registeredInApplication = true; windows.Add(window); + if (auto nativeWindow = window->GetNativeWindow()) + { + windowMap.Add(nativeWindow, window); + } +#undef ERROR_MESSAGE_PREFIX } void GuiApplication::UnregisterWindow(GuiWindow* window) { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::controls::GuiApplication::UnregisterWindow(GuiWindow*)#" + CHECK_ERROR(window->registeredInApplication, ERROR_MESSAGE_PREFIX L"The window has not been registered"); + window->registeredInApplication = false; + if (auto nativeWindow = window->GetNativeWindow()) + { + windowMap.Remove(nativeWindow); + } windows.Remove(window); +#undef ERROR_MESSAGE_PREFIX + } + + void GuiApplication::NotifyNativeWindowChanged(GuiControlHost* controlHost, INativeWindow* previousNativeWindow) + { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::controls::GuiApplication::NotifyNativeWindowChanged(GuiControlsHost*, INativeWindow*)#" + if (auto window = dynamic_cast(controlHost)) + { + if (!window->registeredInApplication) return; + if (previousNativeWindow) + { + CHECK_ERROR(windowMap[previousNativeWindow] == window, ERROR_MESSAGE_PREFIX L"Unpaired arguments."); + windowMap.Remove(previousNativeWindow); + } + if (auto nativeWindow = window->GetNativeWindow()) + { + windowMap.Add(nativeWindow, window); + } + } +#undef ERROR_MESSAGE_PREFIX } void GuiApplication::RegisterPopupOpened(GuiPopup* popup) @@ -292,6 +387,11 @@ GuiApplication } } + bool GuiApplication::RunOneCycle() + { + return GetCurrentController()->WindowService()->RunOneCycle(); + } + GuiWindow* GuiApplication::GetMainWindow() { return mainWindow; @@ -319,6 +419,12 @@ GuiApplication return 0; } + GuiWindow* GuiApplication::GetWindowFromNative(INativeWindow* nativeWindow) + { + vint index = windowMap.Keys().IndexOf(nativeWindow); + return index == -1 ? nullptr : windowMap.Values()[index]; + } + void GuiApplication::ShowTooltip(GuiControl* owner, GuiControl* tooltip, vint preferredContentWidth, Point location) { GuiWindow* ownerWindow = dynamic_cast(owner->GetRelatedControlHost()); @@ -375,6 +481,11 @@ GuiApplication return sharedTooltipOwner; } + compositions::IGuiShortcutKeyManager* GuiApplication::GetGlobalShortcutKeyManager() + { + return globalShortcutKeyManager.Obj(); + } + WString GuiApplication::GetExecutablePath() { return GetCurrentController()->GetExecutablePath(); @@ -439,150 +550,17 @@ GuiApplication } } -/*********************************************************************** -GuiPluginManager -***********************************************************************/ - - class GuiPluginManager : public Object, public IGuiPluginManager - { - protected: - List> plugins; - bool loaded; - public: - GuiPluginManager() - :loaded(false) - { - } - - ~GuiPluginManager() - { - Unload(); - } - - void AddPlugin(Ptr plugin)override - { - CHECK_ERROR(!loaded, L"GuiPluginManager::AddPlugin(Ptr)#Load function has already been executed."); - auto name = plugin->GetName(); - if (name != L"") - { - for (auto plugin : plugins) - { - CHECK_ERROR(plugin->GetName() != name, L"GuiPluginManager::AddPlugin(Ptr)#Duplicated plugin name."); - } - } - plugins.Add(plugin); - } - - void Load()override - { - CHECK_ERROR(!loaded, L"GuiPluginManager::AddPlugin(Ptr)#Load function has already been executed."); - loaded=true; - - SortedList loaded; - Group loading; - Dictionary> pluginsToLoad; - for (auto plugin : plugins) - { - auto name = plugin->GetName(); - pluginsToLoad.Add(name, plugin); - List dependencies; - plugin->GetDependencies(dependencies); - for (auto dependency : dependencies) - { - loading.Add(name, dependency); - } - } - - while (pluginsToLoad.Count() > 0) - { - vint count = pluginsToLoad.Count(); - { - for (auto [name, index] : indexed(pluginsToLoad.Keys())) - { - if (!loading.Keys().Contains(name)) - { - for (vint i = loading.Count() - 1; i >= 0; i--) - { - loading.Remove(loading.Keys()[i], name); - } - loaded.Add(name); - - auto plugin = pluginsToLoad.Values()[index]; - pluginsToLoad.Remove(name); - plugin->Load(); - break; - } - } - } - if (count == pluginsToLoad.Count()) - { - WString message; - for (auto plugin : pluginsToLoad.Values()) - { - message += L"Cannot load plugin \"" + plugin->GetName() + L"\" because part of its dependencies are not ready:"; - List dependencies; - plugin->GetDependencies(dependencies); - bool first = true; - for (auto dependency : dependencies) - { - if (!loaded.Contains(dependency)) - { - message += L" \"" + dependency + L"\";"; - } - } - message += L"\r\n"; - } - throw Exception(message); - } - } - } - - void Unload()override - { - CHECK_ERROR(loaded, L"GuiPluginManager::AddPlugin(Ptr)#Load function has not been executed."); - loaded=false; - for (auto plugin : plugins) - { - plugin->Unload(); - } - } - - bool IsLoaded()override - { - return loaded; - } - }; - /*********************************************************************** Helpers ***********************************************************************/ GuiApplication* application=0; - IGuiPluginManager* pluginManager=0; GuiApplication* GetApplication() { return application; } - IGuiPluginManager* GetPluginManager() - { - if(!pluginManager) - { - pluginManager=new GuiPluginManager; - } - return pluginManager; - } - - void DestroyPluginManager() - { - if(pluginManager) - { - delete pluginManager; - pluginManager=0; - } - } - /*********************************************************************** GuiApplicationMain ***********************************************************************/ @@ -638,9 +616,11 @@ GuiApplicationMain { GuiApplication app; application = &app; - IAsyncScheduler::RegisterSchedulerForCurrentThread(new UIThreadAsyncScheduler); - IAsyncScheduler::RegisterDefaultScheduler(new OtherThreadAsyncScheduler); + IAsyncScheduler::RegisterSchedulerForCurrentThread(Ptr(new UIThreadAsyncScheduler)); + IAsyncScheduler::RegisterDefaultScheduler(Ptr(new OtherThreadAsyncScheduler)); + GuiInitializeUtilities(); GuiMain(); + GuiFinalizeUtilities(); IAsyncScheduler::UnregisterDefaultScheduler(); IAsyncScheduler::UnregisterSchedulerForCurrentThread(); } @@ -651,7 +631,7 @@ GuiApplicationMain ThreadLocalStorage::DisposeStorages(); FinalizeGlobalStorage(); #ifndef VCZH_DEBUG_NO_REFLECTION - DestroyGlobalTypeManager(); + ResetGlobalTypeManager(); #endif } } @@ -664,7 +644,7 @@ void GuiApplicationMain() } /*********************************************************************** -.\CONTROLS\GUIBASICCONTROLS.CPP +.\APPLICATION\CONTROLS\GUIBASICCONTROLS.CPP ***********************************************************************/ namespace vl @@ -709,7 +689,7 @@ GuiControl { if (!disposedFlag) { - disposedFlag = new GuiDisposedFlag(this); + disposedFlag = Ptr(new GuiDisposedFlag(this)); } return disposedFlag; } @@ -983,7 +963,7 @@ GuiControl void GuiControl::OnActiveAlt() { - SetFocus(); + SetFocused(); } bool GuiControl::IsTabEnabled() @@ -1075,10 +1055,9 @@ GuiControl } } - void GuiControl::InvokeOrDelayIfRendering(Func proc) + void GuiControl::TryDelayExecuteIfNotDeleted(Func proc) { - auto controlHost = GetRelatedControlHost(); - if (controlHost && boundsComposition->IsRendering()) + if (auto controlHost = GetRelatedControlHost()) { auto flag = GetDisposedFlag(); GetApplication()->InvokeInMainThread(controlHost, [=]() @@ -1205,6 +1184,17 @@ GuiControl return isFocused; } + void GuiControl::SetFocused() + { + if (focusableComposition) + { + if (auto host = focusableComposition->GetRelatedGraphicsHost()) + { + host->SetFocus(focusableComposition); + } + } + } + bool GuiControl::GetAcceptTabInput() { return acceptTabInput; @@ -1340,17 +1330,6 @@ GuiControl } } - void GuiControl::SetFocus() - { - if (focusableComposition) - { - if (auto host = focusableComposition->GetRelatedGraphicsHost()) - { - host->SetFocus(focusableComposition); - } - } - } - description::Value GuiControl::GetTag() { return tag; @@ -1470,7 +1449,7 @@ GuiCustomControl } /*********************************************************************** -.\CONTROLS\GUIBUTTONCONTROLS.CPP +.\APPLICATION\CONTROLS\GUIINSTANCEROOTOBJECT.CPP ***********************************************************************/ namespace vl @@ -1479,8942 +1458,8367 @@ namespace vl { namespace controls { - using namespace elements; - using namespace compositions; - using namespace collections; using namespace reflection::description; + using namespace compositions; /*********************************************************************** -GuiButton +GuiComponent ***********************************************************************/ - - void GuiButton::BeforeControlTemplateUninstalled_() + + GuiComponent::GuiComponent() { } - void GuiButton::AfterControlTemplateInstalled_(bool initialize) + GuiComponent::~GuiComponent() { - TypedControlTemplateObject(true)->SetState(controlState); } - void GuiButton::OnParentLineChanged() + void GuiComponent::Attach(GuiInstanceRootObject* rootObject) { - GuiControl::OnParentLineChanged(); - if(GetRelatedControlHost()==0) - { - mousePressing=false; - mouseHoving=false; - UpdateControlState(); - } } - void GuiButton::OnActiveAlt() + void GuiComponent::Detach(GuiInstanceRootObject* rootObject) { - if (autoFocus) - { - GuiControl::OnActiveAlt(); - } - Clicked.Execute(GetNotifyEventArguments()); } - bool GuiButton::IsTabAvailable() - { - return autoFocus && GuiControl::IsTabAvailable(); - } +/*********************************************************************** +GuiInstanceRootObject +***********************************************************************/ - void GuiButton::UpdateControlState() + class RootObjectTimerCallback : public Object, public IGuiGraphicsTimerCallback { - auto newControlState = ButtonState::Normal; - if (keyPressing) - { - newControlState = ButtonState::Pressed; - } - else if (mousePressing) + public: + GuiControlHost* controlHost; + GuiInstanceRootObject* rootObject; + bool alive = true; + + RootObjectTimerCallback(GuiInstanceRootObject* _rootObject, GuiControlHost* _controlHost) + :rootObject(_rootObject) + , controlHost(_controlHost) { - if (mouseHoving) - { - newControlState = ButtonState::Pressed; - } - else - { - newControlState = ButtonState::Active; - } } - else + + bool Play()override { - if (mouseHoving) - { - newControlState = ButtonState::Active; - } - else + if (alive) { - newControlState = ButtonState::Normal; + for (vint i = rootObject->runningAnimations.Count() - 1; i >= 0; i--) + { + auto animation = rootObject->runningAnimations[i]; + animation->Run(); + if (animation->GetStopped()) + { + rootObject->runningAnimations.RemoveAt(i); + } + } + + if (rootObject->runningAnimations.Count() == 0) + { + rootObject->UninstallTimerCallback(nullptr); + return false; + } } + return alive; } - if (controlState != newControlState) + }; + + void GuiInstanceRootObject::InstallTimerCallback(controls::GuiControlHost* controlHost) + { + if (!timerCallback) { - controlState = newControlState; - TypedControlTemplateObject(true)->SetState(controlState); + timerCallback = Ptr(new RootObjectTimerCallback(this, controlHost)); + controlHost->GetTimerManager()->AddCallback(timerCallback); } } - void GuiButton::CheckAndClick(compositions::GuiEventArgs& arguments) + bool GuiInstanceRootObject::UninstallTimerCallback(controls::GuiControlHost* controlHost) { - auto eventSource = arguments.eventSource->GetAssociatedControl(); - while (eventSource && eventSource != this) + if (timerCallback && timerCallback->controlHost != controlHost) { - if (eventSource->GetFocusableComposition()) - { - return; - } - eventSource = eventSource->GetParent(); + timerCallback->alive = false; + timerCallback = nullptr; + return true; } - Clicked.Execute(GetNotifyEventArguments()); + return false; } - void GuiButton::OnLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + void GuiInstanceRootObject::OnControlHostForInstanceChanged() { - if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) + auto controlHost = GetControlHostForInstance(); + if (UninstallTimerCallback(controlHost)) { - mousePressing = true; - if (autoFocus) - { - SetFocus(); - } - UpdateControlState(); - if (!clickOnMouseUp) + for (auto animation : runningAnimations) { - CheckAndClick(arguments); + animation->Pause(); } } - } - void GuiButton::OnLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) - { - mousePressing = false; - UpdateControlState(); - } - if (GetVisuallyEnabled()) + if (controlHost) { - if (mouseHoving && clickOnMouseUp) + InstallTimerCallback(controlHost); + for (auto animation : runningAnimations) { - CheckAndClick(arguments); + animation->Resume(); } + StartPendingAnimations(); } } - void GuiButton::OnMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiInstanceRootObject::StartPendingAnimations() { - if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) + for (auto animation : pendingAnimations) { - mouseHoving = true; - UpdateControlState(); + animation->Start(); } + + CopyFrom(runningAnimations, pendingAnimations, true); + pendingAnimations.Clear(); } - void GuiButton::OnMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiInstanceRootObject::GuiInstanceRootObject() { - if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) - { - mouseHoving = false; - UpdateControlState(); - } } - - void GuiButton::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + + GuiInstanceRootObject::~GuiInstanceRootObject() { - if (arguments.eventSource == focusableComposition && !arguments.ctrl && !arguments.shift && !arguments.alt) - { - switch (arguments.code) - { - case VKEY::KEY_RETURN: - CheckAndClick(arguments); - arguments.handled = true; - break; - case VKEY::KEY_SPACE: - if (!arguments.autoRepeatKeyDown) - { - keyPressing = true; - UpdateControlState(); - } - arguments.handled = true; - break; - default:; - } - } + UninstallTimerCallback(nullptr); } - void GuiButton::OnKeyUp(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + void GuiInstanceRootObject::FinalizeInstance() { - if (arguments.eventSource == focusableComposition && !arguments.ctrl && !arguments.shift && !arguments.alt) + if (!finalized) { - switch (arguments.code) + finalized = true; + + for (auto subscription : subscriptions) { - case VKEY::KEY_SPACE: - if (keyPressing) - { - keyPressing = false; - UpdateControlState(); - CheckAndClick(arguments); - } - arguments.handled = true; - break; - default:; + subscription->Close(); + } + for (auto component : components) + { + component->Detach(this); } - } - } - void GuiButton::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (keyPressing) - { - keyPressing = false; - UpdateControlState(); + subscriptions.Clear(); + for (vint i = 0; iGetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiButton::OnLeftButtonDown); - boundsComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiButton::OnLeftButtonUp); - boundsComposition->GetEventReceiver()->mouseEnter.AttachMethod(this, &GuiButton::OnMouseEnter); - boundsComposition->GetEventReceiver()->mouseLeave.AttachMethod(this, &GuiButton::OnMouseLeave); - boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiButton::OnKeyDown); - boundsComposition->GetEventReceiver()->keyUp.AttachMethod(this, &GuiButton::OnKeyUp); - boundsComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiButton::OnLostFocus); - } - - GuiButton::~GuiButton() + bool GuiInstanceRootObject::IsFinalized() { + return finalized; } - bool GuiButton::GetClickOnMouseUp() + void GuiInstanceRootObject::FinalizeInstanceRecursively(templates::GuiTemplate* thisObject) { - return clickOnMouseUp; + if (!finalized) + { + NotifyFinalizeInstance(thisObject); + } } - void GuiButton::SetClickOnMouseUp(bool value) + void GuiInstanceRootObject::FinalizeInstanceRecursively(GuiCustomControl* thisObject) { - clickOnMouseUp=value; + if (!finalized) + { + NotifyFinalizeInstance(thisObject); + } } - bool GuiButton::GetAutoFocus() + void GuiInstanceRootObject::FinalizeInstanceRecursively(GuiControlHost* thisObject) { - return autoFocus; + if (!finalized) + { + NotifyFinalizeInstance(thisObject); + } } - void GuiButton::SetAutoFocus(bool value) + void GuiInstanceRootObject::FinalizeGeneralInstance(GuiInstanceRootObject* thisObject) { - autoFocus = value; } - bool GuiButton::GetIgnoreChildControlMouseEvents() + void GuiInstanceRootObject::SetResourceResolver(Ptr resolver) { - return ignoreChildControlMouseEvents; + resourceResolver = resolver; } - void GuiButton::SetIgnoreChildControlMouseEvents(bool value) + Ptr GuiInstanceRootObject::ResolveResource(const WString& protocol, const WString& path, bool ensureExist) { - ignoreChildControlMouseEvents = value; + Ptr object; + if (resourceResolver) + { + object = resourceResolver->ResolveResource(protocol, path); + } + if (ensureExist && !object) + { + throw ArgumentException(L"Resource \"" + protocol + L"://" + path + L"\" does not exist."); + } + return object; } -/*********************************************************************** -GuiSelectableButton::GroupController -***********************************************************************/ - - GuiSelectableButton::GroupController::GroupController() + Ptr GuiInstanceRootObject::AddSubscription(Ptr subscription) { + CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddSubscription(Ptr)#Cannot add subscription after finalizing."); + if (subscriptions.Contains(subscription.Obj())) + { + return nullptr; + } + else + { + subscriptions.Add(subscription); + subscription->Open(); + subscription->Update(); + return subscription; + } } - GuiSelectableButton::GroupController::~GroupController() + void GuiInstanceRootObject::UpdateSubscriptions() { - for(vint i=buttons.Count()-1;i>=0;i--) + for (auto subscription : subscriptions) { - buttons[i]->SetGroupController(0); + subscription->Update(); } } - void GuiSelectableButton::GroupController::Attach(GuiSelectableButton* button) + bool GuiInstanceRootObject::AddComponent(GuiComponent* component) { - if(!buttons.Contains(button)) + CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddComponent(GuiComponent*)#Cannot add component after finalizing."); + if(components.Contains(component)) { - buttons.Add(button); + return false; + } + else + { + components.Add(component); + component->Attach(this); + return true; } } - void GuiSelectableButton::GroupController::Detach(GuiSelectableButton* button) + bool GuiInstanceRootObject::AddControlHostComponent(GuiControlHost* controlHost) { - buttons.Remove(button); + return AddComponent(new GuiObjectComponent(Ptr(controlHost))); } -/*********************************************************************** -GuiSelectableButton::MutexGroupController -***********************************************************************/ - - GuiSelectableButton::MutexGroupController::MutexGroupController() - :suppress(false) + bool GuiInstanceRootObject::AddAnimation(Ptr animation) { - } + CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddAnimation(Ptr)#Cannot add animation after finalizing."); + if (runningAnimations.Contains(animation.Obj()) || pendingAnimations.Contains(animation.Obj())) + { + return false; + } + else + { + pendingAnimations.Add(animation); - GuiSelectableButton::MutexGroupController::~MutexGroupController() - { + if (auto controlHost = GetControlHostForInstance()) + { + InstallTimerCallback(controlHost); + StartPendingAnimations(); + } + return true; + } } - void GuiSelectableButton::MutexGroupController::OnSelectedChanged(GuiSelectableButton* button) + bool GuiInstanceRootObject::KillAnimation(Ptr animation) { - if(!suppress) + if (!animation) return false; + if (runningAnimations.Contains(animation.Obj())) { - suppress=true; - for(vint i=0;iSetSelected(buttons[i]==button); - } - suppress=false; + runningAnimations.Remove(animation.Obj()); + return true; + } + if (pendingAnimations.Contains(animation.Obj())) + { + pendingAnimations.Remove(animation.Obj()); + return true; } + return false; } + } + } +} /*********************************************************************** -GuiSelectableButton +.\APPLICATION\CONTROLS\GUILABELCONTROLS.CPP ***********************************************************************/ - void GuiSelectableButton::BeforeControlTemplateUninstalled_() - { - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace collections; + using namespace reflection::description; - void GuiSelectableButton::AfterControlTemplateInstalled_(bool initialize) +/*********************************************************************** +GuiLabel +***********************************************************************/ + + void GuiLabel::BeforeControlTemplateUninstalled_() { - TypedControlTemplateObject(true)->SetSelected(isSelected); + auto ct = TypedControlTemplateObject(false); + if (!ct) return; + + textColorConsisted = (textColor == ct->GetDefaultTextColor()); } - void GuiSelectableButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiLabel::AfterControlTemplateInstalled_(bool initialize) { - if(autoSelection) + auto ct = TypedControlTemplateObject(true); + if (initialize || textColorConsisted) { - SetSelected(!GetSelected()); + SetTextColor(ct->GetDefaultTextColor()); + } + else + { + ct->SetTextColor(textColor); } } - GuiSelectableButton::GuiSelectableButton(theme::ThemeName themeName) - :GuiButton(themeName) + GuiLabel::GuiLabel(theme::ThemeName themeName) + :GuiControl(themeName) { - GroupControllerChanged.SetAssociatedComposition(boundsComposition); - AutoSelectionChanged.SetAssociatedComposition(boundsComposition); - SelectedChanged.SetAssociatedComposition(boundsComposition); - - Clicked.AttachMethod(this, &GuiSelectableButton::OnClicked); } - - GuiSelectableButton::~GuiSelectableButton() + + GuiLabel::~GuiLabel() { - if(groupController) - { - groupController->Detach(this); - } } - GuiSelectableButton::GroupController* GuiSelectableButton::GetGroupController() + Color GuiLabel::GetTextColor() { - return groupController; + return textColor; } - void GuiSelectableButton::SetGroupController(GroupController* value) + void GuiLabel::SetTextColor(Color value) { - if(groupController) - { - groupController->Detach(this); - } - groupController=value; - if(groupController) + if (textColor != value) { - groupController->Attach(this); + textColor = value; + TypedControlTemplateObject(true)->SetTextColor(textColor); } - GroupControllerChanged.Execute(GetNotifyEventArguments()); } + } + } +} - bool GuiSelectableButton::GetAutoSelection() +/*********************************************************************** +.\APPLICATION\CONTROLS\GUITHEMEMANAGER.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace templates + { + +/*********************************************************************** +GuiTemplate +***********************************************************************/ + + GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_IMPL) + + controls::GuiControlHost* GuiTemplate::GetControlHostForInstance() { - return autoSelection; + return GetRelatedControlHost(); } - void GuiSelectableButton::SetAutoSelection(bool value) + void GuiTemplate::OnParentLineChanged() { - if(autoSelection!=value) - { - autoSelection=value; - AutoSelectionChanged.Execute(GetNotifyEventArguments()); - } + GuiBoundsComposition::OnParentLineChanged(); + OnControlHostForInstanceChanged(); } - bool GuiSelectableButton::GetSelected() + GuiTemplate::GuiTemplate() { - return isSelected; + GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_EVENT_INIT) } - void GuiSelectableButton::SetSelected(bool value) + GuiTemplate::~GuiTemplate() { - if (isSelected != value) - { - isSelected = value; - TypedControlTemplateObject(true)->SetSelected(isSelected); - if (groupController) - { - groupController->OnSelectedChanged(this); - } - SelectedChanged.Execute(GetNotifyEventArguments()); - } + FinalizeInstanceRecursively(this); } + +/*********************************************************************** +Template Declarations +***********************************************************************/ + + GUI_CORE_CONTROL_TEMPLATE_DECL(GUI_TEMPLATE_CLASS_IMPL) } } } /*********************************************************************** -.\CONTROLS\GUICONTAINERCONTROLS.CPP +.\APPLICATION\CONTROLS\GUIWINDOWCONTROLS.CPP ***********************************************************************/ - namespace vl { namespace presentation { - using namespace compositions; - namespace controls { + using namespace elements; + using namespace compositions; + using namespace collections; using namespace reflection::description; /*********************************************************************** -GuiTabPage +GuiControlHost ***********************************************************************/ - bool GuiTabPage::IsAltAvailable() + void GuiControlHost::DeleteThis() { - return false; + auto callback = callbackAfterDeleteThis; + delete this; + if (callback) + { + callback(); + } } - GuiTabPage::GuiTabPage(theme::ThemeName themeName) - :GuiCustomControl(themeName) + void GuiControlHost::OnNativeWindowChanged() { } - GuiTabPage::~GuiTabPage() + void GuiControlHost::OnVisualStatusChanged() { - FinalizeAggregation(); } - GuiTab* GuiTabPage::GetOwnerTab() + controls::GuiControlHost* GuiControlHost::GetControlHostForInstance() { - return tab; + return this; } -/*********************************************************************** -GuiTabPageList -***********************************************************************/ - - bool GuiTabPageList::QueryInsert(vint index, GuiTabPage* const& value) + GuiControl* GuiControlHost::GetTooltipOwner(Point location) { - return !items.Contains(value) && value->tab == nullptr; + GuiGraphicsComposition* composition=this->GetBoundsComposition()->FindComposition(location, true); + if(composition) + { + GuiControl* control=composition->GetRelatedControl(); + while(control) + { + if(control->GetTooltipControl()) + { + return control; + } + control=control->GetParent(); + } + } + return nullptr; } - void GuiTabPageList::AfterInsert(vint index, GuiTabPage* const& value) + void GuiControlHost::MoveIntoTooltipControl(GuiControl* tooltipControl, Point location) { - value->tab = tab; - value->SetVisible(false); - value->boundsComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - tab->containerComposition->AddChild(value->boundsComposition); - - if (!tab->selectedPage) + if (tooltipLocation != location) { - tab->SetSelectedPage(value); + tooltipLocation = location; + { + GuiControl* currentOwner = GetApplication()->GetTooltipOwner(); + if (currentOwner && currentOwner != tooltipControl) + { + if (tooltipCloseDelay) + { + tooltipCloseDelay->Cancel(); + tooltipCloseDelay = 0; + } + GetApplication()->DelayExecuteInMainThread([=]() + { + currentOwner->CloseTooltip(); + }, TooltipDelayCloseTime); + } + } + if (!tooltipControl) + { + if (tooltipOpenDelay) + { + tooltipOpenDelay->Cancel(); + tooltipOpenDelay = 0; + } + } + else if (tooltipOpenDelay) + { + tooltipOpenDelay->Delay(TooltipDelayOpenTime); + } + else if (GetApplication()->GetTooltipOwner() != tooltipControl) + { + tooltipOpenDelay = GetApplication()->DelayExecuteInMainThread([this]() + { + GuiControl* owner = GetTooltipOwner(tooltipLocation); + if (owner) + { + Point offset = owner->GetBoundsComposition()->GetGlobalBounds().LeftTop(); + Point p(tooltipLocation.x - offset.x, tooltipLocation.y - offset.y + 24); + owner->DisplayTooltip(p); + tooltipOpenDelay = 0; + + tooltipCloseDelay = GetApplication()->DelayExecuteInMainThread([this, owner]() + { + owner->CloseTooltip(); + }, TooltipDelayLifeTime); + } + }, TooltipDelayOpenTime); + } } } - void GuiTabPageList::BeforeRemove(vint index, GuiTabPage* const& value) + void GuiControlHost::MouseMoving(const NativeWindowMouseInfo& info) { - tab->containerComposition->RemoveChild(value->boundsComposition); - value->tab = nullptr; - - if (items.Count() <= 1) - { - tab->SetSelectedPage(nullptr); - } - else if (items.Count() > index + 1) - { - tab->SetSelectedPage(items[index + 1]); - } - else if (items.Count() == index + 1) + if (!info.left && !info.middle && !info.right) { - tab->SetSelectedPage(items[index - 1]); + GuiControl* tooltipControl = GetTooltipOwner(tooltipLocation); + MoveIntoTooltipControl(tooltipControl, Point(host->GetNativeWindow()->Convert(NativePoint(info.x, info.y)))); } } - GuiTabPageList::GuiTabPageList(GuiTab* _tab) - :tab(_tab) + void GuiControlHost::MouseLeaved() { + MoveIntoTooltipControl(0, Point(-1, -1)); } - GuiTabPageList::~GuiTabPageList() + void GuiControlHost::Moved() { + OnVisualStatusChanged(); } -/*********************************************************************** -GuiTab::CommandExecutor -***********************************************************************/ - - GuiTab::CommandExecutor::CommandExecutor(GuiTab* _tab) - :tab(_tab) + void GuiControlHost::Enabled() { + GuiControl::SetEnabled(true); + OnVisualStatusChanged(); } - GuiTab::CommandExecutor::~CommandExecutor() + void GuiControlHost::Disabled() { + GuiControl::SetEnabled(false); + OnVisualStatusChanged(); } - void GuiTab::CommandExecutor::ShowTab(vint index, bool setFocus) + void GuiControlHost::GotFocus() { - tab->SetSelectedPage(tab->GetPages().Get(index)); - if (setFocus) - { - tab->SetFocus(); - } + WindowGotFocus.Execute(GetNotifyEventArguments()); + OnVisualStatusChanged(); } -/*********************************************************************** -GuiTab -***********************************************************************/ - - void GuiTab::BeforeControlTemplateUninstalled_() + void GuiControlHost::LostFocus() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - ct->SetCommands(nullptr); - ct->SetTabPages(nullptr); - ct->SetSelectedTabPage(nullptr); + WindowLostFocus.Execute(GetNotifyEventArguments()); + OnVisualStatusChanged(); } - void GuiTab::AfterControlTemplateInstalled_(bool initialize) + void GuiControlHost::RenderingAsActivated() { - auto ct = TypedControlTemplateObject(true); - ct->SetCommands(commandExecutor.Obj()); - ct->SetTabPages(UnboxValue>(BoxParameter(tabPages))); - ct->SetSelectedTabPage(selectedPage); + WindowActivated.Execute(GetNotifyEventArguments()); + OnVisualStatusChanged(); } - void GuiTab::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + void GuiControlHost::RenderingAsDeactivated() { - if (arguments.eventSource == focusableComposition) - { - if (auto ct = TypedControlTemplateObject(false)) - { - vint index = tabPages.IndexOf(selectedPage); - if (index != -1) - { - auto hint = ct->GetTabOrder(); - vint tabOffset = 0; - switch (hint) - { - case TabPageOrder::LeftToRight: - if (arguments.code == VKEY::KEY_LEFT) tabOffset = -1; - else if (arguments.code == VKEY::KEY_RIGHT) tabOffset = 1; - break; - case TabPageOrder::RightToLeft: - if (arguments.code == VKEY::KEY_LEFT) tabOffset = 1; - else if (arguments.code == VKEY::KEY_RIGHT) tabOffset = -1; - break; - case TabPageOrder::TopToBottom: - if (arguments.code == VKEY::KEY_UP) tabOffset = -1; - else if (arguments.code == VKEY::KEY_DOWN) tabOffset = 1; - break; - case TabPageOrder::BottomToTop: - if (arguments.code == VKEY::KEY_UP) tabOffset = 1; - else if (arguments.code == VKEY::KEY_DOWN) tabOffset = -1; - break; - default:; - } - - if (tabOffset != 0) - { - arguments.handled = true; - index += tabOffset; - if (index < 0) index = 0; - else if (index >= tabPages.Count()) index = tabPages.Count() - 1; - - SetSelectedPage(tabPages[index]); - } - } - } - } + WindowDeactivated.Execute(GetNotifyEventArguments()); + OnVisualStatusChanged(); } - GuiTab::GuiTab(theme::ThemeName themeName) - :GuiControl(themeName) - , tabPages(this) + void GuiControlHost::Opened() { - commandExecutor = new CommandExecutor(this); - SetFocusableComposition(boundsComposition); - - boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiTab::OnKeyDown); + WindowOpened.Execute(GetNotifyEventArguments()); } - GuiTab::~GuiTab() + void GuiControlHost::BeforeClosing(bool& cancel) { + GuiRequestEventArgs arguments(boundsComposition); + arguments.cancel=cancel; + WindowClosing.Execute(arguments); + if(!arguments.handled) + { + cancel=arguments.cancel; + } } - collections::ObservableList& GuiTab::GetPages() + void GuiControlHost::AfterClosing() { - return tabPages; + WindowReadyToClose.Execute(GetNotifyEventArguments()); } - GuiTabPage* GuiTab::GetSelectedPage() + void GuiControlHost::Closed() { - return selectedPage; + WindowClosed.Execute(GetNotifyEventArguments()); } - bool GuiTab::SetSelectedPage(GuiTabPage* value) + void GuiControlHost::Destroying() { - if (!value) + WindowDestroying.Execute(GetNotifyEventArguments()); + calledDestroyed = true; + if (deleteWhenDestroyed) { - if (tabPages.Count() == 0) + GetApplication()->InvokeInMainThread(this, [=]() { - selectedPage = nullptr; - } + DeleteThis(); + }); } - else if (value->GetOwnerTab() == this) - { - if (selectedPage == value) - { - return true; - } + SetNativeWindow(nullptr); + } - selectedPage = value; - for (auto tabPage : tabPages) - { - tabPage->SetVisible(tabPage == selectedPage); - } - } - if (auto ct = TypedControlTemplateObject(false)) + void GuiControlHost::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) + { + auto size = GetClientSize(); + if (size != clientSize) { - ct->SetSelectedTabPage(selectedPage); + SetClientSize(clientSize); } - SelectedPageChanged.Execute(GetNotifyEventArguments()); - return selectedPage == value; } -/*********************************************************************** -GuiScrollView -***********************************************************************/ - - void GuiScrollView::BeforeControlTemplateUninstalled_() + GuiControlHost::GuiControlHost(theme::ThemeName themeName, INativeWindow::WindowMode mode) + :GuiControl(themeName) + , windowMode(mode) { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; + boundsComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + + WindowGotFocus.SetAssociatedComposition(boundsComposition); + WindowLostFocus.SetAssociatedComposition(boundsComposition); + WindowActivated.SetAssociatedComposition(boundsComposition); + WindowDeactivated.SetAssociatedComposition(boundsComposition); + WindowOpened.SetAssociatedComposition(boundsComposition); + WindowClosing.SetAssociatedComposition(boundsComposition); + WindowReadyToClose.SetAssociatedComposition(boundsComposition); + WindowClosed.SetAssociatedComposition(boundsComposition); + WindowDestroying.SetAssociatedComposition(boundsComposition); - if (auto scroll = ct->GetHorizontalScroll()) - { - scroll->PositionChanged.Detach(hScrollHandler); - } - if (auto scroll = ct->GetVerticalScroll()) - { - scroll->PositionChanged.Detach(vScrollHandler); - } - ct->GetEventReceiver()->horizontalWheel.Detach(hWheelHandler); - ct->GetEventReceiver()->verticalWheel.Detach(vWheelHandler); - ct->BoundsChanged.Detach(containerBoundsChangedHandler); + host=new GuiGraphicsHost(this, boundsComposition); + sharedPtrDestructorProc = 0; + } - hScrollHandler = nullptr; - vScrollHandler = nullptr; - hWheelHandler = nullptr; - vWheelHandler = nullptr; - containerBoundsChangedHandler = nullptr; - supressScrolling = false; + GuiControlHost::~GuiControlHost() + { + FinalizeInstanceRecursively(this); + OnBeforeReleaseGraphicsHost(); + delete host; } - void GuiScrollView::AfterControlTemplateInstalled_(bool initialize) + void GuiControlHost::DeleteAfterProcessingAllEvents(const Func& callback) { - auto ct = TypedControlTemplateObject(true); - if (auto scroll = ct->GetHorizontalScroll()) + CHECK_ERROR(!deleteWhenDestroyed, L"vl::presentation::controls::GuiControlHost::DeleteAfterProcessingAllEvents()#This function cannot be called twice."); + deleteWhenDestroyed = true; + callbackAfterDeleteThis = callback; + + auto window = host->GetNativeWindow(); + if (calledDestroyed || !window) { - hScrollHandler = scroll->PositionChanged.AttachMethod(this, &GuiScrollView::OnHorizontalScroll); + DeleteThis(); } - if (auto scroll = ct->GetVerticalScroll()) + else { - vScrollHandler = scroll->PositionChanged.AttachMethod(this, &GuiScrollView::OnVerticalScroll); + GetApplication()->InvokeInMainThread(this, [window]() + { + GetCurrentController()->WindowService()->DestroyNativeWindow(window); + }); } - hWheelHandler = ct->GetEventReceiver()->horizontalWheel.AttachMethod(this, &GuiScrollView::OnHorizontalWheel); - vWheelHandler = ct->GetEventReceiver()->verticalWheel.AttachMethod(this, &GuiScrollView::OnVerticalWheel); - containerBoundsChangedHandler = ct->BoundsChanged.AttachMethod(this, &GuiScrollView::OnContainerBoundsChanged); - CalculateView(); } - void GuiScrollView::UpdateDisplayFont() + compositions::GuiGraphicsHost* GuiControlHost::GetGraphicsHost() { - GuiControl::UpdateDisplayFont(); - CalculateView(); + return host; } - void GuiScrollView::OnContainerBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + compositions::GuiGraphicsComposition* GuiControlHost::GetMainComposition() { - InvokeOrDelayIfRendering([=]() - { - CalculateView(); - }); + return host->GetMainComposition(); } - void GuiScrollView::OnHorizontalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + INativeWindow* GuiControlHost::GetNativeWindow() { - if(!supressScrolling) - { - CallUpdateView(); - } + return host->GetNativeWindow(); } - void GuiScrollView::OnVerticalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiControlHost::SetNativeWindow(INativeWindow* window) { - if(!supressScrolling) + auto previousNativeWindow = host->GetNativeWindow(); + if(previousNativeWindow) { - CallUpdateView(); + host->GetNativeWindow()->UninstallListener(this); } - } - - void GuiScrollView::OnHorizontalWheel(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - if(!supressScrolling) + if (window) { - if (auto scroll = TypedControlTemplateObject(true)->GetHorizontalScroll()) + if (windowMode != window->GetWindowMode()) { - if (scroll->GetEnabled()) - { - vint position = scroll->GetPosition(); - vint move = scroll->GetSmallMove(); - position -= move * arguments.wheel / 60; - scroll->SetPosition(position); - } + CHECK_FAIL(L"GuiControlHost::SetNativeWindow(INativeWindow*)#Window mode does not match."); } } + host->SetNativeWindow(window); + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->InstallListener(this); + } + GetApplication()->NotifyNativeWindowChanged(this, previousNativeWindow); + OnNativeWindowChanged(); } - void GuiScrollView::OnVerticalWheel(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + void GuiControlHost::ForceCalculateSizeImmediately() { - if(!supressScrolling && GetVisuallyEnabled()) + auto size = GetClientSize(); + boundsComposition->ForceCalculateSizeImmediately(); + SetClientSize(size); + } + + bool GuiControlHost::GetEnabled() + { + if(host->GetNativeWindow()) { - if (auto scroll = TypedControlTemplateObject(true)->GetVerticalScroll()) + return host->GetNativeWindow()->IsEnabled(); + } + else + { + return false; + } + } + + void GuiControlHost::SetEnabled(bool value) + { + if(host->GetNativeWindow()) + { + if(value) { - if (scroll->GetEnabled()) - { - vint position = scroll->GetPosition(); - vint move = scroll->GetSmallMove(); - position -= move * arguments.wheel / 60; - scroll->SetPosition(position); - } + host->GetNativeWindow()->Enable(); + } + else + { + host->GetNativeWindow()->Disable(); } } } - void GuiScrollView::CallUpdateView() + bool GuiControlHost::GetFocused() { - Rect viewBounds=GetViewBounds(); - UpdateView(viewBounds); + if(host->GetNativeWindow()) + { + return host->GetNativeWindow()->IsActivated(); + } + else + { + return false; + } } - bool GuiScrollView::AdjustView(Size fullSize) + void GuiControlHost::SetFocused() { - auto ct = TypedControlTemplateObject(true); - auto hScroll = ct->GetHorizontalScroll(); - auto vScroll = ct->GetVerticalScroll(); - Size viewSize = ct->GetContainerComposition()->GetBounds().GetSize(); + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->SetActivate(); + } + } - auto hVisible = hScroll ? hScroll->GetVisible() : false; - auto vVisible = vScroll ? vScroll->GetVisible() : false; + bool GuiControlHost::GetRenderingAsActivated() + { + if(host->GetNativeWindow()) + { + return host->GetNativeWindow()->IsRenderingAsActivated(); + } + else + { + return false; + } + } - if (hScroll) + bool GuiControlHost::GetShowInTaskBar() + { + if(host->GetNativeWindow()) { - if (fullSize.x <= viewSize.x) + return host->GetNativeWindow()->IsAppearedInTaskBar(); + } + else + { + return false; + } + } + + void GuiControlHost::SetShowInTaskBar(bool value) + { + if(host->GetNativeWindow()) + { + if(value) { - hScroll->SetVisible(horizontalAlwaysVisible); - hScroll->SetEnabled(false); - hScroll->SetPosition(0); + host->GetNativeWindow()->ShowInTaskBar(); } else { - hScroll->SetVisible(true); - hScroll->SetEnabled(true); - hScroll->SetTotalSize(fullSize.x); - hScroll->SetPageSize(viewSize.x); + host->GetNativeWindow()->HideInTaskBar(); } } + } - if (vScroll) + bool GuiControlHost::GetEnabledActivate() + { + if(host->GetNativeWindow()) { - if (fullSize.y <= viewSize.y) + return host->GetNativeWindow()->IsEnabledActivate(); + } + else + { + return false; + } + } + + void GuiControlHost::SetEnabledActivate(bool value) + { + if(host->GetNativeWindow()) + { + if(value) { - vScroll->SetVisible(verticalAlwaysVisible); - vScroll->SetEnabled(false); - vScroll->SetPosition(0); + host->GetNativeWindow()->EnableActivate(); } else { - vScroll->SetVisible(true); - vScroll->SetEnabled(true); - vScroll->SetTotalSize(fullSize.y); - vScroll->SetPageSize(viewSize.y); + host->GetNativeWindow()->DisableActivate(); } } - - auto hVisible2 = hScroll ? hScroll->GetVisible() : false; - auto vVisible2 = vScroll ? vScroll->GetVisible() : false; - return hVisible != hVisible2 || vVisible != vVisible2; } - GuiScrollView::GuiScrollView(theme::ThemeName themeName) - :GuiControl(themeName) + bool GuiControlHost::GetTopMost() { - containerComposition->BoundsChanged.AttachMethod(this, &GuiScrollView::OnContainerBoundsChanged); + if(host->GetNativeWindow()) + { + return host->GetNativeWindow()->GetTopMost(); + } + else + { + return false; + } } - vint GuiScrollView::GetSmallMove() + void GuiControlHost::SetTopMost(bool topmost) { - return GetDisplayFont().size * 2; + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->SetTopMost(topmost); + } } - Size GuiScrollView::GetBigMove() + compositions::IGuiShortcutKeyManager* GuiControlHost::GetShortcutKeyManager() { - return GetViewSize(); + return host->GetShortcutKeyManager(); } - - GuiScrollView::~GuiScrollView() + + void GuiControlHost::SetShortcutKeyManager(compositions::IGuiShortcutKeyManager* value) { + host->SetShortcutKeyManager(value); } - void GuiScrollView::CalculateView() + compositions::GuiGraphicsTimerManager* GuiControlHost::GetTimerManager() { - auto ct = TypedControlTemplateObject(true); - auto hScroll = ct->GetHorizontalScroll(); - auto vScroll = ct->GetVerticalScroll(); + return host->GetTimerManager(); + } - if (!supressScrolling) + Size GuiControlHost::GetClientSize() + { + if (auto window = host->GetNativeWindow()) { - Size fullSize = QueryFullSize(); - while (true) - { - bool flagA = false; - bool flagB = false; - - flagA = AdjustView(fullSize); - bool bothInvisible = (hScroll ? !hScroll->GetVisible() : true) && (vScroll ? !vScroll->GetVisible() : true); + return window->Convert(window->GetClientSize()); + } + else + { + return Size(0, 0); + } + } - if (!bothInvisible) - { - flagB = AdjustView(fullSize); - bothInvisible = (hScroll ? !hScroll->GetVisible() : true) && (vScroll ? !vScroll->GetVisible() : true); - } + void GuiControlHost::SetClientSize(Size value) + { + if (auto window = host->GetNativeWindow()) + { + host->GetNativeWindow()->SetClientSize(window->Convert(value)); + } + } - supressScrolling = true; - CallUpdateView(); - supressScrolling = false; + NativePoint GuiControlHost::GetLocation() + { + if(auto window = host->GetNativeWindow()) + { + return window->GetBounds().LeftTop(); + } + else + { + return NativePoint(); + } + } - Size newSize = QueryFullSize(); - if (fullSize == newSize) - { - vint smallMove = GetSmallMove(); - Size bigMove = GetBigMove(); - if (hScroll) - { - hScroll->SetSmallMove(smallMove); - hScroll->SetBigMove(bigMove.x); - } - if (vScroll) - { - vScroll->SetSmallMove(smallMove); - vScroll->SetBigMove(bigMove.y); - } + void GuiControlHost::SetLocation(NativePoint value) + { + if (auto window = host->GetNativeWindow()) + { + auto bounds = window->GetBounds(); + window->SetBounds(NativeRect(value, bounds.GetSize())); + } + } - if (bothInvisible || !flagA && !flagB) - { - break; - } - } - else - { - fullSize = newSize; - } - } + void GuiControlHost::SetBounds(NativePoint location, Size size) + { + if (auto window = host->GetNativeWindow()) + { + window->SetBounds(NativeRect(location, window->Convert(size))); } } - Size GuiScrollView::GetViewSize() + GuiControlHost* GuiControlHost::GetRelatedControlHost() { - Size viewSize = TypedControlTemplateObject(true)->GetContainerComposition()->GetBounds().GetSize(); - return viewSize; + return this; } - Rect GuiScrollView::GetViewBounds() + const WString& GuiControlHost::GetText() { - return Rect(GetViewPosition(), GetViewSize()); + WString result; + if(host->GetNativeWindow()) + { + result=host->GetNativeWindow()->GetTitle(); + } + if(result!=GuiControl::GetText()) + { + GuiControl::SetText(result); + } + return GuiControl::GetText(); } - Point GuiScrollView::GetViewPosition() + void GuiControlHost::SetText(const WString& value) { - auto ct = TypedControlTemplateObject(true); - auto hScroll = ct->GetHorizontalScroll(); - auto vScroll = ct->GetVerticalScroll(); - return Point(hScroll ? hScroll->GetPosition() : 0, vScroll ? vScroll->GetPosition() : 0); + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->SetTitle(value); + GuiControl::SetText(value); + } } - void GuiScrollView::SetViewPosition(Point value) + INativeScreen* GuiControlHost::GetRelatedScreen() { - auto ct = TypedControlTemplateObject(true); - if (auto hScroll = ct->GetHorizontalScroll()) + if(host->GetNativeWindow()) { - hScroll->SetPosition(value.x); + return GetCurrentController()->ScreenService()->GetScreen(host->GetNativeWindow()); } - if (auto vScroll = ct->GetVerticalScroll()) + else { - vScroll->SetPosition(value.y); + return 0; } } - GuiScroll* GuiScrollView::GetHorizontalScroll() + void GuiControlHost::Show() { - return TypedControlTemplateObject(true)->GetHorizontalScroll(); + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->Show(); + } } - GuiScroll* GuiScrollView::GetVerticalScroll() + void GuiControlHost::ShowDeactivated() { - return TypedControlTemplateObject(true)->GetVerticalScroll(); + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->ShowDeactivated(); + } } - bool GuiScrollView::GetHorizontalAlwaysVisible() + void GuiControlHost::ShowRestored() { - return horizontalAlwaysVisible; + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->ShowRestored(); + } } - void GuiScrollView::SetHorizontalAlwaysVisible(bool value) + void GuiControlHost::ShowMaximized() { - if (horizontalAlwaysVisible != value) + if(host->GetNativeWindow()) { - horizontalAlwaysVisible = value; - CalculateView(); + host->GetNativeWindow()->ShowMaximized(); } } - bool GuiScrollView::GetVerticalAlwaysVisible() + void GuiControlHost::ShowMinimized() { - return verticalAlwaysVisible; + if(host->GetNativeWindow()) + { + host->GetNativeWindow()->ShowMinimized(); + } } - void GuiScrollView::SetVerticalAlwaysVisible(bool value) + void GuiControlHost::Hide() { - if (verticalAlwaysVisible != value) + if(host->GetNativeWindow()) { - verticalAlwaysVisible = value; - CalculateView(); + host->GetNativeWindow()->Hide(false); + } + } + + void GuiControlHost::Close() + { + if (auto window = host->GetNativeWindow()) + { + auto mainWindow = GetCurrentController()->WindowService()->GetMainWindow(); + if (mainWindow == window) + { + SetNativeWindow(nullptr); + GetCurrentController()->WindowService()->DestroyNativeWindow(window); + } + else + { + window->Hide(true); + } + } + } + + bool GuiControlHost::GetOpening() + { + INativeWindow* window=host->GetNativeWindow(); + if(window) + { + return window->IsVisible(); } + return false; } /*********************************************************************** -GuiScrollContainer +GuiWindow ***********************************************************************/ - Size GuiScrollContainer::QueryFullSize() + void GuiWindow::BeforeControlTemplateUninstalled_() { - return containerComposition->GetBounds().GetSize(); } - void GuiScrollContainer::UpdateView(Rect viewBounds) + void GuiWindow::AfterControlTemplateInstalled_(bool initialize) { - auto leftTop = Point(-viewBounds.x1, -viewBounds.y1); - containerComposition->SetBounds(Rect(leftTop, Size(0, 0))); + ApplyFrameConfig(); + + auto ct = TypedControlTemplateObject(true); + auto window = GetNativeWindow(); + + SetControlTemplateProperties(); + UpdateIcon(window, ct); + UpdateCustomFramePadding(window, ct); + + if (window) + { + window->SetIcon(icon); + } + SetNativeWindowFrameProperties(); } - GuiScrollContainer::GuiScrollContainer(theme::ThemeName themeName) - :GuiScrollView(themeName) + void GuiWindow::UpdateIcon(INativeWindow* window, templates::GuiWindowTemplate* ct) { - containerComposition->SetAlignmentToParent(Margin(-1, -1, -1, -1)); - UpdateView(Rect(0, 0, 0, 0)); + ct->SetIcon(icon ? icon : window ? window->GetIcon() : nullptr); } - GuiScrollContainer::~GuiScrollContainer() + void GuiWindow::UpdateCustomFramePadding(INativeWindow* window, templates::GuiWindowTemplate* ct) { + if (window) + { + ct->SetCustomFramePadding(window->Convert(window->GetCustomFramePadding())); + } + else + { + ct->SetCustomFramePadding({8, 8, 8, 8}); + } } - bool GuiScrollContainer::GetExtendToFullWidth() + void GuiWindow::SetControlTemplateProperties() { - return extendToFullWidth; + if (auto ct = TypedControlTemplateObject(false)) + { + ct->SetMaximizedBox(hasMaximizedBox); + ct->SetMinimizedBox(hasMinimizedBox); + ct->SetBorder(hasBorder); + ct->SetSizeBox(hasSizeBox); + ct->SetIconVisible(isIconVisible); + ct->SetTitleBar(hasTitleBar); + ct->SetMaximized(GetNativeWindow()->GetSizeState() != INativeWindow::Maximized); + ct->SetActivated(GetRenderingAsActivated()); + } } - void GuiScrollContainer::SetExtendToFullWidth(bool value) + void GuiWindow::SetNativeWindowFrameProperties() { - if (extendToFullWidth != value) + if (auto window = GetNativeWindow()) { - extendToFullWidth = value; - auto margin = containerComposition->GetAlignmentToParent(); - if (value) + if (TypedControlTemplateObject(true)->GetCustomFrameEnabled()) { - containerComposition->SetAlignmentToParent(Margin(0, margin.top, 0, margin.bottom)); + window->EnableCustomFrameMode(); + window->SetBorder(false); } else { - containerComposition->SetAlignmentToParent(Margin(-1, margin.top, -1, margin.bottom)); + window->DisableCustomFrameMode(); + window->SetBorder(hasBorder); } + + window->SetMaximizedBox(hasMaximizedBox); + window->SetMinimizedBox(hasMinimizedBox); + window->SetSizeBox(hasSizeBox); + window->SetIconVisible(isIconVisible); + window->SetTitleBar(hasTitleBar); } } - bool GuiScrollContainer::GetExtendToFullHeight() + bool GuiWindow::ApplyFrameConfigOnVariable(BoolOption frameConfig, BoolOption templateConfig, bool& variable) { - return extendToFullHeight; + if (frameConfig == BoolOption::AlwaysTrue && templateConfig == BoolOption::AlwaysFalse)return false; + if (frameConfig == BoolOption::AlwaysFalse && templateConfig == BoolOption::AlwaysTrue) return false; + + if (frameConfig == BoolOption::AlwaysTrue || templateConfig == BoolOption::AlwaysTrue) + { + variable = true; + } + else if (frameConfig == BoolOption::AlwaysFalse || templateConfig == BoolOption::AlwaysFalse) + { + variable = true; + } + + return true; } - void GuiScrollContainer::SetExtendToFullHeight(bool value) + void GuiWindow::ApplyFrameConfig() { - if (extendToFullHeight != value) +#define ERROR_MESSAGE_PREFIX L"vl::presentation::controls::GuiWindow::CheckCustomFrameAndControlTemplateCompatibility#" + +#define FIX_WINDOW_PROPERTY(VARIABLE, NAME)\ + CHECK_ERROR(\ + ApplyFrameConfigOnVariable(\ + (frameConfig ? frameConfig->NAME ## Option : BoolOption::Customizable),\ + (ct ? ct->Get ## NAME ## Option() : BoolOption::Customizable),\ + VARIABLE\ + ),\ + ERROR_MESSAGE_PREFIX L"Frame configuration and control template are not compatible on property \"" L ## #NAME L"\"."\ + );\ + + auto ct = TypedControlTemplateObject(false); + if (frameConfig && ct) { - extendToFullHeight = value; - auto margin = containerComposition->GetAlignmentToParent(); - if (value) - { - containerComposition->SetAlignmentToParent(Margin(margin.left, 0, margin.right, 0)); - } - else + if ( + (frameConfig->CustomFrameEnabled == BoolOption::AlwaysTrue && !ct->GetCustomFrameEnabled()) || + (frameConfig->CustomFrameEnabled == BoolOption::AlwaysFalse && ct->GetCustomFrameEnabled()) + ) { - containerComposition->SetAlignmentToParent(Margin(margin.left, -1, margin.right, -1)); + CHECK_FAIL(ERROR_MESSAGE_PREFIX L"Frame configuration and control template are not compatible on property \"CustomFrameEnabled\"."); } } - } - } - } -} -/*********************************************************************** -.\CONTROLS\GUIDATETIMECONTROLS.CPP -***********************************************************************/ + FIX_WINDOW_PROPERTY(hasMaximizedBox, MaximizedBox) + FIX_WINDOW_PROPERTY(hasMinimizedBox, MinimizedBox) + FIX_WINDOW_PROPERTY(hasBorder, Border) + FIX_WINDOW_PROPERTY(hasSizeBox, SizeBox) + FIX_WINDOW_PROPERTY(isIconVisible, IconVisible) + FIX_WINDOW_PROPERTY(hasTitleBar, TitleBar) -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace compositions; - using namespace elements; + auto window = GetNativeWindow(); + SetControlTemplateProperties(); + UpdateCustomFramePadding(window, ct); + SetNativeWindowFrameProperties(); -/*********************************************************************** -GuiDatePicker::CommandExecutor -***********************************************************************/ +#undef FIX_WINDOW_PROPERTY - GuiDatePicker::CommandExecutor::CommandExecutor(GuiDatePicker* _datePicker) - :datePicker(_datePicker) - { +#undef ERROR_MESSAGE_PREFIX } - GuiDatePicker::CommandExecutor::~CommandExecutor() + void GuiWindow::Moved() { + GuiControlHost::Moved(); + TypedControlTemplateObject(true)->SetMaximized(GetNativeWindow()->GetSizeState() != INativeWindow::Maximized); } - void GuiDatePicker::CommandExecutor::NotifyDateChanged() + void GuiWindow::Opened() { - datePicker->date = datePicker->TypedControlTemplateObject(true)->GetDate(); - datePicker->UpdateText(); - datePicker->DateChanged.Execute(datePicker->GetNotifyEventArguments()); + GuiControlHost::Opened(); + if (auto ct = TypedControlTemplateObject(false)) + { + UpdateIcon(GetNativeWindow(), ct); + } } - void GuiDatePicker::CommandExecutor::NotifyDateNavigated() + void GuiWindow::DpiChanged(bool preparing) { - datePicker->DateNavigated.Execute(datePicker->GetNotifyEventArguments()); + if (!preparing) + { + if (auto ct = TypedControlTemplateObject(false)) + { + UpdateCustomFramePadding(GetNativeWindow(), ct); + } + } } - void GuiDatePicker::CommandExecutor::NotifyDateSelected() + void GuiWindow::AssignFrameConfig(const NativeWindowFrameConfig& config) { - datePicker->DateSelected.Execute(datePicker->GetNotifyEventArguments()); + frameConfig = &config; + FrameConfigChanged.Execute(GetNotifyEventArguments()); + ApplyFrameConfig(); } -/*********************************************************************** -GuiDatePicker -***********************************************************************/ - - void GuiDatePicker::BeforeControlTemplateUninstalled_() + void GuiWindow::OnNativeWindowChanged() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - ct->SetCommands(nullptr); + SetNativeWindowFrameProperties(); + GuiControlHost::OnNativeWindowChanged(); } - void GuiDatePicker::AfterControlTemplateInstalled_(bool initialize) + void GuiWindow::OnVisualStatusChanged() { - auto ct = TypedControlTemplateObject(true); - ct->SetCommands(commandExecutor.Obj()); - ct->SetDate(date); - ct->SetDateLocale(dateLocale); - UpdateText(); + GuiControlHost::OnVisualStatusChanged(); } - void GuiDatePicker::UpdateText() + void GuiWindow::OnWindowActivated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiControl::SetText(dateLocale.FormatDate(dateFormat, date)); + if (auto ct = TypedControlTemplateObject(false)) + { + ct->SetActivated(true); + } } - bool GuiDatePicker::IsAltAvailable() + void GuiWindow::OnWindowDeactivated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if (nestedAlt) - { - return alt != L""; - } - else + if (auto ct = TypedControlTemplateObject(false)) { - return GuiControl::IsAltAvailable(); + ct->SetActivated(false); } } - compositions::IGuiAltActionHost* GuiDatePicker::GetActivatingAltHost() + GuiWindow::GuiWindow(theme::ThemeName themeName, INativeWindow::WindowMode mode) + :GuiControlHost(themeName, mode) { - if (nestedAlt) + SetAltComposition(boundsComposition); + SetAltControl(this, true); + + INativeWindow* window = GetCurrentController()->WindowService()->CreateNativeWindow(windowMode); + SetNativeWindow(window); + GetApplication()->RegisterWindow(this); + ClipboardUpdated.SetAssociatedComposition(boundsComposition); + FrameConfigChanged.SetAssociatedComposition(boundsComposition); + + WindowActivated.AttachMethod(this, &GuiWindow::OnWindowActivated); + WindowDeactivated.AttachMethod(this, &GuiWindow::OnWindowDeactivated); + } + + GuiWindow::GuiWindow(theme::ThemeName themeName) + :GuiWindow(themeName, INativeWindow::Normal) + { + } + + GuiWindow::~GuiWindow() + { + FinalizeAggregation(); + GetApplication()->UnregisterWindow(this); + INativeWindow* window=host->GetNativeWindow(); + if(window) { - return this; + SetNativeWindow(nullptr); + GetCurrentController()->WindowService()->DestroyNativeWindow(window); + } + } + + IDescriptable* GuiWindow::QueryService(const WString& identifier) + { + if (identifier == IGuiAltActionHost::Identifier) + { + return (IGuiAltActionHost*)this; } else { - return GuiControl::GetActivatingAltHost(); + return GuiControlHost::QueryService(identifier); } } - GuiDatePicker::GuiDatePicker(theme::ThemeName themeName, bool _nestedAlt) - :GuiControl(themeName) - , nestedAlt(_nestedAlt) + void GuiWindow::MoveToScreenCenter() { - commandExecutor = new CommandExecutor(this); - SetDate(DateTime::LocalTime()); - SetDateLocale(Locale::UserDefault()); - SetAltComposition(boundsComposition); - SetAltControl(this, false); - - DateChanged.SetAssociatedComposition(boundsComposition); - DateNavigated.SetAssociatedComposition(boundsComposition); - DateSelected.SetAssociatedComposition(boundsComposition); - DateFormatChanged.SetAssociatedComposition(boundsComposition); - DateLocaleChanged.SetAssociatedComposition(boundsComposition); + MoveToScreenCenter(GetRelatedScreen()); + } - commandExecutor->NotifyDateChanged(); + void GuiWindow::MoveToScreenCenter(INativeScreen* screen) + { + if (screen) + { + if (auto window = host->GetNativeWindow()) + { + NativeRect screenBounds = screen->GetClientBounds(); + NativeSize windowSize = window->GetBounds().GetSize(); + SetLocation( + NativePoint( + screenBounds.Left() + (screenBounds.Width() - windowSize.x) / 2, + screenBounds.Top() + (screenBounds.Height() - windowSize.y) / 2 + ) + ); + } + } } - GuiDatePicker::~GuiDatePicker() + const NativeWindowFrameConfig& GuiWindow::GetFrameConfig() { + return frameConfig ? *frameConfig : NativeWindowFrameConfig::Default; } - const DateTime& GuiDatePicker::GetDate() +#define IMPL_WINDOW_PROPERTY(VARIABLE, NAME, CONDITION_BREAK) \ + bool GuiWindow::Get ## NAME() \ + { \ + return VARIABLE; \ + } \ + void GuiWindow::Set ## NAME(bool visible) \ + { \ + auto ct = TypedControlTemplateObject(true); \ + if (ct->Get ## NAME ## Option() == BoolOption::Customizable) \ + { \ + VARIABLE = visible; \ + ct->Set ## NAME(visible); \ + auto window = GetNativeWindow(); \ + if (window) \ + { \ + CONDITION_BREAK \ + window->Set ## NAME(visible); \ + } \ + UpdateCustomFramePadding(window, ct); \ + } \ + } \ + +#define IMPL_WINDOW_PROPERTY_EMPTY_CONDITION +#define IMPL_WINDOW_PROPERTY_BORDER_CONDITION if (!ct->GetCustomFrameEnabled()) + + IMPL_WINDOW_PROPERTY(hasMaximizedBox, MaximizedBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + IMPL_WINDOW_PROPERTY(hasMinimizedBox, MinimizedBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + IMPL_WINDOW_PROPERTY(hasBorder, Border, IMPL_WINDOW_PROPERTY_BORDER_CONDITION) + IMPL_WINDOW_PROPERTY(hasSizeBox, SizeBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + IMPL_WINDOW_PROPERTY(isIconVisible, IconVisible, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + IMPL_WINDOW_PROPERTY(hasTitleBar, TitleBar, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + + Ptr GuiWindow::GetIcon() { - return date; + return icon; } - void GuiDatePicker::SetDate(const DateTime& value) + void GuiWindow::SetIcon(Ptr value) { - if (date != value) + if (icon != value) { - date = value; - TypedControlTemplateObject(true)->SetDate(value); + icon = value; + + auto window = GetNativeWindow(); + if (window) + { + window->SetIcon(icon); + } + + if (auto ct = TypedControlTemplateObject(false)) + { + UpdateIcon(window, ct); + } } } - const WString& GuiDatePicker::GetDateFormat() +#undef IMPL_WINDOW_PROPERTY_BORDER_CONDITION +#undef IMPL_WINDOW_PROPERTY_EMPTY_CONDITION +#undef IMPL_WINDOW_PROPERTY + + void GuiWindow::ShowWithOwner(GuiWindow* owner) { - return dateFormat; +#define ERROR_MESSAGE_PREFIX L"vl::presentation::controls::GuiWindow::ShowWithOwner(GuiWindow*)#" + auto ownerNativeWindow = owner->GetNativeWindow(); + auto nativeWindow = GetNativeWindow(); + auto previousParent = nativeWindow->GetParent(); + if (ownerNativeWindow != previousParent) + { + nativeWindow->SetParent(ownerNativeWindow); + WindowReadyToClose.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + nativeWindow->SetParent(previousParent); + }); + } + Show(); +#undef ERROR_MESSAGE_PREFIX } - void GuiDatePicker::SetDateFormat(const WString& value) + void GuiWindow::ShowModal(GuiWindow* owner, const Func& callback) { - dateFormat=value; - UpdateText(); - DateFormatChanged.Execute(GetNotifyEventArguments()); + owner->SetEnabled(false); + GetNativeWindow()->SetParent(owner->GetNativeWindow()); + auto container = Ptr(new IGuiGraphicsEventHandler::Container); + auto disposeFlag = GetDisposedFlag(); + container->handler = WindowReadyToClose.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + GetNativeWindow()->SetParent(nullptr); + callback(); + owner->SetEnabled(true); + owner->SetFocused(); + GetApplication()->InvokeInMainThread(this, [=]() + { + if (!disposeFlag->IsDisposed()) + { + WindowReadyToClose.Detach(container->handler); + } + container->handler = nullptr; + }); + }); + Show(); } - const Locale& GuiDatePicker::GetDateLocale() + void GuiWindow::ShowModalAndDelete(GuiWindow* owner, const Func& callback) { - return dateLocale; + ShowModal(owner, [=]() + { + callback(); + DeleteAfterProcessingAllEvents({}); + }); } - void GuiDatePicker::SetDateLocale(const Locale& value) + void GuiWindow::ShowModalAndDelete(GuiWindow* owner, const Func& callbackClosed, const Func& callbackDeleted) { - dateLocale=value; - List formats; - dateLocale.GetLongDateFormats(formats); - if(formats.Count()>0) + ShowModal(owner, [=]() { - dateFormat=formats[0]; - } - TypedControlTemplateObject(true)->SetDateLocale(dateLocale); - - UpdateText(); - DateFormatChanged.Execute(GetNotifyEventArguments()); - DateLocaleChanged.Execute(GetNotifyEventArguments()); + callbackClosed(); + DeleteAfterProcessingAllEvents(callbackDeleted); + }); } - void GuiDatePicker::SetText(const WString& value) + Ptr GuiWindow::ShowModalAsync(GuiWindow* owner) { + auto future = IFuture::Create(); + ShowModal(owner, [promise = future->GetPromise()]() + { + promise->SendResult({}); + }); + return future; } /*********************************************************************** -GuiDateComboBox +GuiPopup ***********************************************************************/ - void GuiDateComboBox::BeforeControlTemplateUninstalled_() + void GuiPopup::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) { + if (popupType == -1) + { + GuiWindow::UpdateClientSizeAfterRendering(preferredSize, clientSize); + } + else + { + auto window = host->GetNativeWindow(); + auto currentClientSize = window->GetClientSize(); + auto currentWindowSize = window->GetBounds().GetSize(); + auto offsetX = currentWindowSize.x - currentClientSize.x; + auto offsetY = currentWindowSize.y - currentClientSize.y; + auto nativeClientSize = window->Convert(clientSize); + auto position = CalculatePopupPosition(NativeSize(nativeClientSize.x + offsetX, nativeClientSize.y + offsetY), popupType, popupInfo); + if (position != GetLocation() || clientSize != GetClientSize()) + { + SetBounds(position, clientSize); + } + } } - void GuiDateComboBox::AfterControlTemplateInstalled_(bool initialize) + void GuiPopup::PopupOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - auto ct = TypedControlTemplateObject(true); - datePicker->SetControlTemplate(ct->GetDatePickerTemplate()); + GetApplication()->RegisterPopupOpened(this); } - void GuiDateComboBox::UpdateText() + void GuiPopup::PopupClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - SetText(datePicker->GetDateLocale().FormatDate(datePicker->GetDateFormat(), selectedDate)); + popupType = -1; + GetApplication()->RegisterPopupClosed(this); + if(auto window = GetNativeWindow()) + { + window->SetParent(nullptr); + } } - void GuiDateComboBox::NotifyUpdateSelectedDate() + void GuiPopup::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) { - UpdateText(); - SelectedDateChanged.Execute(GetNotifyEventArguments()); + if (!arguments.handled) + { + Hide(); + } } - void GuiDateComboBox::OnSubMenuOpeningChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + bool GuiPopup::IsClippedByScreen(NativeSize size, NativePoint location, INativeScreen* screen) { - datePicker->SetDate(selectedDate); + NativeRect screenBounds = screen->GetClientBounds(); + NativeRect windowBounds(location, size); + return !screenBounds.Contains(windowBounds.LeftTop()) || !screenBounds.Contains(windowBounds.RightBottom()); } - void GuiDateComboBox::datePicker_DateLocaleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, NativePoint location, INativeScreen* screen) { - UpdateText(); - } + NativeRect screenBounds = screen->GetClientBounds(); - void GuiDateComboBox::datePicker_DateFormatChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - UpdateText(); - } + if (location.x < screenBounds.x1) + { + location.x = screenBounds.x1; + } + else if (location.x + windowSize.x > screenBounds.x2) + { + location.x = screenBounds.x2 - windowSize.x; + } - void GuiDateComboBox::datePicker_DateSelected(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - selectedDate=datePicker->GetDate(); - GetSubMenu()->Hide(); - NotifyUpdateSelectedDate(); + if (location.y < screenBounds.y1) + { + location.y = screenBounds.y1; + } + else if (location.y + windowSize.y > screenBounds.y2) + { + location.y = screenBounds.y2 - windowSize.y; + } + + return location; } - GuiDateComboBox::GuiDateComboBox(theme::ThemeName themeName) - :GuiComboBoxBase(themeName) + NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, Rect bounds, bool preferredTopBottomSide) { - SelectedDateChanged.SetAssociatedComposition(GetBoundsComposition()); - - datePicker = new GuiDatePicker(theme::ThemeName::DatePicker, false); - datePicker->DateSelected.AttachMethod(this, &GuiDateComboBox::datePicker_DateSelected); - datePicker->DateLocaleChanged.AttachMethod(this, &GuiDateComboBox::datePicker_DateLocaleChanged); - datePicker->DateFormatChanged.AttachMethod(this, &GuiDateComboBox::datePicker_DateFormatChanged); - datePicker->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + NativePoint controlClientOffset = controlWindow->Convert(control->GetBoundsComposition()->GetGlobalBounds().LeftTop()); + NativePoint controlWindowOffset = controlWindow->GetClientBoundsInScreen().LeftTop(); + NativeRect targetBounds(controlWindow->Convert(bounds.LeftTop()), controlWindow->Convert(bounds.GetSize())); + targetBounds.x1 += controlClientOffset.x + controlWindowOffset.x; + targetBounds.x2 += controlClientOffset.x + controlWindowOffset.x; + targetBounds.y1 += controlClientOffset.y + controlWindowOffset.y; + targetBounds.y2 += controlClientOffset.y + controlWindowOffset.y; - GetSubMenu()->GetContainerComposition()->AddChild(datePicker->GetBoundsComposition()); - GetSubMenu()->SetHideOnDeactivateAltHost(false); + NativePoint locations[4]; + if (preferredTopBottomSide) + { + locations[0] = NativePoint(targetBounds.x1, targetBounds.y2); + locations[1] = NativePoint(targetBounds.x2 - windowSize.x, targetBounds.y2); + locations[2] = NativePoint(targetBounds.x1, targetBounds.y1 - windowSize.y); + locations[3] = NativePoint(targetBounds.x2 - windowSize.x, targetBounds.y1 - windowSize.y); + } + else + { + locations[0] = NativePoint(targetBounds.x2, targetBounds.y1); + locations[1] = NativePoint(targetBounds.x2, targetBounds.y2 - windowSize.y); + locations[2] = NativePoint(targetBounds.x1 - windowSize.x, targetBounds.y1); + locations[3] = NativePoint(targetBounds.x1 - windowSize.x, targetBounds.y2 - windowSize.y); + } - selectedDate=datePicker->GetDate(); - SubMenuOpeningChanged.AttachMethod(this, &GuiDateComboBox::OnSubMenuOpeningChanged); - SetFont(GetFont()); - SetText(datePicker->GetText()); + auto screen = GetCurrentController()->ScreenService()->GetScreen(controlWindow); + for (vint i = 0; i < 4; i++) + { + if (!IsClippedByScreen(windowSize, locations[i], screen)) + { + return CalculatePopupPosition(windowSize, locations[i], screen); + } + } + return CalculatePopupPosition(windowSize, locations[0], screen); } - GuiDateComboBox::~GuiDateComboBox() + NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, Point location) { + NativePoint controlClientOffset = controlWindow->Convert(control->GetBoundsComposition()->GetGlobalBounds().LeftTop()); + NativePoint controlWindowOffset = controlWindow->GetClientBoundsInScreen().LeftTop(); + NativePoint targetLocation = controlWindow->Convert(location); + NativeCoordinate x = controlClientOffset.x + controlWindowOffset.x + targetLocation.x; + NativeCoordinate y = controlClientOffset.y + controlWindowOffset.y + targetLocation.y; + return CalculatePopupPosition(windowSize, NativePoint(x, y), GetCurrentController()->ScreenService()->GetScreen(controlWindow)); } - void GuiDateComboBox::SetFont(const Nullable& value) + NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, bool preferredTopBottomSide) { - GuiComboBoxBase::SetFont(value); - datePicker->SetFont(value); + Rect bounds(Point(0, 0), control->GetBoundsComposition()->GetBounds().GetSize()); + return CalculatePopupPosition(windowSize, control, controlWindow, bounds, preferredTopBottomSide); } - const DateTime& GuiDateComboBox::GetSelectedDate() + NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, vint popupType, const PopupInfo& popupInfo) { - return selectedDate; + switch (popupType) + { + case 1: + return CalculatePopupPosition(windowSize, popupInfo._1.location, popupInfo._1.screen); + case 2: + return CalculatePopupPosition(windowSize, popupInfo._2.control, popupInfo._2.controlWindow, popupInfo._2.bounds, popupInfo._2.preferredTopBottomSide); + case 3: + return CalculatePopupPosition(windowSize, popupInfo._3.control, popupInfo._3.controlWindow, popupInfo._3.location); + case 4: + return CalculatePopupPosition(windowSize, popupInfo._4.control, popupInfo._4.controlWindow, popupInfo._4.preferredTopBottomSide); + default: + CHECK_FAIL(L"vl::presentation::controls::GuiPopup::CalculatePopupPosition(Size, const PopupInfo&)#Internal error."); + } } - void GuiDateComboBox::SetSelectedDate(const DateTime& value) + void GuiPopup::ShowPopupInternal() { - selectedDate=value; - NotifyUpdateSelectedDate(); + auto window = GetNativeWindow(); + auto clientSize = window->Convert(window->GetClientSize()); + UpdateClientSizeAfterRendering(clientSize, clientSize); + + INativeWindow* controlWindow = nullptr; + switch (popupType) + { + case 2: controlWindow = popupInfo._2.controlWindow; break; + case 3: controlWindow = popupInfo._3.controlWindow; break; + case 4: controlWindow = popupInfo._4.controlWindow; break; + } + + if (controlWindow) + { + window->SetParent(controlWindow); + SetTopMost(controlWindow->GetTopMost()); + } + else + { + SetTopMost(true); + } + SetEnabledActivate(false); + ShowDeactivated(); } - GuiDatePicker* GuiDateComboBox::GetDatePicker() + GuiPopup::GuiPopup(theme::ThemeName themeName, INativeWindow::WindowMode mode) + :GuiWindow(themeName, mode) { - return datePicker; + SetMinimizedBox(false); + SetMaximizedBox(false); + SetBorder(false); + SetSizeBox(false); + SetIconVisible(false); + SetTitleBar(false); + SetShowInTaskBar(false); + + WindowOpened.AttachMethod(this, &GuiPopup::PopupOpened); + WindowClosed.AttachMethod(this, &GuiPopup::PopupClosed); + boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiPopup::OnKeyDown); } - } - } -} -/*********************************************************************** -.\CONTROLS\GUIDIALOGS.CPP -***********************************************************************/ + GuiPopup::GuiPopup(theme::ThemeName themeName) + :GuiPopup(themeName, INativeWindow::Popup) + { + } -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; + GuiPopup::~GuiPopup() + { + GetApplication()->RegisterPopupClosed(this); + } -/*********************************************************************** -GuiDialogBase -***********************************************************************/ + void GuiPopup::ShowPopup(NativePoint location, INativeScreen* screen) + { + if (auto window = GetNativeWindow()) + { + if (!screen) + { + SetBounds(location, GetClientSize()); + screen = GetCurrentController()->ScreenService()->GetScreen(window); + } - GuiWindow* GuiDialogBase::GetHostWindow() + popupType = 1; + popupInfo._1.location = location; + popupInfo._1.screen = screen; + ShowPopupInternal(); + } + } + + void GuiPopup::ShowPopup(GuiControl* control, Rect bounds, bool preferredTopBottomSide) { - if (rootObject) + if (auto window = GetNativeWindow()) { - if (auto control = dynamic_cast(rootObject)) + if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) { - if (auto host = control->GetRelatedControlHost()) + if (auto controlWindow = controlHost->GetNativeWindow()) { - return dynamic_cast(host); + popupType = 2; + popupInfo._2.control = control; + popupInfo._2.controlWindow = controlWindow; + popupInfo._2.bounds = bounds; + popupInfo._2.preferredTopBottomSide = preferredTopBottomSide; + ShowPopupInternal(); } } - else if (auto composition = dynamic_cast(rootObject)) + } + } + + void GuiPopup::ShowPopup(GuiControl* control, Point location) + { + if (auto window = GetNativeWindow()) + { + if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) { - if (auto host = composition->GetRelatedControlHost()) + if (auto controlWindow = controlHost->GetNativeWindow()) { - return dynamic_cast(host); + popupType = 3; + popupInfo._3.control = control; + popupInfo._3.controlWindow = controlWindow; + popupInfo._3.location = location; + ShowPopupInternal(); } } } - return nullptr; } - GuiDialogBase::GuiDialogBase() + void GuiPopup::ShowPopup(GuiControl* control, bool preferredTopBottomSide) { + if (auto window = GetNativeWindow()) + { + if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) + { + if (auto controlWindow = controlHost->GetNativeWindow()) + { + popupType = 4; + popupInfo._4.control = control; + popupInfo._4.controlWindow = controlWindow; + popupInfo._4.preferredTopBottomSide = preferredTopBottomSide; + ShowPopupInternal(); + } + } + } } - GuiDialogBase::~GuiDialogBase() - { - } +/*********************************************************************** +GuiPopup +***********************************************************************/ - void GuiDialogBase::Attach(GuiInstanceRootObject* _rootObject) + void GuiTooltip::GlobalTimer() { - rootObject = _rootObject; + SetClientSize(GetClientSize()); } - void GuiDialogBase::Detach(GuiInstanceRootObject* _rootObject) + void GuiTooltip::TooltipOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - rootObject = nullptr; } -/*********************************************************************** -GuiMessageDialog -***********************************************************************/ - - GuiMessageDialog::GuiMessageDialog() + void GuiTooltip::TooltipClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + SetTemporaryContentControl(0); } - GuiMessageDialog::~GuiMessageDialog() + GuiTooltip::GuiTooltip(theme::ThemeName themeName) + : GuiPopup(themeName, INativeWindow::Tooltip) { + containerComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->SetPreferredMinSize(Size(20, 10)); + GetCurrentController()->CallbackService()->InstallListener(this); + + WindowOpened.AttachMethod(this, &GuiTooltip::TooltipOpened); + WindowClosed.AttachMethod(this, &GuiTooltip::TooltipClosed); } - INativeDialogService::MessageBoxButtonsInput GuiMessageDialog::GetInput() + GuiTooltip::~GuiTooltip() { - return input; + GetCurrentController()->CallbackService()->UninstallListener(this); } - void GuiMessageDialog::SetInput(INativeDialogService::MessageBoxButtonsInput value) + vint GuiTooltip::GetPreferredContentWidth() { - input = value; + return containerComposition->GetPreferredMinSize().x; } - INativeDialogService::MessageBoxDefaultButton GuiMessageDialog::GetDefaultButton() + void GuiTooltip::SetPreferredContentWidth(vint value) { - return defaultButton; + containerComposition->SetPreferredMinSize(Size(value, 10)); } - void GuiMessageDialog::SetDefaultButton(INativeDialogService::MessageBoxDefaultButton value) + GuiControl* GuiTooltip::GetTemporaryContentControl() { - defaultButton = value; + return temporaryContentControl; } - INativeDialogService::MessageBoxIcons GuiMessageDialog::GetIcon() + void GuiTooltip::SetTemporaryContentControl(GuiControl* control) { - return icon; + if(temporaryContentControl && HasChild(temporaryContentControl)) + { + containerComposition->RemoveChild(temporaryContentControl->GetBoundsComposition()); + temporaryContentControl=0; + } + temporaryContentControl=control; + if(control) + { + control->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + AddChild(control); + } } + } + } +} - void GuiMessageDialog::SetIcon(INativeDialogService::MessageBoxIcons value) - { - icon = value; - } - INativeDialogService::MessageBoxModalOptions GuiMessageDialog::GetModalOption() - { - return modalOption; - } +/*********************************************************************** +.\APPLICATION\GRAPHICSCOMPOSITIONS\GUIGRAPHICSBASICCOMPOSITION.CPP +***********************************************************************/ - void GuiMessageDialog::SetModalOption(INativeDialogService::MessageBoxModalOptions value) +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; + using namespace elements; + +/*********************************************************************** +GuiBoundsComposition +***********************************************************************/ + + Rect GuiBoundsComposition::GetPreferredBoundsInternal(bool considerPreferredMinSize) { - modalOption = value; + Rect result = GetBoundsInternal(compositionBounds, considerPreferredMinSize); + if (GetParent() && IsAlignedToParent()) + { + if (alignmentToParent.left >= 0) + { + vint offset = alignmentToParent.left - result.x1; + result.x1 += offset; + result.x2 += offset; + } + if (alignmentToParent.top >= 0) + { + vint offset = alignmentToParent.top - result.y1; + result.y1 += offset; + result.y2 += offset; + } + if (alignmentToParent.right >= 0) + { + result.x2 += alignmentToParent.right; + } + if (alignmentToParent.bottom >= 0) + { + result.y2 += alignmentToParent.bottom; + } + } + return result; } - const WString& GuiMessageDialog::GetText() + GuiBoundsComposition::GuiBoundsComposition() { - return text; } - void GuiMessageDialog::SetText(const WString& value) + GuiBoundsComposition::~GuiBoundsComposition() { - text = value; } - const WString& GuiMessageDialog::GetTitle() + bool GuiBoundsComposition::GetSizeAffectParent() { - return title; + return sizeAffectParent; } - void GuiMessageDialog::SetTitle(const WString& value) + void GuiBoundsComposition::SetSizeAffectParent(bool value) { - title = value; + sizeAffectParent = value; } - INativeDialogService::MessageBoxButtonsOutput GuiMessageDialog::ShowDialog() + bool GuiBoundsComposition::IsSizeAffectParent() { - auto service = GetCurrentController()->DialogService(); - return service->ShowMessageBox(GetHostWindow()->GetNativeWindow(), text, title, input, defaultButton, icon, modalOption); + return sizeAffectParent; } -/*********************************************************************** -GuiColorDialog -***********************************************************************/ - - GuiColorDialog::GuiColorDialog() + Rect GuiBoundsComposition::GetBounds() { - for (vint i = 0; i < 16; i++) + Rect result = GetPreferredBounds(); + if (GetParent() && IsAlignedToParent()) { - customColors.Add(Color()); + Size clientSize = GetParent()->GetClientArea().GetSize(); + if (alignmentToParent.left >= 0 && alignmentToParent.right >= 0) + { + result.x1 = alignmentToParent.left; + result.x2 = clientSize.x - alignmentToParent.right; + } + else if (alignmentToParent.left >= 0) + { + vint width = result.Width(); + result.x1 = alignmentToParent.left; + result.x2 = result.x1 + width; + } + else if (alignmentToParent.right >= 0) + { + vint width = result.Width(); + result.x2 = clientSize.x - alignmentToParent.right; + result.x1 = result.x2 - width; + } + + if (alignmentToParent.top >= 0 && alignmentToParent.bottom >= 0) + { + result.y1 = alignmentToParent.top; + result.y2 = clientSize.y - alignmentToParent.bottom; + } + else if (alignmentToParent.top >= 0) + { + vint height = result.Height(); + result.y1 = alignmentToParent.top; + result.y2 = result.y1 + height; + } + else if (alignmentToParent.bottom >= 0) + { + vint height = result.Height(); + result.y2 = clientSize.y - alignmentToParent.bottom; + result.y1 = result.y2 - height; + } } + UpdatePreviousBounds(result); + return result; } - GuiColorDialog::~GuiColorDialog() + void GuiBoundsComposition::SetBounds(Rect value) { + if (compositionBounds != value) + { + compositionBounds = value; + InvokeOnCompositionStateChanged(); + } } - bool GuiColorDialog::GetEnabledCustomColor() + Margin GuiBoundsComposition::GetAlignmentToParent() { - return enabledCustomColor; + return alignmentToParent; } - void GuiColorDialog::SetEnabledCustomColor(bool value) + void GuiBoundsComposition::SetAlignmentToParent(Margin value) { - enabledCustomColor = value; + if (alignmentToParent != value) + { + alignmentToParent = value; + InvokeOnCompositionStateChanged(); + } } - bool GuiColorDialog::GetOpenedCustomColor() + bool GuiBoundsComposition::IsAlignedToParent() { - return openedCustomColor; + return alignmentToParent != Margin(-1, -1, -1, -1); } + } + } +} - void GuiColorDialog::SetOpenedCustomColor(bool value) - { - openedCustomColor = value; - } +/*********************************************************************** +.\APPLICATION\GRAPHICSCOMPOSITIONS\GUIGRAPHICSCOMPOSITIONBASE.CPP +***********************************************************************/ - Color GuiColorDialog::GetSelectedColor() +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; + using namespace controls; + using namespace elements; + + void InvokeOnCompositionStateChanged(compositions::GuiGraphicsComposition* composition) { - return selectedColor; + composition->InvokeOnCompositionStateChanged(); } - void GuiColorDialog::SetSelectedColor(Color value) + Size InvokeGetMinPreferredClientSizeInternal(GuiGraphicsComposition* composition, bool considerPreferredMinSize) { - if (selectedColor != value) - { - selectedColor = value; - SelectedColorChanged.Execute(GuiEventArgs()); - } + return composition->GetMinPreferredClientSizeInternal(considerPreferredMinSize); } - collections::List& GuiColorDialog::GetCustomColors() + Rect InvokeGetPreferredBoundsInternal(GuiGraphicsComposition* composition, bool considerPreferredMinSize) { - return customColors; + return composition->GetPreferredBoundsInternal(considerPreferredMinSize); } - bool GuiColorDialog::ShowDialog() + Rect InvokeGetBoundsInternal(GuiGraphicsSite* composition, Rect expectedBounds, bool considerPreferredMinSize) { - Array colors; - CopyFrom(colors, customColors); - colors.Resize(16); - - INativeDialogService::ColorDialogCustomColorOptions options = - !enabledCustomColor ? INativeDialogService::CustomColorDisabled : - !openedCustomColor ? INativeDialogService::CustomColorEnabled : - INativeDialogService::CustomColorOpened; - - auto service = GetCurrentController()->DialogService(); - if (!service->ShowColorDialog(GetHostWindow()->GetNativeWindow(), selectedColor, showSelection, options, &colors[0])) - { - return false; - } - - CopyFrom(customColors, colors); - SelectedColorChanged.Execute(GuiEventArgs()); - return true; + return composition->GetBoundsInternal(expectedBounds, considerPreferredMinSize); } /*********************************************************************** -GuiFontDialog +GuiWindowComposition ***********************************************************************/ - GuiFontDialog::GuiFontDialog() - { - } - - GuiFontDialog::~GuiFontDialog() + GuiWindowComposition::GuiWindowComposition() { } - const FontProperties& GuiFontDialog::GetSelectedFont() + GuiWindowComposition::~GuiWindowComposition() { - return selectedFont; } - void GuiFontDialog::SetSelectedFont(const FontProperties& value) + Rect GuiWindowComposition::GetBounds() { - if (selectedFont != value) + Rect bounds; + if (relatedHostRecord) { - selectedFont = value; - SelectedFontChanged.Execute(GuiEventArgs()); + if (auto window = relatedHostRecord->host->GetNativeWindow()) + { + bounds = Rect(Point(0, 0), window->Convert(window->GetClientSize())); + } } + UpdatePreviousBounds(bounds); + return bounds; } - Color GuiFontDialog::GetSelectedColor() + void GuiWindowComposition::SetMargin(Margin value) { - return selectedColor; } - void GuiFontDialog::SetSelectedColor(Color value) +/*********************************************************************** +GuiGraphicsComposition +***********************************************************************/ + + void GuiGraphicsComposition::OnControlParentChanged(controls::GuiControl* control) { - if (selectedColor != value) + if(associatedControl && associatedControl!=control) { - selectedColor = value; - SelectedColorChanged.Execute(GuiEventArgs()); + if(associatedControl->GetParent()) + { + associatedControl->GetParent()->OnChildRemoved(associatedControl); + } + if(control) + { + control->OnChildInserted(associatedControl); + } + } + else + { + for(vint i=0;iOnControlParentChanged(control); + } } } - bool GuiFontDialog::GetShowSelection() + void GuiGraphicsComposition::OnChildInserted(GuiGraphicsComposition* child) { - return showSelection; + child->OnControlParentChanged(GetRelatedControl()); } - void GuiFontDialog::SetShowSelection(bool value) + void GuiGraphicsComposition::OnChildRemoved(GuiGraphicsComposition* child) { - showSelection = value; + child->OnControlParentChanged(0); } - bool GuiFontDialog::GetShowEffect() + void GuiGraphicsComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) { - return showEffect; + OnParentLineChanged(); } - void GuiFontDialog::SetShowEffect(bool value) + void GuiGraphicsComposition::OnParentLineChanged() { - showEffect = value; + for (vint i = 0; i < children.Count(); i++) + { + children[i]->OnParentLineChanged(); + } } - bool GuiFontDialog::GetForceFontExist() + void GuiGraphicsComposition::OnRenderContextChanged() { - return forceFontExist; } - void GuiFontDialog::SetForceFontExist(bool value) + void GuiGraphicsComposition::UpdateRelatedHostRecord(GraphicsHostRecord* record) { - forceFontExist = value; - } + relatedHostRecord = record; + auto renderTarget = GetRenderTarget(); - bool GuiFontDialog::ShowDialog() - { - auto service = GetCurrentController()->DialogService(); - if (!service->ShowFontDialog(GetHostWindow()->GetNativeWindow(), selectedFont, selectedColor, showSelection, showEffect, forceFontExist)) + if (ownedElement) { - return false; + if (auto renderer = ownedElement->GetRenderer()) + { + renderer->SetRenderTarget(renderTarget); + } } - SelectedColorChanged.Execute(GuiEventArgs()); - SelectedFontChanged.Execute(GuiEventArgs()); - return true; - } + for (vint i = 0; i < children.Count(); i++) + { + children[i]->UpdateRelatedHostRecord(record); + } -/*********************************************************************** -GuiFileDialogBase -***********************************************************************/ + if (HasEventReceiver()) + { + GetEventReceiver()->renderTargetChanged.Execute(GuiEventArgs(this)); + } + if (associatedControl) + { + associatedControl->OnRenderTargetChanged(renderTarget); + } - GuiFileDialogBase::GuiFileDialogBase() - { + OnRenderContextChanged(); } - GuiFileDialogBase::~GuiFileDialogBase() + void GuiGraphicsComposition::SetAssociatedControl(controls::GuiControl* control) { + if (associatedControl) + { + for (vint i = 0; i < children.Count(); i++) + { + children[i]->OnControlParentChanged(0); + } + } + associatedControl = control; + if (associatedControl) + { + for (vint i = 0; i < children.Count(); i++) + { + children[i]->OnControlParentChanged(associatedControl); + } + } } - const WString& GuiFileDialogBase::GetFilter() + void GuiGraphicsComposition::InvokeOnCompositionStateChanged() { - return filter; + if (relatedHostRecord && GetEventuallyVisible()) + { + relatedHostRecord->host->RequestRender(); + } } - void GuiFileDialogBase::SetFilter(const WString& value) + bool GuiGraphicsComposition::SharedPtrDestructorProc(DescriptableObject* obj, bool forceDisposing) { - filter = value; + GuiGraphicsComposition* value=dynamic_cast(obj); + if(value->parent) + { + if (!forceDisposing) return false; + } + SafeDeleteComposition(value); + return true; } - vint GuiFileDialogBase::GetFilterIndex() + GuiGraphicsComposition::GuiGraphicsComposition() { - return filterIndex; + sharedPtrDestructorProc = &GuiGraphicsComposition::SharedPtrDestructorProc; } - void GuiFileDialogBase::SetFilterIndex(vint value) + GuiGraphicsComposition::~GuiGraphicsComposition() { - if (filterIndex != value) + for(vint i=0;iGetParent()) return false; + children.Insert(index, child); + + // composition parent changed -> control parent changed -> related host changed + child->parent = this; + child->OnParentChanged(nullptr, this); + OnChildInserted(child); + child->UpdateRelatedHostRecord(relatedHostRecord); + + InvokeOnCompositionStateChanged(); + return true; } - void GuiFileDialogBase::SetFileName(const WString& value) + bool GuiGraphicsComposition::RemoveChild(GuiGraphicsComposition* child) { - if (fileName != value) + CHECK_ERROR(!isRendering, L"GuiGraphicsComposition::InsertChild(vint, GuiGraphicsComposition*)#Cannot modify composition tree during rendering."); + if (!child) return false; + vint index = children.IndexOf(child); + if (index == -1) return false; + + // composition parent changed -> control parent changed -> related host changed + child->parent = nullptr; + child->OnParentChanged(this, nullptr); + OnChildRemoved(child); + child->UpdateRelatedHostRecord(nullptr); + + GuiGraphicsHost* host = GetRelatedGraphicsHost(); + if (host) { - FileNameChanged.Execute(GuiEventArgs()); + host->DisconnectComposition(child); } + children.RemoveAt(index); + InvokeOnCompositionStateChanged(); + return true; } - WString GuiFileDialogBase::GetDirectory() + bool GuiGraphicsComposition::MoveChild(GuiGraphicsComposition* child, vint newIndex) { - return directory; + if(!child) return false; + vint index=children.IndexOf(child); + if(index==-1) return false; + children.RemoveAt(index); + children.Insert(newIndex, child); + InvokeOnCompositionStateChanged(); + return true; } - void GuiFileDialogBase::SetDirectory(const WString& value) + Ptr GuiGraphicsComposition::GetOwnedElement() { - directory = value; + return ownedElement; } - WString GuiFileDialogBase::GetDefaultExtension() + void GuiGraphicsComposition::SetOwnedElement(Ptr element) { - return defaultExtension; + if (ownedElement != element) + { + if (ownedElement) + { + if (auto renderer = ownedElement->GetRenderer()) + { + renderer->SetRenderTarget(nullptr); + } + ownedElement->SetOwnerComposition(nullptr); + } + ownedElement = element; + if (ownedElement) + { + if (auto renderer = ownedElement->GetRenderer()) + { + renderer->SetRenderTarget(GetRenderTarget()); + } + ownedElement->SetOwnerComposition(this); + } + InvokeOnCompositionStateChanged(); + } } - void GuiFileDialogBase::SetDefaultExtension(const WString& value) + bool GuiGraphicsComposition::GetVisible() { - defaultExtension = value; + return visible; } - INativeDialogService::FileDialogOptions GuiFileDialogBase::GetOptions() + void GuiGraphicsComposition::SetVisible(bool value) { - return options; + if (visible != value) + { + visible = value; + InvokeOnCompositionStateChanged(); + } } - void GuiFileDialogBase::SetOptions(INativeDialogService::FileDialogOptions value) + bool GuiGraphicsComposition::GetEventuallyVisible() { - options = value; + auto current = this; + while (current) + { + if (!current->visible) return false; + current = current->parent; + } + return true; } -/*********************************************************************** -GuiOpenFileDialog -***********************************************************************/ - - GuiOpenFileDialog::GuiOpenFileDialog() + GuiGraphicsComposition::MinSizeLimitation GuiGraphicsComposition::GetMinSizeLimitation() { + return minSizeLimitation; } - GuiOpenFileDialog::~GuiOpenFileDialog() + void GuiGraphicsComposition::SetMinSizeLimitation(MinSizeLimitation value) { + if (minSizeLimitation != value) + { + minSizeLimitation = value; + InvokeOnCompositionStateChanged(); + } } - collections::List& GuiOpenFileDialog::GetFileNames() + elements::IGuiGraphicsRenderTarget* GuiGraphicsComposition::GetRenderTarget() { - return fileNames; + return relatedHostRecord ? relatedHostRecord->renderTarget : nullptr; } - bool GuiOpenFileDialog::ShowDialog() + void GuiGraphicsComposition::Render(Size offset) { - fileNames.Clear(); - auto service = GetCurrentController()->DialogService(); - if (!service->ShowFileDialog( - GetHostWindow()->GetNativeWindow(), - fileNames, - filterIndex, - (enabledPreview ? INativeDialogService::FileDialogOpenPreview : INativeDialogService::FileDialogOpen), - title, - fileName, - directory, - defaultExtension, - filter, - options)) + auto renderTarget = GetRenderTarget(); + if (visible && renderTarget && !renderTarget->IsClipperCoverWholeTarget()) { - return false; - } + Rect bounds = GetBounds(); + bounds.x1 += margin.left; + bounds.y1 += margin.top; + bounds.x2 -= margin.right; + bounds.y2 -= margin.bottom; - if (fileNames.Count() > 0) - { - fileName = fileNames[0]; - FileNameChanged.Execute(GuiEventArgs()); - FilterIndexChanged.Execute(GuiEventArgs()); - } - return true; - } - -/*********************************************************************** -GuiSaveFileDialog -***********************************************************************/ - - GuiSaveFileDialog::GuiSaveFileDialog() - { - } + if (bounds.x1 <= bounds.x2 && bounds.y1 <= bounds.y2) + { + bounds.x1 += offset.x; + bounds.x2 += offset.x; + bounds.y1 += offset.y; + bounds.y2 += offset.y; - GuiSaveFileDialog::~GuiSaveFileDialog() - { + isRendering = true; + if (ownedElement) + { + IGuiGraphicsRenderer* renderer = ownedElement->GetRenderer(); + if (renderer) + { + renderer->Render(bounds); + } + } + if (children.Count() > 0) + { + bounds.x1 += internalMargin.left; + bounds.y1 += internalMargin.top; + bounds.x2 -= internalMargin.right; + bounds.y2 -= internalMargin.bottom; + if (bounds.x1 <= bounds.x2 && bounds.y1 <= bounds.y2) + { + offset = bounds.GetSize(); + renderTarget->PushClipper(bounds); + if (!renderTarget->IsClipperCoverWholeTarget()) + { + for (vint i = 0; i < children.Count(); i++) + { + children[i]->Render(Size(bounds.x1, bounds.y1)); + } + } + renderTarget->PopClipper(); + } + } + isRendering = false; + } + } } - bool GuiSaveFileDialog::ShowDialog() + GuiGraphicsEventReceiver* GuiGraphicsComposition::GetEventReceiver() { - List fileNames; - auto service = GetCurrentController()->DialogService(); - if (!service->ShowFileDialog( - GetHostWindow()->GetNativeWindow(), - fileNames, - filterIndex, - (enabledPreview ? INativeDialogService::FileDialogSavePreview : INativeDialogService::FileDialogSave), - title, - fileName, - directory, - defaultExtension, - filter, - options)) - { - return false; - } - - if (fileNames.Count() > 0) + if(!eventReceiver) { - fileName = fileNames[0]; - FileNameChanged.Execute(GuiEventArgs()); - FilterIndexChanged.Execute(GuiEventArgs()); + eventReceiver=Ptr(new GuiGraphicsEventReceiver(this)); } - return true; + return eventReceiver.Obj(); } - } - } -} - -/*********************************************************************** -.\CONTROLS\GUILABELCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; -/*********************************************************************** -GuiLabel -***********************************************************************/ - - void GuiLabel::BeforeControlTemplateUninstalled_() + bool GuiGraphicsComposition::HasEventReceiver() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - textColorConsisted = (textColor == ct->GetDefaultTextColor()); + return eventReceiver; } - void GuiLabel::AfterControlTemplateInstalled_(bool initialize) + GuiGraphicsComposition* GuiGraphicsComposition::FindComposition(Point location, bool forMouseEvent) { - auto ct = TypedControlTemplateObject(true); - if (initialize || textColorConsisted) - { - SetTextColor(ct->GetDefaultTextColor()); - } - else + if (!visible) return 0; + Rect bounds = GetBounds(); + Rect relativeBounds = Rect(Point(0, 0), bounds.GetSize()); + if (relativeBounds.Contains(location)) { - ct->SetTextColor(textColor); - } - } + Rect clientArea = GetClientArea(); + for (vint i = children.Count() - 1; i >= 0; i--) + { + GuiGraphicsComposition* child = children[i]; + Rect childBounds = child->GetBounds(); + vint offsetX = childBounds.x1 + (clientArea.x1 - bounds.x1); + vint offsetY = childBounds.y1 + (clientArea.y1 - bounds.y1); + Point newLocation = location - Size(offsetX, offsetY); + GuiGraphicsComposition* childResult = child->FindComposition(newLocation, forMouseEvent); + if (childResult) + { + return childResult; + } + } - GuiLabel::GuiLabel(theme::ThemeName themeName) - :GuiControl(themeName) - { + if (!forMouseEvent || !transparentToMouse) + { + return this; + } + } + return nullptr; } - GuiLabel::~GuiLabel() + bool GuiGraphicsComposition::GetTransparentToMouse() { + return transparentToMouse; } - Color GuiLabel::GetTextColor() + void GuiGraphicsComposition::SetTransparentToMouse(bool value) { - return textColor; + transparentToMouse = value; } - void GuiLabel::SetTextColor(Color value) + Rect GuiGraphicsComposition::GetGlobalBounds() { - if (textColor != value) + Rect bounds = GetBounds(); + GuiGraphicsComposition* composition = parent; + while (composition) { - textColor = value; - TypedControlTemplateObject(true)->SetTextColor(textColor); + Rect clientArea = composition->GetClientArea(); + Rect parentBounds = composition->GetBounds(); + bounds.x1 += clientArea.x1; + bounds.x2 += clientArea.x1; + bounds.y1 += clientArea.y1; + bounds.y2 += clientArea.y1; + composition = composition->parent; } - } - } - } -} - -/*********************************************************************** -.\CONTROLS\GUISCROLLCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; - -/*********************************************************************** -GuiScroll::CommandExecutor -***********************************************************************/ - - GuiScroll::CommandExecutor::CommandExecutor(GuiScroll* _scroll) - :scroll(_scroll) - { - } - - GuiScroll::CommandExecutor::~CommandExecutor() - { + return bounds; } - void GuiScroll::CommandExecutor::SmallDecrease() + controls::GuiControl* GuiGraphicsComposition::GetAssociatedControl() { - scroll->SetPosition(scroll->GetPosition()-scroll->GetSmallMove()); + return associatedControl; } - void GuiScroll::CommandExecutor::SmallIncrease() + GuiGraphicsHost* GuiGraphicsComposition::GetAssociatedHost() { - scroll->SetPosition(scroll->GetPosition()+scroll->GetSmallMove()); + if (relatedHostRecord && relatedHostRecord->host->GetMainComposition() == this) + { + return relatedHostRecord->host; + } + else + { + return nullptr; + } } - void GuiScroll::CommandExecutor::BigDecrease() + INativeCursor* GuiGraphicsComposition::GetAssociatedCursor() { - scroll->SetPosition(scroll->GetPosition()-scroll->GetBigMove()); + return associatedCursor; } - void GuiScroll::CommandExecutor::BigIncrease() - { - scroll->SetPosition(scroll->GetPosition()+scroll->GetBigMove()); - } - - void GuiScroll::CommandExecutor::SetTotalSize(vint value) + void GuiGraphicsComposition::SetAssociatedCursor(INativeCursor* cursor) { - scroll->SetTotalSize(value); + associatedCursor = cursor; } - void GuiScroll::CommandExecutor::SetPageSize(vint value) + INativeWindowListener::HitTestResult GuiGraphicsComposition::GetAssociatedHitTestResult() { - scroll->SetPageSize(value); + return associatedHitTestResult; } - void GuiScroll::CommandExecutor::SetPosition(vint value) + void GuiGraphicsComposition::SetAssociatedHitTestResult(INativeWindowListener::HitTestResult value) { - scroll->SetPosition(value); + associatedHitTestResult = value; } -/*********************************************************************** -GuiScroll -***********************************************************************/ - - void GuiScroll::OnActiveAlt() + controls::GuiControl* GuiGraphicsComposition::GetRelatedControl() { - if (autoFocus) + GuiGraphicsComposition* composition = this; + while (composition) { - GuiControl::OnActiveAlt(); + if (composition->GetAssociatedControl()) + { + return composition->GetAssociatedControl(); + } + else + { + composition = composition->GetParent(); + } } + return nullptr; } - bool GuiScroll::IsTabAvailable() + GuiGraphicsHost* GuiGraphicsComposition::GetRelatedGraphicsHost() { - return autoFocus && GuiControl::IsTabAvailable(); + return relatedHostRecord ? relatedHostRecord->host : nullptr; } - void GuiScroll::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + controls::GuiControlHost* GuiGraphicsComposition::GetRelatedControlHost() { - if (arguments.eventSource == focusableComposition) + if (auto control = GetRelatedControl()) { - switch (arguments.code) - { - case VKEY::KEY_HOME: - SetPosition(GetMinPosition()); - arguments.handled = true; - break; - case VKEY::KEY_END: - SetPosition(GetMaxPosition()); - arguments.handled = true; - break; - case VKEY::KEY_PRIOR: - commandExecutor->BigDecrease(); - arguments.handled = true; - break; - case VKEY::KEY_NEXT: - commandExecutor->BigIncrease(); - arguments.handled = true; - break; - case VKEY::KEY_LEFT: - case VKEY::KEY_UP: - commandExecutor->SmallDecrease(); - arguments.handled = true; - break; - case VKEY::KEY_RIGHT: - case VKEY::KEY_DOWN: - commandExecutor->SmallIncrease(); - arguments.handled = true; - break; - default:; - } + return control->GetRelatedControlHost(); } + return nullptr; } - void GuiScroll::OnMouseDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + INativeCursor* GuiGraphicsComposition::GetRelatedCursor() { - if (autoFocus) + GuiGraphicsComposition* composition = this; + while (composition) { - SetFocus(); + if (composition->GetAssociatedCursor()) + { + return composition->GetAssociatedCursor(); + } + else + { + composition = composition->GetParent(); + } } + return nullptr; } - void GuiScroll::BeforeControlTemplateUninstalled_() + Margin GuiGraphicsComposition::GetMargin() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - ct->SetCommands(nullptr); + return margin; } - void GuiScroll::AfterControlTemplateInstalled_(bool initialize) + void GuiGraphicsComposition::SetMargin(Margin value) { - auto ct = TypedControlTemplateObject(true); - ct->SetCommands(commandExecutor.Obj()); - ct->SetPageSize(pageSize); - ct->SetTotalSize(totalSize); - ct->SetPosition(position); + if (margin != value) + { + margin = value; + InvokeOnCompositionStateChanged(); + } } - GuiScroll::GuiScroll(theme::ThemeName themeName) - :GuiControl(themeName) + Margin GuiGraphicsComposition::GetInternalMargin() { - SetFocusableComposition(boundsComposition); - - TotalSizeChanged.SetAssociatedComposition(boundsComposition); - PageSizeChanged.SetAssociatedComposition(boundsComposition); - PositionChanged.SetAssociatedComposition(boundsComposition); - SmallMoveChanged.SetAssociatedComposition(boundsComposition); - BigMoveChanged.SetAssociatedComposition(boundsComposition); - - commandExecutor = new CommandExecutor(this); - boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiScroll::OnKeyDown); - boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiScroll::OnMouseDown); - boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiScroll::OnMouseDown); + return internalMargin; } - GuiScroll::~GuiScroll() + void GuiGraphicsComposition::SetInternalMargin(Margin value) { + if (internalMargin != value) + { + internalMargin = value; + InvokeOnCompositionStateChanged(); + } } - vint GuiScroll::GetTotalSize() + Size GuiGraphicsComposition::GetPreferredMinSize() { - return totalSize; + return preferredMinSize; } - void GuiScroll::SetTotalSize(vint value) + void GuiGraphicsComposition::SetPreferredMinSize(Size value) { - if(totalSize!=value && 0totalSize) - { - SetPageSize(totalSize); - } - if(position>GetMaxPosition()) - { - SetPosition(GetMaxPosition()); - } - TypedControlTemplateObject(true)->SetTotalSize(totalSize); - TotalSizeChanged.Execute(GetNotifyEventArguments()); + preferredMinSize = value; + InvokeOnCompositionStateChanged(); } } - vint GuiScroll::GetPageSize() + Rect GuiGraphicsComposition::GetClientArea() { - return pageSize; + Rect bounds=GetBounds(); + bounds.x1+=margin.left+internalMargin.left; + bounds.y1+=margin.top+internalMargin.top; + bounds.x2-=margin.right+internalMargin.right; + bounds.y2-=margin.bottom+internalMargin.bottom; + return bounds; } - void GuiScroll::SetPageSize(vint value) + void GuiGraphicsComposition::ForceCalculateSizeImmediately() { - if(pageSize!=value && 0<=value && value<=totalSize) + isRendering = true; + for (vint i = 0; i < children.Count(); i++) { - pageSize=value; - if(position>GetMaxPosition()) - { - SetPosition(GetMaxPosition()); - } - TypedControlTemplateObject(true)->SetPageSize(pageSize); - PageSizeChanged.Execute(GetNotifyEventArguments()); + children[i]->ForceCalculateSizeImmediately(); } + isRendering = false; + InvokeOnCompositionStateChanged(); } - vint GuiScroll::GetPosition() + Size GuiGraphicsComposition::GetMinPreferredClientSize() { - return position; + return GetMinPreferredClientSizeInternal(true); } - void GuiScroll::SetPosition(vint value) + Rect GuiGraphicsComposition::GetPreferredBounds() { - vint min=GetMinPosition(); - vint max=GetMaxPosition(); - vint newPosition= - valuemax?max: - value; - if(position!=newPosition) - { - position=newPosition; - TypedControlTemplateObject(true)->SetPosition(position); - PositionChanged.Execute(GetNotifyEventArguments()); - } + return GetPreferredBoundsInternal(true); } - vint GuiScroll::GetSmallMove() - { - return smallMove; - } +/*********************************************************************** +GuiGraphicsSite +***********************************************************************/ - void GuiScroll::SetSmallMove(vint value) + Rect GuiGraphicsSite::GetBoundsInternal(Rect expectedBounds, bool considerPreferredMinSize) { - if(value>0 && smallMove!=value) + Size minSize = GetMinPreferredClientSizeInternal(considerPreferredMinSize); + if (considerPreferredMinSize) { - smallMove=value; - SmallMoveChanged.Execute(GetNotifyEventArguments()); + if (minSize.x < preferredMinSize.x) minSize.x = preferredMinSize.x; + if (minSize.y < preferredMinSize.y) minSize.y = preferredMinSize.y; } - } - vint GuiScroll::GetBigMove() - { - return bigMove; + minSize.x += margin.left + margin.right + internalMargin.left + internalMargin.right; + minSize.y += margin.top + margin.bottom + internalMargin.top + internalMargin.bottom; + vint w = expectedBounds.Width(); + vint h = expectedBounds.Height(); + if (minSize.x < w) minSize.x = w; + if (minSize.y < h) minSize.y = h; + return Rect(expectedBounds.LeftTop(), minSize); } - void GuiScroll::SetBigMove(vint value) + void GuiGraphicsSite::UpdatePreviousBounds(Rect bounds) { - if(value>0 && bigMove!=value) + if (previousBounds != bounds) { - bigMove=value; - BigMoveChanged.Execute(GetNotifyEventArguments()); + previousBounds = bounds; + BoundsChanged.Execute(GuiEventArgs(this)); + InvokeOnCompositionStateChanged(); } } - vint GuiScroll::GetMinPosition() + Size GuiGraphicsSite::GetMinPreferredClientSizeInternal(bool considerPreferredMinSize) { - return 0; + Size minSize; + if (minSizeLimitation != GuiGraphicsComposition::NoLimit) + { + if (ownedElement) + { + IGuiGraphicsRenderer* renderer = ownedElement->GetRenderer(); + if (renderer) + { + minSize = renderer->GetMinSize(); + } + } + } + if (minSizeLimitation == GuiGraphicsComposition::LimitToElementAndChildren) + { + vint childCount = Children().Count(); + for (vint i = 0; i < childCount; i++) + { + GuiGraphicsComposition* child = children[i]; + if (child->IsSizeAffectParent()) + { + Rect childBounds = InvokeGetPreferredBoundsInternal(child, considerPreferredMinSize); + if (minSize.x < childBounds.x2) minSize.x = childBounds.x2; + if (minSize.y < childBounds.y2) minSize.y = childBounds.y2; + } + } + } + return minSize; } - vint GuiScroll::GetMaxPosition() + Rect GuiGraphicsSite::GetPreferredBoundsInternal(bool considerPreferredMinSize) { - return totalSize-pageSize; + return GetBoundsInternal(Rect(Point(0, 0), GetMinPreferredClientSize()), considerPreferredMinSize); } - bool GuiScroll::GetAutoFocus() + GuiGraphicsSite::GuiGraphicsSite() { - return autoFocus; + BoundsChanged.SetAssociatedComposition(this); } - void GuiScroll::SetAutoFocus(bool value) + GuiGraphicsSite::~GuiGraphicsSite() { - autoFocus = value; } - } - } -} - -/*********************************************************************** -.\CONTROLS\GUIWINDOWCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; -/*********************************************************************** -GuiControlHost -***********************************************************************/ - - void GuiControlHost::OnNativeWindowChanged() + bool GuiGraphicsSite::IsSizeAffectParent() { + return true; } - void GuiControlHost::OnVisualStatusChanged() + Rect GuiGraphicsSite::GetPreviousCalculatedBounds() { + return previousBounds; } - controls::GuiControlHost* GuiControlHost::GetControlHostForInstance() +/*********************************************************************** +Helper Functions +***********************************************************************/ + + void NotifyFinalizeInstance(controls::GuiControl* value) { - return this; + if (value) + { + NotifyFinalizeInstance(value->GetBoundsComposition()); + } } - GuiControl* GuiControlHost::GetTooltipOwner(Point location) + void NotifyFinalizeInstance(GuiGraphicsComposition* value) { - GuiGraphicsComposition* composition=this->GetBoundsComposition()->FindComposition(location, true); - if(composition) + if (value) { - GuiControl* control=composition->GetRelatedControl(); - while(control) + bool finalized = false; + if (auto root = dynamic_cast(value)) { - if(control->GetTooltipControl()) + if (root->IsFinalized()) { - return control; + finalized = true; + } + else + { + root->FinalizeInstance(); } - control=control->GetParent(); } - } - return nullptr; - } - void GuiControlHost::MoveIntoTooltipControl(GuiControl* tooltipControl, Point location) - { - if (tooltipLocation != location) - { - tooltipLocation = location; + if (auto control = value->GetAssociatedControl()) { - GuiControl* currentOwner = GetApplication()->GetTooltipOwner(); - if (currentOwner && currentOwner != tooltipControl) + if (auto root = dynamic_cast(control)) { - if (tooltipCloseDelay) + if (root->IsFinalized()) { - tooltipCloseDelay->Cancel(); - tooltipCloseDelay = 0; + finalized = true; } - GetApplication()->DelayExecuteInMainThread([=]() + else { - currentOwner->CloseTooltip(); - }, TooltipDelayCloseTime); + root->FinalizeInstance(); + } } } - if (!tooltipControl) + + if (!finalized) { - if (tooltipOpenDelay) + vint count = value->Children().Count(); + for (vint i = 0; i < count; i++) { - tooltipOpenDelay->Cancel(); - tooltipOpenDelay = 0; + NotifyFinalizeInstance(value->Children()[i]); } } - else if (tooltipOpenDelay) - { - tooltipOpenDelay->Delay(TooltipDelayOpenTime); - } - else if (GetApplication()->GetTooltipOwner() != tooltipControl) - { - tooltipOpenDelay = GetApplication()->DelayExecuteInMainThread([this]() - { - GuiControl* owner = GetTooltipOwner(tooltipLocation); - if (owner) - { - Point offset = owner->GetBoundsComposition()->GetGlobalBounds().LeftTop(); - Point p(tooltipLocation.x - offset.x, tooltipLocation.y - offset.y + 24); - owner->DisplayTooltip(p); - tooltipOpenDelay = 0; - - tooltipCloseDelay = GetApplication()->DelayExecuteInMainThread([this, owner]() - { - owner->CloseTooltip(); - }, TooltipDelayLifeTime); - } - }, TooltipDelayOpenTime); - } } } - void GuiControlHost::MouseMoving(const NativeWindowMouseInfo& info) + void SafeDeleteControlInternal(controls::GuiControl* value) { - if (!info.left && !info.middle && !info.right) + if(value) { - GuiControl* tooltipControl = GetTooltipOwner(tooltipLocation); - MoveIntoTooltipControl(tooltipControl, Point(host->GetNativeWindow()->Convert(NativePoint(info.x, info.y)))); + if (value->GetRelatedControlHost() != value) + { + GuiGraphicsComposition* bounds = value->GetBoundsComposition(); + if (bounds->GetParent()) + { + bounds->GetParent()->RemoveChild(bounds); + } + } + delete value; } } - void GuiControlHost::MouseLeaved() + void SafeDeleteCompositionInternal(GuiGraphicsComposition* value) { - MoveIntoTooltipControl(0, Point(-1, -1)); - } + if (value) + { + if (value->GetParent()) + { + value->GetParent()->RemoveChild(value); + } - void GuiControlHost::Moved() - { - OnVisualStatusChanged(); + if (value->GetAssociatedControl()) + { + SafeDeleteControlInternal(value->GetAssociatedControl()); + } + else + { + for (vint i = value->Children().Count() - 1; i >= 0; i--) + { + SafeDeleteCompositionInternal(value->Children().Get(i)); + } + delete value; + } + } } - void GuiControlHost::Enabled() + void SafeDeleteControl(controls::GuiControl* value) { - GuiControl::SetEnabled(true); - OnVisualStatusChanged(); + if (auto controlHost = dynamic_cast(value)) + { + controlHost->DeleteAfterProcessingAllEvents({}); + } + else + { + NotifyFinalizeInstance(value); + SafeDeleteControlInternal(value); + } } - void GuiControlHost::Disabled() + void SafeDeleteComposition(GuiGraphicsComposition* value) { - GuiControl::SetEnabled(false); - OnVisualStatusChanged(); + NotifyFinalizeInstance(value); + SafeDeleteCompositionInternal(value); } + } + } +} - void GuiControlHost::GotFocus() - { - WindowGotFocus.Execute(GetNotifyEventArguments()); - OnVisualStatusChanged(); - } +/*********************************************************************** +.\APPLICATION\GRAPHICSCOMPOSITIONS\GUIGRAPHICSEVENTRECEIVER.CPP +***********************************************************************/ - void GuiControlHost::LostFocus() - { - WindowLostFocus.Execute(GetNotifyEventArguments()); - OnVisualStatusChanged(); - } +namespace vl +{ + namespace presentation + { + namespace compositions + { - void GuiControlHost::Activated() - { - WindowActivated.Execute(GetNotifyEventArguments()); - OnVisualStatusChanged(); - } +/*********************************************************************** +Event Receiver +***********************************************************************/ - void GuiControlHost::Deactivated() + GuiGraphicsEventReceiver::GuiGraphicsEventReceiver(GuiGraphicsComposition* _sender) + :sender(_sender) + ,leftButtonDown(_sender) + ,leftButtonUp(_sender) + ,leftButtonDoubleClick(_sender) + ,middleButtonDown(_sender) + ,middleButtonUp(_sender) + ,middleButtonDoubleClick(_sender) + ,rightButtonDown(_sender) + ,rightButtonUp(_sender) + ,rightButtonDoubleClick(_sender) + ,horizontalWheel(_sender) + ,verticalWheel(_sender) + ,mouseMove(_sender) + ,mouseEnter(_sender) + ,mouseLeave(_sender) + ,previewKey(_sender) + ,keyDown(_sender) + ,keyUp(_sender) + ,previewCharInput(_sender) + ,charInput(_sender) + ,gotFocus(_sender) + ,lostFocus(_sender) + ,caretNotify(_sender) + ,clipboardNotify(_sender) { - WindowDeactivated.Execute(GetNotifyEventArguments()); - OnVisualStatusChanged(); } - void GuiControlHost::Opened() + GuiGraphicsEventReceiver::~GuiGraphicsEventReceiver() { - WindowOpened.Execute(GetNotifyEventArguments()); } - void GuiControlHost::Closing(bool& cancel) + GuiGraphicsComposition* GuiGraphicsEventReceiver::GetAssociatedComposition() { - GuiRequestEventArgs arguments(boundsComposition); - arguments.cancel=cancel; - WindowClosing.Execute(arguments); - if(!arguments.handled) - { - cancel=arguments.cancel; - } + return sender; } + } + } +} - void GuiControlHost::Closed() - { - WindowClosed.Execute(GetNotifyEventArguments()); - } +/*********************************************************************** +.\APPLICATION\GRAPHICSHOST\GUIGRAPHICSHOST.CPP +***********************************************************************/ - void GuiControlHost::Destroying() - { - WindowDestroying.Execute(GetNotifyEventArguments()); - calledDestroyed = true; - if (deleteWhenDestroyed) - { - GetApplication()->InvokeInMainThread(this, [=]() - { - delete this; - }); - } - SetNativeWindow(nullptr); - } +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; + using namespace controls; + using namespace elements; - void GuiControlHost::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) +/*********************************************************************** +GuiGraphicsTimerManager +***********************************************************************/ + + GuiGraphicsTimerManager::GuiGraphicsTimerManager() { - auto size = GetClientSize(); - if (size != clientSize) - { - SetClientSize(clientSize); - } } - GuiControlHost::GuiControlHost(theme::ThemeName themeName, INativeWindow::WindowMode mode) - :GuiControl(themeName) - , windowMode(mode) + GuiGraphicsTimerManager::~GuiGraphicsTimerManager() { - boundsComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - - WindowGotFocus.SetAssociatedComposition(boundsComposition); - WindowLostFocus.SetAssociatedComposition(boundsComposition); - WindowActivated.SetAssociatedComposition(boundsComposition); - WindowDeactivated.SetAssociatedComposition(boundsComposition); - WindowOpened.SetAssociatedComposition(boundsComposition); - WindowClosing.SetAssociatedComposition(boundsComposition); - WindowClosed.SetAssociatedComposition(boundsComposition); - WindowDestroying.SetAssociatedComposition(boundsComposition); - - host=new GuiGraphicsHost(this, boundsComposition); - sharedPtrDestructorProc = 0; } - GuiControlHost::~GuiControlHost() + void GuiGraphicsTimerManager::AddCallback(Ptr callback) { - FinalizeInstanceRecursively(this); - OnBeforeReleaseGraphicsHost(); - delete host; + callbacks.Add(callback); } - void GuiControlHost::DeleteAfterProcessingAllEvents() + void GuiGraphicsTimerManager::Play() { - auto window = host->GetNativeWindow(); - if (calledDestroyed || !window) - { - delete this; - } - else + for (vint i = callbacks.Count() - 1; i >= 0; i--) { - deleteWhenDestroyed = true; - GetCurrentController()->WindowService()->DestroyNativeWindow(window); + auto callback = callbacks[i]; + if (!callback->Play()) + { + callbacks.RemoveAt(i); + } } } - compositions::GuiGraphicsHost* GuiControlHost::GetGraphicsHost() - { - return host; - } - - compositions::GuiGraphicsComposition* GuiControlHost::GetMainComposition() - { - return host->GetMainComposition(); - } +/*********************************************************************** +GuiGraphicsHost +***********************************************************************/ - INativeWindow* GuiControlHost::GetNativeWindow() + void GuiGraphicsHost::RefreshRelatedHostRecord(INativeWindow* nativeWindow) { - return host->GetNativeWindow(); + hostRecord.nativeWindow = nativeWindow; + hostRecord.renderTarget = nativeWindow ? GetGuiGraphicsResourceManager()->GetRenderTarget(nativeWindow) : nullptr; + windowComposition->UpdateRelatedHostRecord(&hostRecord); } - void GuiControlHost::SetNativeWindow(INativeWindow* window) + void GuiGraphicsHost::DisconnectCompositionInternal(GuiGraphicsComposition* composition) { - if(host->GetNativeWindow()) + for(vint i=0;iChildren().Count();i++) { - host->GetNativeWindow()->UninstallListener(this); + DisconnectCompositionInternal(composition->Children().Get(i)); } - if (window) + if(mouseCaptureComposition==composition) { - if (windowMode != window->GetWindowMode()) + if(hostRecord.nativeWindow) { - CHECK_FAIL(L"GuiControlHost::SetNativeWindow(INativeWindow*)#Window mode does not match."); + hostRecord.nativeWindow->ReleaseCapture(); } + mouseCaptureComposition=0; } - host->SetNativeWindow(window); - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->InstallListener(this); - } - OnNativeWindowChanged(); - } - - void GuiControlHost::ForceCalculateSizeImmediately() - { - auto size = GetClientSize(); - boundsComposition->ForceCalculateSizeImmediately(); - SetClientSize(size); - } - - bool GuiControlHost::GetEnabled() - { - if(host->GetNativeWindow()) - { - return host->GetNativeWindow()->IsEnabled(); - } - else + if(focusedComposition==composition) { - return false; + focusedComposition=0; } + mouseEnterCompositions.Remove(composition); } - void GuiControlHost::SetEnabled(bool value) + void GuiGraphicsHost::MouseCapture(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) + if (hostRecord.nativeWindow && (info.left || info.middle || info.right)) { - if(value) - { - host->GetNativeWindow()->Enable(); - } - else + if (!hostRecord.nativeWindow->IsCapturing() && !info.nonClient) { - host->GetNativeWindow()->Disable(); + hostRecord.nativeWindow->RequireCapture(); + auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); + mouseCaptureComposition = windowComposition->FindComposition(point, true); } } } - bool GuiControlHost::GetFocused() + void GuiGraphicsHost::MouseUncapture(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - return host->GetNativeWindow()->IsFocused(); - } - else + if(hostRecord.nativeWindow && !(info.left || info.middle || info.right)) { - return false; + hostRecord.nativeWindow->ReleaseCapture(); + mouseCaptureComposition=0; } } - void GuiControlHost::SetFocused() + void GuiGraphicsHost::OnCharInput(const NativeWindowCharInfo& info, GuiGraphicsComposition* composition, GuiCharEvent GuiGraphicsEventReceiver::* eventReceiverEvent) { - if(host->GetNativeWindow()) + List compositions; + while(composition) { - host->GetNativeWindow()->SetFocus(); + if(composition->HasEventReceiver()) + { + compositions.Add(composition); + } + composition=composition->GetParent(); } - } - bool GuiControlHost::GetActivated() - { - if(host->GetNativeWindow()) - { - return host->GetNativeWindow()->IsActivated(); - } - else - { - return false; - } - } + GuiCharEventArgs arguments(composition); + (NativeWindowCharInfo&)arguments=info; - void GuiControlHost::SetActivated() - { - if(host->GetNativeWindow()) + for(vint i=compositions.Count()-1;i>=0;i--) { - host->GetNativeWindow()->SetActivate(); + compositions[i]->GetEventReceiver()->previewCharInput.Execute(arguments); + if(arguments.handled) + { + return; + } } - } - bool GuiControlHost::GetShowInTaskBar() - { - if(host->GetNativeWindow()) - { - return host->GetNativeWindow()->IsAppearedInTaskBar(); - } - else + for(vint i=0;iGetEventReceiver()->*eventReceiverEvent).Execute(arguments); + if(arguments.handled) + { + return; + } } } - void GuiControlHost::SetShowInTaskBar(bool value) + void GuiGraphicsHost::OnKeyInput(const NativeWindowKeyInfo& info, GuiGraphicsComposition* composition, GuiKeyEvent GuiGraphicsEventReceiver::* eventReceiverEvent) { - if(host->GetNativeWindow()) + List compositions; { - if(value) - { - host->GetNativeWindow()->ShowInTaskBar(); - } - else + auto current = composition; + while (current) { - host->GetNativeWindow()->HideInTaskBar(); + if (current->HasEventReceiver()) + { + compositions.Add(current); + } + current = current->GetParent(); } } - } - bool GuiControlHost::GetEnabledActivate() - { - if(host->GetNativeWindow()) + GuiKeyEventArgs arguments(composition); + (NativeWindowKeyInfo&)arguments = info; + + for (vint i = compositions.Count() - 1; i >= 0; i--) { - return host->GetNativeWindow()->IsEnabledActivate(); + compositions[i]->GetEventReceiver()->previewKey.Execute(arguments); + if (arguments.handled) + { + return; + } } - else + + for (vint i = 0; i < compositions.Count(); i++) { - return false; + (compositions[i]->GetEventReceiver()->*eventReceiverEvent).Execute(arguments); + if (arguments.handled) + { + return; + } } } - void GuiControlHost::SetEnabledActivate(bool value) + void GuiGraphicsHost::RaiseMouseEvent(GuiMouseEventArgs& arguments, GuiGraphicsComposition* composition, GuiMouseEvent GuiGraphicsEventReceiver::* eventReceiverEvent) { - if(host->GetNativeWindow()) + arguments.compositionSource=composition; + arguments.eventSource=0; + vint x=arguments.x; + vint y=arguments.y; + + while(composition) { - if(value) + if(composition->HasEventReceiver()) { - host->GetNativeWindow()->EnableActivate(); + if(!arguments.eventSource) + { + arguments.eventSource=composition; + } + GuiGraphicsEventReceiver* eventReceiver=composition->GetEventReceiver(); + (eventReceiver->*eventReceiverEvent).Execute(arguments); + if(arguments.handled) + { + break; + } } - else + + GuiGraphicsComposition* parent=composition->GetParent(); + if(parent) { - host->GetNativeWindow()->DisableActivate(); + Rect parentBounds=parent->GetBounds(); + Rect clientArea=parent->GetClientArea(); + Rect childBounds=composition->GetBounds(); + + x+=childBounds.x1+(clientArea.x1-parentBounds.x1); + y+=childBounds.y1+(clientArea.y1-parentBounds.y1); + arguments.x=x; + arguments.y=y; } + composition=parent; } } - bool GuiControlHost::GetTopMost() + void GuiGraphicsHost::OnMouseInput(const NativeWindowMouseInfo& info, bool capture, bool release, GuiMouseEvent GuiGraphicsEventReceiver::* eventReceiverEvent) { - if(host->GetNativeWindow()) + if (capture) MouseCapture(info); + GuiGraphicsComposition* composition = 0; + if (mouseCaptureComposition) { - return host->GetNativeWindow()->GetTopMost(); + composition = mouseCaptureComposition; } else { - return false; + auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); + composition = windowComposition->FindComposition(point, true); } - } + if (release) MouseUncapture(info); - void GuiControlHost::SetTopMost(bool topmost) - { - if(host->GetNativeWindow()) + if (composition) { - host->GetNativeWindow()->SetTopMost(topmost); + Rect bounds = composition->GetGlobalBounds(); + Point point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); + GuiMouseEventArgs arguments; + arguments.ctrl = info.ctrl; + arguments.shift = info.shift; + arguments.left = info.left; + arguments.middle = info.middle; + arguments.right = info.right; + arguments.wheel = info.wheel; + arguments.nonClient = info.nonClient; + arguments.x = point.x - bounds.x1; + arguments.y = point.y - bounds.y1; + RaiseMouseEvent(arguments, composition, eventReceiverEvent); } } - compositions::IGuiShortcutKeyManager* GuiControlHost::GetShortcutKeyManager() + void GuiGraphicsHost::ResetRenderTarget() { - return host->GetShortcutKeyManager(); + windowComposition->UpdateRelatedHostRecord(nullptr); } - void GuiControlHost::SetShortcutKeyManager(compositions::IGuiShortcutKeyManager* value) + void GuiGraphicsHost::CreateRenderTarget() { - host->SetShortcutKeyManager(value); + GetGuiGraphicsResourceManager()->RecreateRenderTarget(hostRecord.nativeWindow); + RefreshRelatedHostRecord(hostRecord.nativeWindow); } - compositions::GuiGraphicsTimerManager* GuiControlHost::GetTimerManager() + INativeWindowListener::HitTestResult GuiGraphicsHost::HitTest(NativePoint location) { - return host->GetTimerManager(); + NativeRect bounds = hostRecord.nativeWindow->GetBounds(); + NativeRect clientBounds = hostRecord.nativeWindow->GetClientBoundsInScreen(); + NativePoint clientLocation(location.x + bounds.x1 - clientBounds.x1, location.y + bounds.y1 - clientBounds.y1); + auto point = hostRecord.nativeWindow->Convert(clientLocation); + GuiGraphicsComposition* hitComposition = windowComposition->FindComposition(point, true); + while (hitComposition) + { + INativeWindowListener::HitTestResult result = hitComposition->GetAssociatedHitTestResult(); + if (result == INativeWindowListener::NoDecision) + { + hitComposition = hitComposition->GetParent(); + } + else + { + return result; + } + } + return INativeWindowListener::NoDecision; } - Size GuiControlHost::GetClientSize() + void GuiGraphicsHost::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) { - if (auto window = host->GetNativeWindow()) + NativeRect oldBounds = hostRecord.nativeWindow->GetBounds(); + minSize = windowComposition->GetPreferredBounds().GetSize(); + NativeSize minWindowSize = hostRecord.nativeWindow->Convert(minSize) + (oldBounds.GetSize() - hostRecord.nativeWindow->GetClientSize()); + if (bounds.Width() < minWindowSize.x) { - return window->Convert(window->GetClientSize()); + if (fixSizeOnly) + { + if (bounds.Width() < minWindowSize.x) + { + bounds.x2 = bounds.x1 + minWindowSize.x; + } + } + else if (oldBounds.x1 != bounds.x1) + { + bounds.x1 = oldBounds.x2 - minWindowSize.x; + } + else if (oldBounds.x2 != bounds.x2) + { + bounds.x2 = oldBounds.x1 + minWindowSize.x; + } } - else + if (bounds.Height() < minWindowSize.y) { - return Size(0, 0); + if (fixSizeOnly) + { + if (bounds.Height() < minWindowSize.y) + { + bounds.y2 = bounds.y1 + minWindowSize.y; + } + } + else if (oldBounds.y1 != bounds.y1) + { + bounds.y1 = oldBounds.y2 - minWindowSize.y; + } + else if (oldBounds.y2 != bounds.y2) + { + bounds.y2 = oldBounds.y1 + minWindowSize.y; + } } } - void GuiControlHost::SetClientSize(Size value) + void GuiGraphicsHost::Moved() { - if (auto window = host->GetNativeWindow()) + NativeSize size = hostRecord.nativeWindow->GetClientSize(); + if (previousClientSize != size) { - host->GetNativeWindow()->SetClientSize(window->Convert(value)); + previousClientSize = size; + minSize = windowComposition->GetPreferredBounds().GetSize(); + needRender = true; } } - NativePoint GuiControlHost::GetLocation() + void GuiGraphicsHost::DpiChanged(bool preparing) { - if(auto window = host->GetNativeWindow()) + if (preparing) { - return window->GetBounds().LeftTop(); + ResetRenderTarget(); } else { - return NativePoint(); + CreateRenderTarget(); + needRender = true; } } - void GuiControlHost::SetLocation(NativePoint value) + void GuiGraphicsHost::Paint() { - if (auto window = host->GetNativeWindow()) + if (!supressPaint) { - auto bounds = window->GetBounds(); - window->SetBounds(NativeRect(value, bounds.GetSize())); + needRender = true; } } - void GuiControlHost::SetBounds(NativePoint location, Size size) + void GuiGraphicsHost::LeftButtonDown(const NativeWindowMouseInfo& info) { - if (auto window = host->GetNativeWindow()) - { - window->SetBounds(NativeRect(location, window->Convert(size))); - } + altActionManager->CloseAltHost(); + OnMouseInput(info, true, false, &GuiGraphicsEventReceiver::leftButtonDown); } - GuiControlHost* GuiControlHost::GetRelatedControlHost() + void GuiGraphicsHost::LeftButtonUp(const NativeWindowMouseInfo& info) { - return this; + OnMouseInput(info, false, true, &GuiGraphicsEventReceiver::leftButtonUp); } - const WString& GuiControlHost::GetText() + void GuiGraphicsHost::LeftButtonDoubleClick(const NativeWindowMouseInfo& info) { - WString result; - if(host->GetNativeWindow()) - { - result=host->GetNativeWindow()->GetTitle(); - } - if(result!=GuiControl::GetText()) - { - GuiControl::SetText(result); - } - return GuiControl::GetText(); + LeftButtonDown(info); + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::leftButtonDoubleClick); } - void GuiControlHost::SetText(const WString& value) + void GuiGraphicsHost::RightButtonDown(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->SetTitle(value); - GuiControl::SetText(value); - } + altActionManager->CloseAltHost(); + OnMouseInput(info, true, false, &GuiGraphicsEventReceiver::rightButtonDown); } - INativeScreen* GuiControlHost::GetRelatedScreen() + void GuiGraphicsHost::RightButtonUp(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - return GetCurrentController()->ScreenService()->GetScreen(host->GetNativeWindow()); - } - else - { - return 0; - } + OnMouseInput(info, false, true, &GuiGraphicsEventReceiver::rightButtonUp); } - void GuiControlHost::Show() + void GuiGraphicsHost::RightButtonDoubleClick(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->Show(); - } + RightButtonDown(info); + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::rightButtonDoubleClick); } - void GuiControlHost::ShowDeactivated() + void GuiGraphicsHost::MiddleButtonDown(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->ShowDeactivated(); - } + altActionManager->CloseAltHost(); + OnMouseInput(info, true, false, &GuiGraphicsEventReceiver::middleButtonDown); } - void GuiControlHost::ShowRestored() + void GuiGraphicsHost::MiddleButtonUp(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->ShowRestored(); - } + OnMouseInput(info, false, true, &GuiGraphicsEventReceiver::middleButtonUp); } - void GuiControlHost::ShowMaximized() + void GuiGraphicsHost::MiddleButtonDoubleClick(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->ShowMaximized(); - } + MiddleButtonDown(info); + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::middleButtonDoubleClick); } - void GuiControlHost::ShowMinimized() + void GuiGraphicsHost::HorizontalWheel(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->ShowMinimized(); - } + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::horizontalWheel); } - void GuiControlHost::Hide() + void GuiGraphicsHost::VerticalWheel(const NativeWindowMouseInfo& info) { - if(host->GetNativeWindow()) - { - host->GetNativeWindow()->Hide(false); - } + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::verticalWheel); } - void GuiControlHost::Close() + void GuiGraphicsHost::MouseMoving(const NativeWindowMouseInfo& info) { - if (auto window = host->GetNativeWindow()) + CompositionList newCompositions; { - auto mainWindow = GetCurrentController()->WindowService()->GetMainWindow(); - if (mainWindow == window) + auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); + GuiGraphicsComposition* composition = windowComposition->FindComposition(point, true); + while (composition) { - SetNativeWindow(nullptr); - GetCurrentController()->WindowService()->DestroyNativeWindow(window); + newCompositions.Insert(0, composition); + composition = composition->GetParent(); } - else + } + + vint firstDifferentIndex = mouseEnterCompositions.Count(); + for (vint i = 0; i < mouseEnterCompositions.Count(); i++) + { + if (i == newCompositions.Count()) + { + firstDifferentIndex = newCompositions.Count(); + break; + } + if (mouseEnterCompositions[i] != newCompositions[i]) { - window->Hide(false); + firstDifferentIndex = i; + break; } } - } - bool GuiControlHost::GetOpening() - { - INativeWindow* window=host->GetNativeWindow(); - if(window) + for (vint i = mouseEnterCompositions.Count() - 1; i >= firstDifferentIndex; i--) { - return window->IsVisible(); + GuiGraphicsComposition* composition = mouseEnterCompositions[i]; + if (composition->HasEventReceiver()) + { + composition->GetEventReceiver()->mouseLeave.Execute(GuiEventArgs(composition)); + } } - return false; - } - -/*********************************************************************** -GuiWindow -***********************************************************************/ - - void GuiWindow::BeforeControlTemplateUninstalled_() - { - } - - void GuiWindow::AfterControlTemplateInstalled_(bool initialize) - { - auto ct = TypedControlTemplateObject(true); -#define FIX_WINDOW_PROPERTY(VARIABLE, NAME) \ - switch (ct->Get ## NAME ## Option()) \ - { \ - case templates::BoolOption::AlwaysTrue: \ - VARIABLE = true; \ - break; \ - case templates::BoolOption::AlwaysFalse: \ - VARIABLE = false; \ - break; \ - default:; \ - } \ - - FIX_WINDOW_PROPERTY(hasMaximizedBox, MaximizedBox) - FIX_WINDOW_PROPERTY(hasMinimizedBox, MinimizedBox) - FIX_WINDOW_PROPERTY(hasBorder, Border) - FIX_WINDOW_PROPERTY(hasSizeBox, SizeBox) - FIX_WINDOW_PROPERTY(isIconVisible, IconVisible) - FIX_WINDOW_PROPERTY(hasTitleBar, TitleBar) - -#undef FIX_WINDOW_PROPERTY - ct->SetMaximizedBox(hasMaximizedBox); - ct->SetMinimizedBox(hasMinimizedBox); - ct->SetBorder(hasBorder); - ct->SetSizeBox(hasSizeBox); - ct->SetIconVisible(isIconVisible); - ct->SetTitleBar(hasTitleBar); - ct->SetMaximized(GetNativeWindow()->GetSizeState() != INativeWindow::Maximized); - ct->SetActivated(GetActivated()); - auto window = GetNativeWindow(); - if (window) + CopyFrom(mouseEnterCompositions, newCompositions); + for (vint i = firstDifferentIndex; i < mouseEnterCompositions.Count(); i++) { - window->SetIcon(icon); + GuiGraphicsComposition* composition = mouseEnterCompositions[i]; + if (composition->HasEventReceiver()) + { + composition->GetEventReceiver()->mouseEnter.Execute(GuiEventArgs(composition)); + } } - UpdateCustomFramePadding(window, ct); - ct->SetIcon(icon ? icon : window ? window->GetIcon() : nullptr); - SyncNativeWindowProperties(); - } - - void GuiWindow::UpdateCustomFramePadding(INativeWindow* window, templates::GuiWindowTemplate* ct) - { - if (auto window = GetNativeWindow()) + INativeCursor* cursor = 0; + if (newCompositions.Count() > 0) { - ct->SetCustomFramePadding(window->Convert(window->GetCustomFramePadding())); + cursor = newCompositions[newCompositions.Count() - 1]->GetRelatedCursor(); } - else + if (cursor) { - ct->SetCustomFramePadding({8, 8, 8, 8}); + hostRecord.nativeWindow->SetWindowCursor(cursor); } - } - - void GuiWindow::SyncNativeWindowProperties() - { - if (auto window = GetNativeWindow()) + else { - if (TypedControlTemplateObject(true)->GetCustomFrameEnabled()) - { - window->EnableCustomFrameMode(); - window->SetBorder(false); - } - else - { - window->DisableCustomFrameMode(); - window->SetBorder(hasBorder); - } - - window->SetMaximizedBox(hasMaximizedBox); - window->SetMinimizedBox(hasMinimizedBox); - window->SetSizeBox(hasSizeBox); - window->SetIconVisible(isIconVisible); - window->SetTitleBar(hasTitleBar); + hostRecord.nativeWindow->SetWindowCursor(GetCurrentController()->ResourceService()->GetDefaultSystemCursor()); } + + OnMouseInput(info, false, false, &GuiGraphicsEventReceiver::mouseMove); } - void GuiWindow::Moved() + void GuiGraphicsHost::MouseEntered() { - GuiControlHost::Moved(); - TypedControlTemplateObject(true)->SetMaximized(GetNativeWindow()->GetSizeState() != INativeWindow::Maximized); } - void GuiWindow::DpiChanged() + void GuiGraphicsHost::MouseLeaved() { - if (auto ct = TypedControlTemplateObject(false)) + for(vint i=mouseEnterCompositions.Count()-1;i>=0;i--) { - UpdateCustomFramePadding(GetNativeWindow(), ct); + GuiGraphicsComposition* composition=mouseEnterCompositions[i]; + if(composition->HasEventReceiver()) + { + composition->GetEventReceiver()->mouseLeave.Execute(GuiEventArgs(composition)); + } } + mouseEnterCompositions.Clear(); } - void GuiWindow::OnNativeWindowChanged() + void GuiGraphicsHost::KeyDown(const NativeWindowKeyInfo& info) { - SyncNativeWindowProperties(); - GuiControlHost::OnNativeWindowChanged(); - } + if (altActionManager->KeyDown(info)) { return; } + if (tabActionManager->KeyDown(info, focusedComposition)) { return; } + if(shortcutKeyManager && shortcutKeyManager->Execute(info)) { return; } - void GuiWindow::OnVisualStatusChanged() - { - GuiControlHost::OnVisualStatusChanged(); + if (focusedComposition && focusedComposition->HasEventReceiver()) + { + OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::keyDown); + } } - void GuiWindow::OnWindowActivated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiGraphicsHost::KeyUp(const NativeWindowKeyInfo& info) { - if (auto ct = TypedControlTemplateObject(false)) + if (altActionManager->KeyUp(info)) { return; } + if (!info.ctrl && !info.shift && info.code == VKEY::KEY_MENU && hostRecord.nativeWindow) { - ct->SetActivated(true); + hostRecord.nativeWindow->SupressAlt(); } - } - void GuiWindow::OnWindowDeactivated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (auto ct = TypedControlTemplateObject(false)) + if(focusedComposition && focusedComposition->HasEventReceiver()) { - ct->SetActivated(false); + OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::keyUp); } } - GuiWindow::GuiWindow(theme::ThemeName themeName, INativeWindow::WindowMode mode) - :GuiControlHost(themeName, mode) + void GuiGraphicsHost::Char(const NativeWindowCharInfo& info) { - SetAltComposition(boundsComposition); - SetAltControl(this, true); - - INativeWindow* window = GetCurrentController()->WindowService()->CreateNativeWindow(windowMode); - SetNativeWindow(window); - GetApplication()->RegisterWindow(this); - ClipboardUpdated.SetAssociatedComposition(boundsComposition); - - WindowActivated.AttachMethod(this, &GuiWindow::OnWindowActivated); - WindowDeactivated.AttachMethod(this, &GuiWindow::OnWindowDeactivated); - } + if (altActionManager->Char(info)) { return; } + if (tabActionManager->Char(info)) { return; } - GuiWindow::GuiWindow(theme::ThemeName themeName) - :GuiWindow(themeName, INativeWindow::Normal) - { + if(focusedComposition && focusedComposition->HasEventReceiver()) + { + OnCharInput(info, focusedComposition, &GuiGraphicsEventReceiver::charInput); + } } - GuiWindow::~GuiWindow() + bool GuiGraphicsHost::NeedRefresh() { - FinalizeAggregation(); - GetApplication()->UnregisterWindow(this); - INativeWindow* window=host->GetNativeWindow(); - if(window) - { - SetNativeWindow(nullptr); - GetCurrentController()->WindowService()->DestroyNativeWindow(window); - } + return needRender; } - IDescriptable* GuiWindow::QueryService(const WString& identifier) + void GuiGraphicsHost::ForceRefresh(bool handleFailure, bool& updated, bool& failureByResized, bool& failureByLostDevice) { - if (identifier == IGuiAltActionHost::Identifier) + if (hostRecord.nativeWindow && hostRecord.nativeWindow->IsVisible()) { - return (IGuiAltActionHost*)this; + auto result = Render(true, handleFailure, updated); + failureByResized |= result == RenderTargetFailure::ResizeWhileRendering; + failureByLostDevice |= result == RenderTargetFailure::LostDevice; } else { - return GuiControlHost::QueryService(identifier); + updated = false; + failureByResized = false; + failureByLostDevice = false; } } - void GuiWindow::MoveToScreenCenter() + void GuiGraphicsHost::GlobalTimer() { - MoveToScreenCenter(GetRelatedScreen()); - } + timerManager.Play(); - void GuiWindow::MoveToScreenCenter(INativeScreen* screen) - { - if (screen) + DateTime now = DateTime::UtcTime(); + if (now.totalMilliseconds - lastCaretTime >= CaretInterval) { - if (auto window = host->GetNativeWindow()) + lastCaretTime = now.totalMilliseconds; + if (focusedComposition && focusedComposition->HasEventReceiver()) { - NativeRect screenBounds = screen->GetClientBounds(); - NativeSize windowSize = window->GetBounds().GetSize(); - SetLocation( - NativePoint( - screenBounds.Left() + (screenBounds.Width() - windowSize.x) / 2, - screenBounds.Top() + (screenBounds.Height() - windowSize.y) / 2 - ) - ); + focusedComposition->GetEventReceiver()->caretNotify.Execute(GuiEventArgs(focusedComposition)); } } + + if (hostRecord.nativeWindow && hostRecord.nativeWindow->IsVisible() && hostRecord.nativeWindow->IsActivelyRefreshing()) + { + bool updated = false; + Render(false, true, updated); + } } -#define IMPL_WINDOW_PROPERTY(VARIABLE, NAME, CONDITION_BREAK) \ - bool GuiWindow::Get ## NAME() \ - { \ - return VARIABLE; \ - } \ - void GuiWindow::Set ## NAME(bool visible) \ - { \ - auto ct = TypedControlTemplateObject(true); \ - if (ct->Get ## NAME ## Option() == templates::BoolOption::Customizable) \ - { \ - VARIABLE = visible; \ - ct->Set ## NAME(visible); \ - auto window = GetNativeWindow(); \ - if (window) \ - { \ - CONDITION_BREAK \ - window->Set ## NAME(visible); \ - } \ - UpdateCustomFramePadding(window, ct); \ - } \ - } \ + elements::RenderTargetFailure GuiGraphicsHost::Render(bool forceUpdate, bool handleFailure, bool& updated) + { + RenderTargetFailure result = RenderTargetFailure::None; -#define IMPL_WINDOW_PROPERTY_EMPTY_CONDITION -#define IMPL_WINDOW_PROPERTY_BORDER_CONDITION if (!ct->GetCustomFrameEnabled()) + if (!renderingTriggeredInLastFrame && needRender) + { + GuiControlSignalEventArgs arguments(controlHost->boundsComposition); + arguments.controlSignal = ControlSignal::UpdateRequested; + controlHost->ControlSignalTrigerred.Execute(arguments); + } + else if (renderingTriggeredInLastFrame && !needRender) + { + GuiControlSignalEventArgs arguments(controlHost->boundsComposition); + arguments.controlSignal = ControlSignal::UpdateFullfilled; + controlHost->ControlSignalTrigerred.Execute(arguments); + } - IMPL_WINDOW_PROPERTY(hasMaximizedBox, MaximizedBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) - IMPL_WINDOW_PROPERTY(hasMinimizedBox, MinimizedBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) - IMPL_WINDOW_PROPERTY(hasBorder, Border, IMPL_WINDOW_PROPERTY_BORDER_CONDITION) - IMPL_WINDOW_PROPERTY(hasSizeBox, SizeBox, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) - IMPL_WINDOW_PROPERTY(isIconVisible, IconVisible, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) - IMPL_WINDOW_PROPERTY(hasTitleBar, TitleBar, IMPL_WINDOW_PROPERTY_EMPTY_CONDITION) + updated = needRender; + renderingTriggeredInLastFrame = needRender; - Ptr GuiWindow::GetIcon() - { - return icon; - } + if (!forceUpdate && !needRender) + { + return result; + } + needRender = false; - void GuiWindow::SetIcon(Ptr value) - { - if (icon != value) + if(hostRecord.nativeWindow && hostRecord.nativeWindow->IsVisible()) { - icon = value; + supressPaint = true; + { + hostRecord.renderTarget->StartRendering(); + auto nativeOffset = hostRecord.nativeWindow->GetRenderingOffset(); + auto localOffset = hostRecord.nativeWindow->Convert(nativeOffset); + windowComposition->Render(localOffset); + result = hostRecord.renderTarget->StopRendering(); + hostRecord.nativeWindow->RedrawContent(); + } + supressPaint = false; - auto window = GetNativeWindow(); - if (window) + switch (result) { - window->SetIcon(icon); + case RenderTargetFailure::ResizeWhileRendering: + if (handleFailure) + { + GetGuiGraphicsResourceManager()->ResizeRenderTarget(hostRecord.nativeWindow); + needRender = true; + } + break; + case RenderTargetFailure::LostDevice: + if (handleFailure) + { + ResetRenderTarget(); + CreateRenderTarget(); + needRender = true; + } + break; + default: + { + supressPaint = true; + auto bounds = windowComposition->GetBounds(); + auto preferred = windowComposition->GetPreferredBounds(); + auto width = bounds.Width() > preferred.Width() ? bounds.Width() : preferred.Width(); + auto height = bounds.Height() > preferred.Height() ? bounds.Height() : preferred.Height(); + controlHost->UpdateClientSizeAfterRendering(preferred.GetSize(), Size(width, height)); + supressPaint = false; + } } + } - if (auto ct = TypedControlTemplateObject(false)) + if (!needRender) + { + { + ProcList procs; + CopyFrom(procs, afterRenderProcs); + afterRenderProcs.Clear(); + for (vint i = 0; i < procs.Count(); i++) + { + procs[i](); + } + } { - ct->SetIcon(icon ? icon : window ? window->GetIcon() : nullptr); + ProcMap procs; + CopyFrom(procs, afterRenderKeyedProcs); + afterRenderKeyedProcs.Clear(); + for (vint i = 0; i < procs.Count(); i++) + { + procs.Values()[i](); + } } } + + return result; } -#undef IMPL_WINDOW_PROPERTY_BORDER_CONDITION -#undef IMPL_WINDOW_PROPERTY_EMPTY_CONDITION -#undef IMPL_WINDOW_PROPERTY + GuiGraphicsHost::GuiGraphicsHost(controls::GuiControlHost* _controlHost, GuiGraphicsComposition* boundsComposition) + :controlHost(_controlHost) + { + altActionManager = new GuiAltActionManager(controlHost); + tabActionManager = new GuiTabActionManager(controlHost); + hostRecord.host = this; + windowComposition=new GuiWindowComposition; + windowComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + windowComposition->AddChild(boundsComposition); + RefreshRelatedHostRecord(nullptr); + } - void GuiWindow::ShowModal(GuiWindow* owner, const Func& callback) + GuiGraphicsHost::~GuiGraphicsHost() { - owner->SetEnabled(false); - GetNativeWindow()->SetParent(owner->GetNativeWindow()); - auto container = MakePtr(); - container->handler = WindowClosed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + windowComposition->RemoveChild(windowComposition->Children()[0]); + NotifyFinalizeInstance(windowComposition); + + delete altActionManager; + delete tabActionManager; + if (shortcutKeyManager) { - GetApplication()->InvokeInMainThread(this, [=]() - { - WindowClosed.Detach(container->handler); - container->handler = nullptr; - GetNativeWindow()->SetParent(nullptr); - callback(); - owner->SetEnabled(true); - owner->SetActivated(); - }); - }); - Show(); + delete shortcutKeyManager; + shortcutKeyManager = nullptr; + } + + delete windowComposition; } - void GuiWindow::ShowModalAndDelete(GuiWindow* owner, const Func& callback) + INativeWindow* GuiGraphicsHost::GetNativeWindow() { - ShowModal(owner, [=]() - { - callback(); - DeleteAfterProcessingAllEvents(); - }); + return hostRecord.nativeWindow; } - Ptr GuiWindow::ShowModalAsync(GuiWindow* owner) + void GuiGraphicsHost::SetNativeWindow(INativeWindow* _nativeWindow) { - auto future = IFuture::Create(); - ShowModal(owner, [promise = future->GetPromise()]() + if (hostRecord.nativeWindow != _nativeWindow) { - promise->SendResult({}); - }); - return future; - } - -/*********************************************************************** -GuiPopup -***********************************************************************/ + if (hostRecord.nativeWindow) + { + GetCurrentController()->CallbackService()->UninstallListener(this); + hostRecord.nativeWindow->UninstallListener(this); + } - void GuiPopup::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) - { - if (popupType == -1) - { - GuiWindow::UpdateClientSizeAfterRendering(preferredSize, clientSize); - } - else - { - auto window = host->GetNativeWindow(); - auto currentClientSize = window->GetClientSize(); - auto currentWindowSize = window->GetBounds().GetSize(); - auto offsetX = currentWindowSize.x - currentClientSize.x; - auto offsetY = currentWindowSize.y - currentClientSize.y; - auto nativeClientSize = window->Convert(clientSize); - auto position = CalculatePopupPosition(NativeSize(nativeClientSize.x + offsetX, nativeClientSize.y + offsetY), popupType, popupInfo); - if (position != GetLocation() || clientSize != GetClientSize()) + if (_nativeWindow) { - SetBounds(position, clientSize); + _nativeWindow->InstallListener(this); + GetCurrentController()->CallbackService()->InstallListener(this); + previousClientSize = _nativeWindow->GetClientSize(); + minSize = windowComposition->GetPreferredBounds().GetSize(); + _nativeWindow->SetCaretPoint(_nativeWindow->Convert(caretPoint)); + needRender = true; } + + RefreshRelatedHostRecord(_nativeWindow); } } - void GuiPopup::PopupOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiGraphicsComposition* GuiGraphicsHost::GetMainComposition() { - GetApplication()->RegisterPopupOpened(this); + return windowComposition; } - void GuiPopup::PopupClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiGraphicsHost::RequestRender() { - popupType = -1; - GetApplication()->RegisterPopupClosed(this); - if(auto window = GetNativeWindow()) - { - window->SetParent(nullptr); - } + needRender = true; } - void GuiPopup::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + void GuiGraphicsHost::InvokeAfterRendering(const Func& proc, ProcKey key) { - if (!arguments.handled) + if (key.key == nullptr) { - Hide(); + afterRenderProcs.Add(proc); + } + else + { + afterRenderKeyedProcs.Set(key, proc); } } - bool GuiPopup::IsClippedByScreen(NativeSize size, NativePoint location, INativeScreen* screen) + void GuiGraphicsHost::InvalidateTabOrderCache() { - NativeRect screenBounds = screen->GetClientBounds(); - NativeRect windowBounds(location, size); - return !screenBounds.Contains(windowBounds.LeftTop()) || !screenBounds.Contains(windowBounds.RightBottom()); + tabActionManager->InvalidateTabOrderCache(); } - NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, NativePoint location, INativeScreen* screen) + IGuiShortcutKeyManager* GuiGraphicsHost::GetShortcutKeyManager() { - NativeRect screenBounds = screen->GetClientBounds(); - - if (location.x < screenBounds.x1) - { - location.x = screenBounds.x1; - } - else if (location.x + windowSize.x > screenBounds.x2) - { - location.x = screenBounds.x2 - windowSize.x; - } - - if (location.y < screenBounds.y1) - { - location.y = screenBounds.y1; - } - else if (location.y + windowSize.y > screenBounds.y2) - { - location.y = screenBounds.y2 - windowSize.y; - } - - return location; + return shortcutKeyManager; } - NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, Rect bounds, bool preferredTopBottomSide) + void GuiGraphicsHost::SetShortcutKeyManager(IGuiShortcutKeyManager* value) { - NativePoint controlClientOffset = controlWindow->Convert(control->GetBoundsComposition()->GetGlobalBounds().LeftTop()); - NativePoint controlWindowOffset = controlWindow->GetClientBoundsInScreen().LeftTop(); - NativeRect targetBounds(controlWindow->Convert(bounds.LeftTop()), controlWindow->Convert(bounds.GetSize())); - targetBounds.x1 += controlClientOffset.x + controlWindowOffset.x; - targetBounds.x2 += controlClientOffset.x + controlWindowOffset.x; - targetBounds.y1 += controlClientOffset.y + controlWindowOffset.y; - targetBounds.y2 += controlClientOffset.y + controlWindowOffset.y; + shortcutKeyManager=value; + } - NativePoint locations[4]; - if (preferredTopBottomSide) + bool GuiGraphicsHost::SetFocus(GuiGraphicsComposition* composition) + { + if(!composition || composition->GetRelatedGraphicsHost()!=this) { - locations[0] = NativePoint(targetBounds.x1, targetBounds.y2); - locations[1] = NativePoint(targetBounds.x2 - windowSize.x, targetBounds.y2); - locations[2] = NativePoint(targetBounds.x1, targetBounds.y1 - windowSize.y); - locations[3] = NativePoint(targetBounds.x2 - windowSize.x, targetBounds.y1 - windowSize.y); + return false; } - else + if(focusedComposition && focusedComposition->HasEventReceiver()) { - locations[0] = NativePoint(targetBounds.x2, targetBounds.y1); - locations[1] = NativePoint(targetBounds.x2, targetBounds.y2 - windowSize.y); - locations[2] = NativePoint(targetBounds.x1 - windowSize.x, targetBounds.y1); - locations[3] = NativePoint(targetBounds.x1 - windowSize.x, targetBounds.y2 - windowSize.y); + GuiEventArgs arguments; + arguments.compositionSource=focusedComposition; + arguments.eventSource=focusedComposition; + focusedComposition->GetEventReceiver()->lostFocus.Execute(arguments); } - - auto screen = GetCurrentController()->ScreenService()->GetScreen(controlWindow); - for (vint i = 0; i < 4; i++) + focusedComposition=composition; + SetCaretPoint(Point(0, 0)); + if(focusedComposition && focusedComposition->HasEventReceiver()) { - if (!IsClippedByScreen(windowSize, locations[i], screen)) - { - return CalculatePopupPosition(windowSize, locations[i], screen); - } + GuiEventArgs arguments; + arguments.compositionSource=focusedComposition; + arguments.eventSource=focusedComposition; + focusedComposition->GetEventReceiver()->gotFocus.Execute(arguments); } - return CalculatePopupPosition(windowSize, locations[0], screen); - } - - NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, Point location) - { - NativePoint controlClientOffset = controlWindow->Convert(control->GetBoundsComposition()->GetGlobalBounds().LeftTop()); - NativePoint controlWindowOffset = controlWindow->GetClientBoundsInScreen().LeftTop(); - NativePoint targetLocation = controlWindow->Convert(location); - NativeCoordinate x = controlClientOffset.x + controlWindowOffset.x + targetLocation.x; - NativeCoordinate y = controlClientOffset.y + controlWindowOffset.y + targetLocation.y; - return CalculatePopupPosition(windowSize, NativePoint(x, y), GetCurrentController()->ScreenService()->GetScreen(controlWindow)); + return true; } - NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, GuiControl* control, INativeWindow* controlWindow, bool preferredTopBottomSide) + GuiGraphicsComposition* GuiGraphicsHost::GetFocusedComposition() { - Rect bounds(Point(0, 0), control->GetBoundsComposition()->GetBounds().GetSize()); - return CalculatePopupPosition(windowSize, control, controlWindow, bounds, preferredTopBottomSide); + return focusedComposition; } - NativePoint GuiPopup::CalculatePopupPosition(NativeSize windowSize, vint popupType, const PopupInfo& popupInfo) + Point GuiGraphicsHost::GetCaretPoint() { - switch (popupType) - { - case 1: - return CalculatePopupPosition(windowSize, popupInfo._1.location, popupInfo._1.screen); - case 2: - return CalculatePopupPosition(windowSize, popupInfo._2.control, popupInfo._2.controlWindow, popupInfo._2.bounds, popupInfo._2.preferredTopBottomSide); - case 3: - return CalculatePopupPosition(windowSize, popupInfo._3.control, popupInfo._3.controlWindow, popupInfo._3.location); - case 4: - return CalculatePopupPosition(windowSize, popupInfo._4.control, popupInfo._4.controlWindow, popupInfo._4.preferredTopBottomSide); - default: - CHECK_FAIL(L"vl::presentation::controls::GuiPopup::CalculatePopupPosition(Size, const PopupInfo&)#Internal error."); - } + return caretPoint; } - void GuiPopup::ShowPopupInternal() + void GuiGraphicsHost::SetCaretPoint(Point value, GuiGraphicsComposition* referenceComposition) { - auto window = GetNativeWindow(); - auto clientSize = window->Convert(window->GetClientSize()); - UpdateClientSizeAfterRendering(clientSize, clientSize); - - INativeWindow* controlWindow = nullptr; - switch (popupType) - { - case 2: controlWindow = popupInfo._2.controlWindow; break; - case 3: controlWindow = popupInfo._3.controlWindow; break; - case 4: controlWindow = popupInfo._4.controlWindow; break; - } - - if (controlWindow) + if (referenceComposition) { - window->SetParent(controlWindow); - SetTopMost(controlWindow->GetTopMost()); + Rect bounds = referenceComposition->GetGlobalBounds(); + value.x += bounds.x1; + value.y += bounds.y1; } - else + caretPoint = value; + if (hostRecord.nativeWindow) { - SetTopMost(true); + hostRecord.nativeWindow->SetCaretPoint(hostRecord.nativeWindow->Convert(caretPoint)); } - SetEnabledActivate(false); - ShowDeactivated(); } - GuiPopup::GuiPopup(theme::ThemeName themeName, INativeWindow::WindowMode mode) - :GuiWindow(themeName, mode) + GuiGraphicsTimerManager* GuiGraphicsHost::GetTimerManager() { - SetMinimizedBox(false); - SetMaximizedBox(false); - SetSizeBox(false); - SetTitleBar(false); - SetShowInTaskBar(false); - - WindowOpened.AttachMethod(this, &GuiPopup::PopupOpened); - WindowClosed.AttachMethod(this, &GuiPopup::PopupClosed); - boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiPopup::OnKeyDown); + return &timerManager; } - GuiPopup::GuiPopup(theme::ThemeName themeName) - :GuiPopup(themeName, INativeWindow::Popup) + void GuiGraphicsHost::DisconnectComposition(GuiGraphicsComposition* composition) { + DisconnectCompositionInternal(composition); } + } + } +} - GuiPopup::~GuiPopup() - { - GetApplication()->RegisterPopupClosed(this); - } +/*********************************************************************** +.\APPLICATION\GRAPHICSHOST\GUIGRAPHICSHOST_ALT.CPP +***********************************************************************/ - void GuiPopup::ShowPopup(NativePoint location, INativeScreen* screen) - { - if (auto window = GetNativeWindow()) - { - if (!screen) - { - SetBounds(location, GetClientSize()); - screen = GetCurrentController()->ScreenService()->GetScreen(window); - } +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; + using namespace controls; + using namespace theme; - popupType = 1; - popupInfo._1.location = location; - popupInfo._1.screen = screen; - ShowPopupInternal(); - } - } - - void GuiPopup::ShowPopup(GuiControl* control, Rect bounds, bool preferredTopBottomSide) + const wchar_t* const IGuiAltAction::Identifier = L"vl::presentation::compositions::IGuiAltAction"; + const wchar_t* const IGuiAltActionContainer::Identifier = L"vl::presentation::compositions::IGuiAltActionContainer"; + const wchar_t* const IGuiAltActionHost::Identifier = L"vl::presentation::compositions::IGuiAltActionHost"; + +/*********************************************************************** +IGuiAltAction +***********************************************************************/ + + bool IGuiAltAction::IsLegalAlt(const WString& alt) { - if (auto window = GetNativeWindow()) + for (vint i = 0; i < alt.Length(); i++) { - if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) + auto c = alt[i]; + if (('A' <= c && c <= 'Z') || ('0' <= c && c <= '9')) { - if (auto controlWindow = controlHost->GetNativeWindow()) - { - popupType = 2; - popupInfo._2.control = control; - popupInfo._2.controlWindow = controlWindow; - popupInfo._2.bounds = bounds; - popupInfo._2.preferredTopBottomSide = preferredTopBottomSide; - ShowPopupInternal(); - } + continue; } + return false; } + return true; } - void GuiPopup::ShowPopup(GuiControl* control, Point location) +/*********************************************************************** +IGuiAltActionHost +***********************************************************************/ + + void IGuiAltActionHost::CollectAltActionsFromControl(controls::GuiControl* control, bool includeThisControl, collections::Group& actions) { - if (auto window = GetNativeWindow()) + List controls; + controls.Add(control); + vint index = 0; + + while (index < controls.Count()) { - if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) + auto current = controls[index++]; + + if (current != control || includeThisControl) { - if (auto controlWindow = controlHost->GetNativeWindow()) + if (auto container = current->QueryTypedService()) { - popupType = 3; - popupInfo._3.control = control; - popupInfo._3.controlWindow = controlWindow; - popupInfo._3.location = location; - ShowPopupInternal(); + vint count = container->GetAltActionCount(); + for (vint i = 0; i < count; i++) + { + auto action = container->GetAltAction(i); + actions.Add(action->GetAlt(), action); + } + continue; + } + else if (auto action = current->QueryTypedService()) + { + if (action->IsAltAvailable()) + { + if (action->IsAltEnabled()) + { + actions.Add(action->GetAlt(), action); + continue; + } + } } } - } - } - void GuiPopup::ShowPopup(GuiControl* control, bool preferredTopBottomSide) - { - if (auto window = GetNativeWindow()) - { - if (auto controlHost = control->GetBoundsComposition()->GetRelatedControlHost()) + vint count = current->GetChildrenCount(); + for (vint i = 0; i < count; i++) { - if (auto controlWindow = controlHost->GetNativeWindow()) - { - popupType = 4; - popupInfo._4.control = control; - popupInfo._4.controlWindow = controlWindow; - popupInfo._4.preferredTopBottomSide = preferredTopBottomSide; - ShowPopupInternal(); - } + controls.Add(current->GetChild(i)); } } } /*********************************************************************** -GuiPopup +GuiAltActionHostBase ***********************************************************************/ - void GuiTooltip::GlobalTimer() - { - SetClientSize(GetClientSize()); - } - - void GuiTooltip::TooltipOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - } - - void GuiTooltip::TooltipClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiAltActionHostBase::SetAltComposition(GuiGraphicsComposition* _composition) { - SetTemporaryContentControl(0); + composition = _composition; } - GuiTooltip::GuiTooltip(theme::ThemeName themeName) - : GuiPopup(themeName, INativeWindow::Tooltip) + void GuiAltActionHostBase::SetAltControl(controls::GuiControl* _control, bool _includeControl) { - containerComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->SetPreferredMinSize(Size(20, 10)); - GetCurrentController()->CallbackService()->InstallListener(this); - - WindowOpened.AttachMethod(this, &GuiTooltip::TooltipOpened); - WindowClosed.AttachMethod(this, &GuiTooltip::TooltipClosed); + control = _control; + includeControl = _includeControl; } - GuiTooltip::~GuiTooltip() + GuiGraphicsComposition* GuiAltActionHostBase::GetAltComposition() { - GetCurrentController()->CallbackService()->UninstallListener(this); + CHECK_ERROR(composition, L"GuiAltActionHostBase::GetAltComposition()#Need to call SetAltComposition."); + return composition; } - vint GuiTooltip::GetPreferredContentWidth() + IGuiAltActionHost* GuiAltActionHostBase::GetPreviousAltHost() { - return containerComposition->GetPreferredMinSize().x; + return previousHost; } - void GuiTooltip::SetPreferredContentWidth(vint value) + void GuiAltActionHostBase::OnActivatedAltHost(IGuiAltActionHost* _previousHost) { - containerComposition->SetPreferredMinSize(Size(value, 10)); + previousHost = _previousHost; } - GuiControl* GuiTooltip::GetTemporaryContentControl() + void GuiAltActionHostBase::OnDeactivatedAltHost() { - return temporaryContentControl; + previousHost = nullptr; } - void GuiTooltip::SetTemporaryContentControl(GuiControl* control) + void GuiAltActionHostBase::CollectAltActions(collections::Group& actions) { - if(temporaryContentControl && HasChild(temporaryContentControl)) - { - containerComposition->RemoveChild(temporaryContentControl->GetBoundsComposition()); - temporaryContentControl=0; - } - temporaryContentControl=control; - if(control) - { - control->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - AddChild(control); - } + CHECK_ERROR(control, L"GuiAltActionHostBase::CollectAltActions(Group&)#Need to call SetAltControl."); + CollectAltActionsFromControl(control, includeControl, actions); } - } - } -} - /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUIBINDABLEDATAGRID.CPP +GuiAltActionManager ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace description; - using namespace templates; - - namespace list + void GuiAltActionManager::EnterAltHost(IGuiAltActionHost* host) { + ClearAltHost(); -/*********************************************************************** -DataFilterBase -***********************************************************************/ - - void DataFilterBase::InvokeOnProcessorChanged() + Group actions; + host->CollectAltActions(actions); + if (actions.Count() == 0) { - if (callback) - { - callback->OnProcessorChanged(); - } + CloseAltHost(); + return; } - DataFilterBase::DataFilterBase() - { - } + host->OnActivatedAltHost(currentAltHost); + currentAltHost = host; + CreateAltTitles(actions); + } - void DataFilterBase::SetCallback(IDataProcessorCallback* value) + void GuiAltActionManager::LeaveAltHost() + { + if (currentAltHost) { - callback = value; - } + ClearAltHost(); + auto previousHost = currentAltHost->GetPreviousAltHost(); + currentAltHost->OnDeactivatedAltHost(); + currentAltHost = previousHost; -/*********************************************************************** -DataMultipleFilter -***********************************************************************/ + if (currentAltHost) + { + Group actions; + currentAltHost->CollectAltActions(actions); + CreateAltTitles(actions); + } + } + } - DataMultipleFilter::DataMultipleFilter() + bool GuiAltActionManager::EnterAltKey(wchar_t key) + { + currentAltPrefix += WString::FromChar(key); + vint index = currentActiveAltActions.Keys().IndexOf(currentAltPrefix); + if (index == -1) { + if (FilterTitles() == 0) + { + currentAltPrefix = currentAltPrefix.Left(currentAltPrefix.Length() - 1); + FilterTitles(); + } } - - bool DataMultipleFilter::AddSubFilter(Ptr value) + else { - if (!value) return false; - if (filters.Contains(value.Obj())) return false; - filters.Add(value); - value->SetCallback(callback); - InvokeOnProcessorChanged(); + auto action = currentActiveAltActions.Values()[index]; + if (action->GetActivatingAltHost()) + { + EnterAltHost(action->GetActivatingAltHost()); + } + else + { + CloseAltHost(); + } + action->OnActiveAlt(); return true; } + return false; + } - bool DataMultipleFilter::RemoveSubFilter(Ptr value) + void GuiAltActionManager::LeaveAltKey() + { + if (currentAltPrefix.Length() >= 1) { - if (!value) return false; - if (!filters.Contains(value.Obj())) return false; - value->SetCallback(nullptr); - filters.Remove(value.Obj()); - InvokeOnProcessorChanged(); - return true; + currentAltPrefix = currentAltPrefix.Left(currentAltPrefix.Length() - 1); } + FilterTitles(); + } - void DataMultipleFilter::SetCallback(IDataProcessorCallback* value) + void GuiAltActionManager::CreateAltTitles(const collections::Group& actions) + { + if (currentAltHost) { - DataFilterBase::SetCallback(value); - for (vint i = 0; i < filters.Count(); i++) + vint count = actions.Count(); + for (vint i = 0; i < count; i++) { - filters[i]->SetCallback(value); - } - } + WString key = actions.Keys()[i]; + const auto& values = actions.GetByIndex(i); + vint numberLength = 0; + if (values.Count() == 1 && key.Length() > 0) + { + numberLength = 0; + } + else if (values.Count() <= 10) + { + numberLength = 1; + } + else if (values.Count() <= 100) + { + numberLength = 2; + } + else if (values.Count() <= 1000) + { + numberLength = 3; + } + else + { + continue; + } -/*********************************************************************** -DataAndFilter -***********************************************************************/ + for (auto [action, index] : indexed(values)) + { + WString key = actions.Keys()[i]; + if (numberLength > 0) + { + WString number = itow(index); + while (number.Length() < numberLength) + { + number = L"0" + number; + } + key += number; + } + currentActiveAltActions.Add(key, action); + } + } - DataAndFilter::DataAndFilter() - { + count = currentActiveAltActions.Count(); + auto window = dynamic_cast(currentAltHost->GetAltComposition()->GetRelatedControlHost()); + for (vint i = 0; i < count; i++) + { + auto key = currentActiveAltActions.Keys()[i]; + auto composition = currentActiveAltActions.Values()[i]->GetAltComposition(); + + auto label = new GuiLabel(theme::ThemeName::ShortcutKey); + if (auto labelStyle = window->TypedControlTemplateObject(true)->GetShortcutKeyTemplate()) + { + label->SetControlTemplate(labelStyle); + } + label->SetText(key); + composition->AddChild(label->GetBoundsComposition()); + currentActiveAltTitles.Add(key, label); + } + + FilterTitles(); } + } - bool DataAndFilter::Filter(const description::Value& row) + vint GuiAltActionManager::FilterTitles() + { + vint count = currentActiveAltTitles.Count(); + vint visibles = 0; + for (vint i = 0; i < count; i++) { - return From(filters) - .All([row](Ptr filter) + auto key = currentActiveAltTitles.Keys()[i]; + auto value = currentActiveAltTitles.Values()[i]; + if (key.Length() >= currentAltPrefix.Length() && key.Left(currentAltPrefix.Length()) == currentAltPrefix) { - return filter->Filter(row); - }); + value->SetVisible(true); + if (currentAltPrefix.Length() <= key.Length()) + { + value->SetText( + key + .Insert(currentAltPrefix.Length(), L"[") + .Insert(currentAltPrefix.Length() + 2, L"]") + ); + } + else + { + value->SetText(key); + } + visibles++; + } + else + { + value->SetVisible(false); + } } + return visibles; + } -/*********************************************************************** -DataOrFilter -***********************************************************************/ - - DataOrFilter::DataOrFilter() + void GuiAltActionManager::ClearAltHost() + { + for (auto title : currentActiveAltTitles.Values()) { + SafeDeleteControl(title); } + currentActiveAltActions.Clear(); + currentActiveAltTitles.Clear(); + currentAltPrefix = L""; + } - bool DataOrFilter::Filter(const description::Value& row) + void GuiAltActionManager::CloseAltHost() + { + ClearAltHost(); + while (currentAltHost) { - return From(filters) - .Any([row](Ptr filter) - { - return filter->Filter(row); - }); + currentAltHost->OnDeactivatedAltHost(); + currentAltHost = currentAltHost->GetPreviousAltHost(); } + } -/*********************************************************************** -DataNotFilter -***********************************************************************/ + GuiAltActionManager::GuiAltActionManager(controls::GuiControlHost* _controlHost) + :controlHost(_controlHost) + { + } - DataNotFilter::DataNotFilter() + GuiAltActionManager::~GuiAltActionManager() + { + } + + bool GuiAltActionManager::KeyDown(const NativeWindowKeyInfo& info) + { + if (!info.ctrl && !info.shift) { + if (currentAltHost) + { + if (info.code == VKEY::KEY_ESCAPE) + { + LeaveAltHost(); + return true; + } + else if (info.code == VKEY::KEY_BACK) + { + LeaveAltKey(); + } + else if (VKEY::KEY_NUMPAD0 <= info.code && info.code <= VKEY::KEY_NUMPAD9) + { + if (EnterAltKey((wchar_t)(L'0' + ((vint)info.code - (vint)VKEY::KEY_NUMPAD0)))) + { + supressAltKey = info.code; + return true; + } + } + else if ((VKEY::KEY_0 <= info.code && info.code <= VKEY::KEY_9) || (VKEY::KEY_A <= info.code && info.code <= VKEY::KEY_Z)) + { + if (EnterAltKey((wchar_t)info.code)) + { + supressAltKey = info.code; + return true; + } + } + } + else + { + if (info.code == VKEY::KEY_MENU) + { + if (auto altHost = controlHost->QueryTypedService()) + { + if (!altHost->GetPreviousAltHost()) + { + EnterAltHost(altHost); + } + } + } + } } - bool DataNotFilter::SetSubFilter(Ptr value) + if (currentAltHost) { - if (filter == value) return false; - if (filter) filter->SetCallback(nullptr); - filter = value; - if (filter) filter->SetCallback(callback); - InvokeOnProcessorChanged(); return true; } + return false; + } - void DataNotFilter::SetCallback(IDataProcessorCallback* value) + bool GuiAltActionManager::KeyUp(const NativeWindowKeyInfo& info) + { + if (!info.ctrl && !info.shift && info.code == supressAltKey) { - DataFilterBase::SetCallback(value); - if (filter) filter->SetCallback(value); + supressAltKey = VKEY::KEY_UNKNOWN; + return true; } + return false; + } - bool DataNotFilter::Filter(const description::Value& row) + bool GuiAltActionManager::Char(const NativeWindowCharInfo& info) + { + if (currentAltHost || supressAltKey != VKEY::KEY_UNKNOWN) { - return filter ? true : !filter->Filter(row); + return true; } + return false; + } + } + } +} /*********************************************************************** -DataSorterBase +.\APPLICATION\GRAPHICSHOST\GUIGRAPHICSHOST_SHORTCUTKEY.CPP ***********************************************************************/ - void DataSorterBase::InvokeOnProcessorChanged() - { - if (callback) - { - callback->OnProcessorChanged(); - } - } +namespace vl +{ + namespace presentation + { + namespace compositions + { - DataSorterBase::DataSorterBase() - { - } +/*********************************************************************** +GuiShortcutKeyItem +***********************************************************************/ - void DataSorterBase::SetCallback(IDataProcessorCallback* value) - { - callback = value; - } + GuiShortcutKeyItem::GuiShortcutKeyItem(GuiShortcutKeyManager* _shortcutKeyManager, bool _global, bool _ctrl, bool _shift, bool _alt, VKEY _key) + :shortcutKeyManager(_shortcutKeyManager) + ,global(_global) + ,ctrl(_ctrl) + ,shift(_shift) + ,alt(_alt) + ,key(_key) + { + } + + GuiShortcutKeyItem::~GuiShortcutKeyItem() + { + } + + IGuiShortcutKeyManager* GuiShortcutKeyItem::GetManager() + { + return shortcutKeyManager; + } + + WString GuiShortcutKeyItem::GetName() + { + WString name; + if (global) name += L"{"; + if (ctrl) name += L"Ctrl+"; + if (shift) name += L"Shift+"; + if (alt) name += L"Alt+"; + name += GetCurrentController()->InputService()->GetKeyName(key); + if (global) name += L"}"; + return name; + } + + void GuiShortcutKeyItem::ReadKeyConfig(bool& _ctrl, bool& _shift, bool& _alt, VKEY& _key) + { + _ctrl = ctrl; + _shift = shift; + _alt = alt; + _key = key; + } + + bool GuiShortcutKeyItem::CanActivate(const NativeWindowKeyInfo& info) + { + return + info.ctrl==ctrl && + info.shift==shift && + info.alt==alt && + info.code==key; + } + + bool GuiShortcutKeyItem::CanActivate(bool _ctrl, bool _shift, bool _alt, VKEY _key) + { + return + _ctrl==ctrl && + _shift==shift && + _alt==alt && + _key==key; + } + + void GuiShortcutKeyItem::Execute() + { + GuiEventArgs arguments; + Executed.Execute(arguments); + } /*********************************************************************** -DataMultipleSorter +GuiShortcutKeyManager ***********************************************************************/ - DataMultipleSorter::DataMultipleSorter() - { - } + bool GuiShortcutKeyManager::IsGlobal() + { + return false; + } - bool DataMultipleSorter::SetLeftSorter(Ptr value) - { - if (leftSorter == value) return false; - if (leftSorter) leftSorter->SetCallback(nullptr); - leftSorter = value; - if (leftSorter) leftSorter->SetCallback(callback); - return true; - } + bool GuiShortcutKeyManager::OnCreatingShortcut(GuiShortcutKeyItem* item) + { + return true; + } - bool DataMultipleSorter::SetRightSorter(Ptr value) - { - if (rightSorter == value) return false; - if (rightSorter) rightSorter->SetCallback(nullptr); - rightSorter = value; - if (rightSorter) rightSorter->SetCallback(callback); - return true; - } + void GuiShortcutKeyManager::OnDestroyingShortcut(GuiShortcutKeyItem* item) + { + } - void DataMultipleSorter::SetCallback(IDataProcessorCallback* value) + IGuiShortcutKeyItem* GuiShortcutKeyManager::CreateShortcutInternal(bool ctrl, bool shift, bool alt, VKEY key) + { + auto item = Ptr(new GuiShortcutKeyItem(this, IsGlobal(), ctrl, shift, alt, key)); + if (!OnCreatingShortcut(item.Obj())) return nullptr; + shortcutKeyItems.Add(item); + return item.Obj(); + } + + GuiShortcutKeyManager::GuiShortcutKeyManager() + { + } + + GuiShortcutKeyManager::~GuiShortcutKeyManager() + { + for (auto item : shortcutKeyItems) { - DataSorterBase::SetCallback(value); - if (leftSorter) leftSorter->SetCallback(value); - if (rightSorter) rightSorter->SetCallback(value); + OnDestroyingShortcut(item.Obj()); } + } - vint DataMultipleSorter::Compare(const description::Value& row1, const description::Value& row2) + vint GuiShortcutKeyManager::GetItemCount() + { + return shortcutKeyItems.Count(); + } + + IGuiShortcutKeyItem* GuiShortcutKeyManager::GetItem(vint index) + { + return shortcutKeyItems[index].Obj(); + } + + bool GuiShortcutKeyManager::Execute(const NativeWindowKeyInfo& info) + { + bool executed=false; + for (auto item : shortcutKeyItems) { - if (leftSorter) + if(item->CanActivate(info)) { - vint result = leftSorter->Compare(row1, row2); - if (result != 0) return result; + item->Execute(); + executed=true; } - if (rightSorter) + } + return executed; + } + + IGuiShortcutKeyItem* GuiShortcutKeyManager::TryGetShortcut(bool ctrl, bool shift, bool alt, VKEY key) + { + for (auto item : shortcutKeyItems) + { + if (item->CanActivate(ctrl, shift, alt, key)) { - vint result = rightSorter->Compare(row1, row2); - if (result != 0) return result; + return item.Obj(); } - return 0; } + return nullptr; + } -/*********************************************************************** -DataReverseSorter -***********************************************************************/ + IGuiShortcutKeyItem* GuiShortcutKeyManager::CreateNewShortcut(bool ctrl, bool shift, bool alt, VKEY key) + { + CHECK_ERROR( + TryGetShortcut(ctrl, shift, alt, key) == nullptr, + L"vl::presentation::compositions::GuiShortcutKeyManager::CreateNewShortcut(bool, bool, bool, VKEY)#The shortcut key exists." + ); + return CreateShortcutInternal(ctrl, shift, alt, key); + } - DataReverseSorter::DataReverseSorter() + IGuiShortcutKeyItem* GuiShortcutKeyManager::CreateShortcutIfNotExist(bool ctrl, bool shift, bool alt, VKEY key) + { + if (TryGetShortcut(ctrl, shift, alt, key)) { + return nullptr; } + return CreateShortcutInternal(ctrl, shift, alt, key); + } - bool DataReverseSorter::SetSubSorter(Ptr value) - { - if (sorter == value) return false; - if (sorter) sorter->SetCallback(nullptr); - sorter = value; - if (sorter) sorter->SetCallback(callback); - return true; - } + bool GuiShortcutKeyManager::DestroyShortcut(IGuiShortcutKeyItem* item) + { + if (!item) return false; + if (item->GetManager() != this) return false; - void DataReverseSorter::SetCallback(IDataProcessorCallback* value) - { - DataSorterBase::SetCallback(value); - if (sorter) sorter->SetCallback(value); - } + auto skItem = dynamic_cast(item); + if (!skItem) return false; - vint DataReverseSorter::Compare(const description::Value& row1, const description::Value& row2) - { - return sorter ? -sorter->Compare(row1, row2) : 0; - } + vint index = shortcutKeyItems.IndexOf(skItem); + if (index == -1) return false; + OnDestroyingShortcut(skItem); + return shortcutKeyItems.RemoveAt(index); + } + } + } +} /*********************************************************************** -DataColumn +.\APPLICATION\GRAPHICSHOST\GUIGRAPHICSHOST_TAB.CPP ***********************************************************************/ - void DataColumn::NotifyAllColumnsUpdate(bool affectItem) +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; + using namespace controls; + + const wchar_t* const IGuiTabAction::Identifier = L"vl::presentation::compositions::IGuiTabAction"; + +/*********************************************************************** +GuiTabActionManager +***********************************************************************/ + + namespace tab_focus + { + void CollectControls(GuiControl* current, bool includeCurrent, Group& prioritized) { - if (dataProvider) + if (includeCurrent) { - vint index = dataProvider->columns.IndexOf(this); - if (index != -1) + auto tabAction = current->QueryTypedService(); + if (tabAction && (tabAction->IsTabAvailable() || tabAction->GetTabPriority() != -1)) { - dataProvider->columns.NotifyColumnUpdated(index, affectItem); + vint priority = tabAction->GetTabPriority(); + vuint64_t normalized = priority < 0 ? ~(vuint64_t)0 : (vuint64_t)priority; + prioritized.Add(normalized, current); + return; } } - } - - DataColumn::DataColumn() - { - } - DataColumn::~DataColumn() - { - if (popup && ownPopup) + vint count = current->GetChildrenCount(); + for (vint i = 0; i < count; i++) { - SafeDeleteControl(popup); + CollectControls(current->GetChild(i), true, prioritized); } } - WString DataColumn::GetText() - { - return text; - } - - void DataColumn::SetText(const WString& value) + void InsertPrioritized(List& controls, vint index, Group& prioritized) { - if (text != value) + vint count = prioritized.Count(); + for (vint i = 0; i < count; i++) { - text = value; - NotifyAllColumnsUpdate(false); + auto& values = prioritized.GetByIndex(i); + for (vint j = 0; j < values.Count(); j++) + { + controls.Insert(index++, values[j]); + } } } + } + using namespace tab_focus; - vint DataColumn::GetSize() - { - return size; - } - - void DataColumn::SetSize(vint value) + void GuiTabActionManager::BuildControlList() + { + controlsInOrder.Clear(); { - if (size != value) - { - size = value; - NotifyAllColumnsUpdate(false); - } + Group prioritized; + CollectControls(controlHost, false, prioritized); + InsertPrioritized(controlsInOrder, 0, prioritized); } - bool DataColumn::GetOwnPopup() + for (vint i = 0; i < controlsInOrder.Count(); i++) { - return ownPopup; + Group prioritized; + CollectControls(controlsInOrder[i], false, prioritized); + InsertPrioritized(controlsInOrder, i + 1, prioritized); } + } - void DataColumn::SetOwnPopup(bool value) + controls::GuiControl* GuiTabActionManager::GetNextFocusControl(controls::GuiControl* focusedControl, vint offset) + { + if (!available) { - ownPopup = value; + BuildControlList(); + available = true; } +#define STEP_AND_NORMALIZE(INDEX) (((INDEX) + offset + controlsInOrder.Count()) % controlsInOrder.Count()) - GuiMenu* DataColumn::GetPopup() - { - return popup; - } + if (controlsInOrder.Count() == 0) return nullptr; + vint startIndex = controlsInOrder.IndexOf(focusedControl); + startIndex = + startIndex == -1 ? 0 : + STEP_AND_NORMALIZE(startIndex); - void DataColumn::SetPopup(GuiMenu* value) + vint index = startIndex; + do { - if (popup != value) + auto control = controlsInOrder[index]; + if (auto tabAction = control->QueryTypedService()) { - popup = value; - NotifyAllColumnsUpdate(false); + if (tabAction->IsTabAvailable() && tabAction->IsTabEnabled()) + { + return control; + } } - } - - Ptr DataColumn::GetFilter() - { - return associatedFilter; - } - void DataColumn::SetFilter(Ptr value) - { - if (associatedFilter) associatedFilter->SetCallback(nullptr); - associatedFilter = value; - if (associatedFilter) associatedFilter->SetCallback(dataProvider); - NotifyAllColumnsUpdate(false); - } + index = STEP_AND_NORMALIZE(index); + } while (index != startIndex); - Ptr DataColumn::GetSorter() - { - return associatedSorter; - } +#undef STEP_AND_NORMALIZE - void DataColumn::SetSorter(Ptr value) - { - if (associatedSorter) associatedSorter->SetCallback(nullptr); - associatedSorter = value; - if (associatedSorter) associatedSorter->SetCallback(dataProvider); - NotifyAllColumnsUpdate(false); - } + return nullptr; + } - Ptr DataColumn::GetVisualizerFactory() + GuiTabActionManager::GuiTabActionManager(controls::GuiControlHost* _controlHost) + :controlHost(_controlHost) + { + } + + GuiTabActionManager::~GuiTabActionManager() + { + } + + void GuiTabActionManager::InvalidateTabOrderCache() + { + available = false; + controlsInOrder.Clear(); + } + + bool GuiTabActionManager::KeyDown(const NativeWindowKeyInfo& info, GuiGraphicsComposition* focusedComposition) + { + if (!info.ctrl && !info.alt && info.code == VKEY::KEY_TAB) { - return visualizerFactory; + GuiControl* focusedControl = nullptr; + if (focusedComposition) + { + focusedControl = focusedComposition->GetRelatedControl(); + if (focusedControl && focusedControl->GetAcceptTabInput()) + { + return false; + } + } + + if (auto next = GetNextFocusControl(focusedControl, (info.shift ? -1 : 1))) + { + next->SetFocused(); + supressTabOnce = true; + return true; + } } + return false; + } - void DataColumn::SetVisualizerFactory(Ptr value) + bool GuiTabActionManager::Char(const NativeWindowCharInfo& info) + { + bool supress = supressTabOnce; + supressTabOnce = false; + return supress && info.code == L'\t'; + } + } + } +} + +/*********************************************************************** +.\CONTROLS\GUIBUTTONCONTROLS.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace collections; + using namespace reflection::description; + +/*********************************************************************** +GuiButton +***********************************************************************/ + + void GuiButton::BeforeControlTemplateUninstalled_() + { + } + + void GuiButton::AfterControlTemplateInstalled_(bool initialize) + { + TypedControlTemplateObject(true)->SetState(controlState); + } + + void GuiButton::OnParentLineChanged() + { + GuiControl::OnParentLineChanged(); + if(GetRelatedControlHost()==0) { - visualizerFactory = value; - NotifyAllColumnsUpdate(true); + mousePressing=false; + mouseHoving=false; + UpdateControlState(); } + } - Ptr DataColumn::GetEditorFactory() + void GuiButton::OnActiveAlt() + { + if (autoFocus) { - return editorFactory; + GuiControl::OnActiveAlt(); } + Clicked.Execute(GetNotifyEventArguments()); + } - void DataColumn::SetEditorFactory(Ptr value) + bool GuiButton::IsTabAvailable() + { + return autoFocus && GuiControl::IsTabAvailable(); + } + + void GuiButton::UpdateControlState() + { + auto newControlState = ButtonState::Normal; + if (keyPressing) { - editorFactory = value; - NotifyAllColumnsUpdate(true); + newControlState = ButtonState::Pressed; } - - WString DataColumn::GetCellText(vint row) + else if (mousePressing) { - if (0 <= row && row < dataProvider->Count()) + if (mouseHoving) { - return ReadProperty(dataProvider->GetBindingValue(row), textProperty); + newControlState = ButtonState::Pressed; } - return L""; - } - - description::Value DataColumn::GetCellValue(vint row) - { - if (0 <= row && row < dataProvider->Count()) + else { - return ReadProperty(dataProvider->GetBindingValue(row), valueProperty); + newControlState = ButtonState::Active; } - return Value(); } - - void DataColumn::SetCellValue(vint row, description::Value value) + else { - if (0 <= row && row < dataProvider->Count()) + if (mouseHoving) { - auto rowValue = dataProvider->GetBindingValue(row); - WriteProperty(rowValue, valueProperty, value); - dataProvider->InvokeOnItemModified(row, 1, 1); + newControlState = ButtonState::Active; + } + else + { + newControlState = ButtonState::Normal; } } - - ItemProperty DataColumn::GetTextProperty() + if (controlState != newControlState) { - return textProperty; + controlState = newControlState; + TypedControlTemplateObject(true)->SetState(controlState); } + } - void DataColumn::SetTextProperty(const ItemProperty& value) + void GuiButton::CheckAndClick(compositions::GuiEventArgs& arguments) + { + auto eventSource = arguments.eventSource->GetAssociatedControl(); + while (eventSource && eventSource != this) { - if (textProperty != value) + if (eventSource->GetFocusableComposition()) { - textProperty = value; - NotifyAllColumnsUpdate(true); - compositions::GuiEventArgs arguments; - TextPropertyChanged.Execute(arguments); + return; } + eventSource = eventSource->GetParent(); } + Clicked.Execute(GetNotifyEventArguments()); + } - WritableItemProperty DataColumn::GetValueProperty() - { - return valueProperty; - } - - void DataColumn::SetValueProperty(const WritableItemProperty& value) + void GuiButton::OnLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) { - if (valueProperty != value) + mousePressing = true; + if (autoFocus) { - valueProperty = value; - NotifyAllColumnsUpdate(true); - compositions::GuiEventArgs arguments; - ValuePropertyChanged.Execute(arguments); + SetFocused(); + } + UpdateControlState(); + if (!clickOnMouseUp) + { + CheckAndClick(arguments); } } + } -/*********************************************************************** -DataColumns -***********************************************************************/ - - void DataColumns::NotifyColumnUpdated(vint index, bool affectItem) + void GuiButton::OnLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) { - affectItemFlag = affectItem; - NotifyUpdateInternal(index, 1, 1); - affectItemFlag = true; + mousePressing = false; + UpdateControlState(); } - - void DataColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) + if (GetVisuallyEnabled()) { - dataProvider->NotifyAllColumnsUpdate(); - if (affectItemFlag) + if (mouseHoving && clickOnMouseUp) { - dataProvider->NotifyAllItemsUpdate(); + CheckAndClick(arguments); } } + } - bool DataColumns::QueryInsert(vint index, const Ptr& value) + void GuiButton::OnMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) { - return !items.Contains(value.Obj()); + mouseHoving = true; + UpdateControlState(); } + } - void DataColumns::AfterInsert(vint index, const Ptr& value) + void GuiButton::OnMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (arguments.eventSource == boundsComposition || !ignoreChildControlMouseEvents) { - value->dataProvider = dataProvider; + mouseHoving = false; + UpdateControlState(); } - - void DataColumns::BeforeRemove(vint index, const Ptr& value) + } + + void GuiButton::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (arguments.eventSource == focusableComposition && !arguments.ctrl && !arguments.shift && !arguments.alt) { - value->dataProvider = nullptr; + switch (arguments.code) + { + case VKEY::KEY_RETURN: + CheckAndClick(arguments); + arguments.handled = true; + break; + case VKEY::KEY_SPACE: + if (!arguments.autoRepeatKeyDown) + { + keyPressing = true; + UpdateControlState(); + } + arguments.handled = true; + break; + default:; + } } + } - DataColumns::DataColumns(DataProvider* _dataProvider) - :dataProvider(_dataProvider) + void GuiButton::OnKeyUp(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (arguments.eventSource == focusableComposition && !arguments.ctrl && !arguments.shift && !arguments.alt) { + switch (arguments.code) + { + case VKEY::KEY_SPACE: + if (keyPressing) + { + keyPressing = false; + UpdateControlState(); + CheckAndClick(arguments); + } + arguments.handled = true; + break; + default:; + } } + } - DataColumns::~DataColumns() + void GuiButton::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (keyPressing) { + keyPressing = false; + UpdateControlState(); } + } + + GuiButton::GuiButton(theme::ThemeName themeName) + :GuiControl(themeName) + { + Clicked.SetAssociatedComposition(boundsComposition); + SetFocusableComposition(boundsComposition); + + boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiButton::OnLeftButtonDown); + boundsComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiButton::OnLeftButtonUp); + boundsComposition->GetEventReceiver()->mouseEnter.AttachMethod(this, &GuiButton::OnMouseEnter); + boundsComposition->GetEventReceiver()->mouseLeave.AttachMethod(this, &GuiButton::OnMouseLeave); + boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiButton::OnKeyDown); + boundsComposition->GetEventReceiver()->keyUp.AttachMethod(this, &GuiButton::OnKeyUp); + boundsComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiButton::OnLostFocus); + } + + GuiButton::~GuiButton() + { + } + + bool GuiButton::GetClickOnMouseUp() + { + return clickOnMouseUp; + } + + void GuiButton::SetClickOnMouseUp(bool value) + { + clickOnMouseUp=value; + } + + bool GuiButton::GetAutoFocus() + { + return autoFocus; + } + + void GuiButton::SetAutoFocus(bool value) + { + autoFocus = value; + } + + bool GuiButton::GetIgnoreChildControlMouseEvents() + { + return ignoreChildControlMouseEvents; + } + + void GuiButton::SetIgnoreChildControlMouseEvents(bool value) + { + ignoreChildControlMouseEvents = value; + } /*********************************************************************** -DataProvider +GuiSelectableButton::GroupController ***********************************************************************/ - void DataProvider::NotifyAllItemsUpdate() - { - InvokeOnItemModified(0, Count(), Count()); - } + GuiSelectableButton::GroupController::GroupController() + { + } - void DataProvider::NotifyAllColumnsUpdate() + GuiSelectableButton::GroupController::~GroupController() + { + for(vint i=buttons.Count()-1;i>=0;i--) { - if (columnItemViewCallback) - { - columnItemViewCallback->OnColumnChanged(); - } + buttons[i]->SetGroupController(0); } + } - GuiListControl::IItemProvider* DataProvider::GetItemProvider() + void GuiSelectableButton::GroupController::Attach(GuiSelectableButton* button) + { + if(!buttons.Contains(button)) { - return this; + buttons.Add(button); } + } - void DataProvider::OnProcessorChanged() - { - RebuildFilter(); - ReorderRows(true); - } + void GuiSelectableButton::GroupController::Detach(GuiSelectableButton* button) + { + buttons.Remove(button); + } - void DataProvider::OnItemSourceModified(vint start, vint count, vint newCount) +/*********************************************************************** +GuiSelectableButton::MutexGroupController +***********************************************************************/ + + GuiSelectableButton::MutexGroupController::MutexGroupController() + :suppress(false) + { + } + + GuiSelectableButton::MutexGroupController::~MutexGroupController() + { + } + + void GuiSelectableButton::MutexGroupController::OnSelectedChanged(GuiSelectableButton* button) + { + if(!suppress) { - if (!currentSorter && !currentFilter && count == newCount) - { - InvokeOnItemModified(start, count, newCount); - } - else + suppress=true; + for(vint i=0;iSetSelected(buttons[i]==button); } + suppress=false; } + } - ListViewDataColumns& DataProvider::GetDataColumns() +/*********************************************************************** +GuiSelectableButton +***********************************************************************/ + + void GuiSelectableButton::BeforeControlTemplateUninstalled_() + { + } + + void GuiSelectableButton::AfterControlTemplateInstalled_(bool initialize) + { + TypedControlTemplateObject(true)->SetSelected(isSelected); + } + + void GuiSelectableButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if(autoSelection) { - return dataColumns; + SetSelected(!GetSelected()); } + } - DataColumns& DataProvider::GetColumns() + GuiSelectableButton::GuiSelectableButton(theme::ThemeName themeName) + :GuiButton(themeName) + { + GroupControllerChanged.SetAssociatedComposition(boundsComposition); + AutoSelectionChanged.SetAssociatedComposition(boundsComposition); + SelectedChanged.SetAssociatedComposition(boundsComposition); + + Clicked.AttachMethod(this, &GuiSelectableButton::OnClicked); + } + + GuiSelectableButton::~GuiSelectableButton() + { + if(groupController) { - return columns; + groupController->Detach(this); } + } - Ptr DataProvider::GetItemSource() + GuiSelectableButton::GroupController* GuiSelectableButton::GetGroupController() + { + return groupController; + } + + void GuiSelectableButton::SetGroupController(GroupController* value) + { + if(groupController) { - return itemSource; + groupController->Detach(this); } - - void DataProvider::SetItemSource(Ptr _itemSource) + groupController=value; + if(groupController) { - vint oldCount = 0; - if (itemSource) - { - oldCount = itemSource->GetCount(); - } - if (itemChangedEventHandler) - { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } - - itemSource = nullptr; - itemChangedEventHandler = nullptr; + groupController->Attach(this); + } + GroupControllerChanged.Execute(GetNotifyEventArguments()); + } - if (_itemSource) - { - if (auto ol = _itemSource.Cast()) - { - itemSource = ol; - itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) - { - OnItemSourceModified(start, oldCount, newCount); - }); - } - else if (auto rl = _itemSource.Cast()) - { - itemSource = rl; - } - else - { - itemSource = IValueList::Create(GetLazyList(_itemSource)); - } - } + bool GuiSelectableButton::GetAutoSelection() + { + return autoSelection; + } - OnItemSourceModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); + void GuiSelectableButton::SetAutoSelection(bool value) + { + if(autoSelection!=value) + { + autoSelection=value; + AutoSelectionChanged.Execute(GetNotifyEventArguments()); } + } - void DataProvider::RebuildFilter() + bool GuiSelectableButton::GetSelected() + { + return isSelected; + } + + void GuiSelectableButton::SetSelected(bool value) + { + if (isSelected != value) { - if (currentFilter) + isSelected = value; + TypedControlTemplateObject(true)->SetSelected(isSelected); + if (groupController) { - currentFilter->SetCallback(nullptr); - currentFilter = nullptr; + groupController->OnSelectedChanged(this); } + SelectedChanged.Execute(GetNotifyEventArguments()); + } + } + } + } +} - List> selectedFilters; - CopyFrom( - selectedFilters, - From(columns) - .Select([](Ptr column) {return column->GetFilter(); }) - .Where([](Ptr filter) {return filter != nullptr; }) - ); - if (additionalFilter) - { - selectedFilters.Add(additionalFilter); - } - if (selectedFilters.Count() > 0) - { - auto andFilter = MakePtr(); - for (auto filter : selectedFilters) - { - andFilter->AddSubFilter(filter); - } - currentFilter = andFilter; - } +/*********************************************************************** +.\CONTROLS\GUICONTAINERCONTROLS.CPP +***********************************************************************/ - if (currentFilter) - { - currentFilter->SetCallback(this); - } - } - void DataProvider::ReorderRows(bool invokeCallback) - { - vint oldRowCount = virtualRowToSourceRow.Count(); - virtualRowToSourceRow.Clear(); - vint rowCount = itemSource ? itemSource->GetCount() : 0; +namespace vl +{ + namespace presentation + { + using namespace compositions; - if (currentFilter) - { - for (vint i = 0; i < rowCount; i++) - { - if (currentFilter->Filter(itemSource->Get(i))) - { - virtualRowToSourceRow.Add(i); - } - } - } - else - { - for (vint i = 0; i < rowCount; i++) - { - virtualRowToSourceRow.Add(i); - } - } + namespace controls + { + using namespace reflection::description; - if (currentSorter && virtualRowToSourceRow.Count() > 0) - { - IDataSorter* sorter = currentSorter.Obj(); - SortLambda( - &virtualRowToSourceRow[0], - virtualRowToSourceRow.Count(), - [=](vint a, vint b) - { - return sorter->Compare(itemSource->Get(a), itemSource->Get(b)); - }); - } +/*********************************************************************** +GuiTabPage +***********************************************************************/ - if (invokeCallback) - { - NotifyAllItemsUpdate(); - } - } + bool GuiTabPage::IsAltAvailable() + { + return false; + } - DataProvider::DataProvider() - :dataColumns(this) - , columns(this) - { - RebuildFilter(); - ReorderRows(false); - } + GuiTabPage::GuiTabPage(theme::ThemeName themeName) + :GuiCustomControl(themeName) + { + } - DataProvider::~DataProvider() - { - if (itemChangedEventHandler) - { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } - } + GuiTabPage::~GuiTabPage() + { + FinalizeAggregation(); + } - Ptr DataProvider::GetAdditionalFilter() - { - return additionalFilter; - } + GuiTab* GuiTabPage::GetOwnerTab() + { + return tab; + } - void DataProvider::SetAdditionalFilter(Ptr value) - { - additionalFilter = value; - RebuildFilter(); - ReorderRows(true); - } +/*********************************************************************** +GuiTabPageList +***********************************************************************/ - // ===================== GuiListControl::IItemProvider ===================== + bool GuiTabPageList::QueryInsert(vint index, GuiTabPage* const& value) + { + return !items.Contains(value) && value->tab == nullptr; + } - vint DataProvider::Count() + void GuiTabPageList::AfterInsert(vint index, GuiTabPage* const& value) + { + value->tab = tab; + value->SetVisible(false); + value->boundsComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + tab->containerComposition->AddChild(value->boundsComposition); + + if (!tab->selectedPage) { - return virtualRowToSourceRow.Count(); + tab->SetSelectedPage(value); } + } - WString DataProvider::GetTextValue(vint itemIndex) + void GuiTabPageList::BeforeRemove(vint index, GuiTabPage* const& value) + { + tab->containerComposition->RemoveChild(value->boundsComposition); + value->tab = nullptr; + + if (items.Count() <= 1) { - return GetText(itemIndex); + tab->SetSelectedPage(nullptr); } - - description::Value DataProvider::GetBindingValue(vint itemIndex) + else if (items.Count() > index + 1) { - return itemSource ? itemSource->Get(virtualRowToSourceRow[itemIndex]) : Value(); + tab->SetSelectedPage(items[index + 1]); } - - IDescriptable* DataProvider::RequestView(const WString& identifier) + else if (items.Count() == index + 1) { - if (identifier == IListViewItemView::Identifier) - { - return (IListViewItemView*)this; - } - else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) - { - return (ListViewColumnItemArranger::IColumnItemView*)this; - } - else if (identifier == IDataGridView::Identifier) - { - return (IDataGridView*)this; - } - else - { - return nullptr; - } + tab->SetSelectedPage(items[index - 1]); } + } - // ===================== list::IListViewItemProvider ===================== + GuiTabPageList::GuiTabPageList(GuiTab* _tab) + :tab(_tab) + { + } - Ptr DataProvider::GetSmallImage(vint itemIndex) - { - if (0 <= itemIndex && itemIndex < Count()) - { - return ReadProperty(GetBindingValue(itemIndex), smallImageProperty); - } - return nullptr; - } + GuiTabPageList::~GuiTabPageList() + { + } - Ptr DataProvider::GetLargeImage(vint itemIndex) - { - if (0 <= itemIndex && itemIndex < Count()) - { - return ReadProperty(GetBindingValue(itemIndex), largeImageProperty); - } - return nullptr; - } +/*********************************************************************** +GuiTab::CommandExecutor +***********************************************************************/ - WString DataProvider::GetText(vint itemIndex) - { - if (columns.Count() == 0)return L""; - return columns[0]->GetCellText(itemIndex); - } + GuiTab::CommandExecutor::CommandExecutor(GuiTab* _tab) + :tab(_tab) + { + } - WString DataProvider::GetSubItem(vint itemIndex, vint index) - { - return columns[index + 1]->GetCellText(itemIndex); - } + GuiTab::CommandExecutor::~CommandExecutor() + { + } - vint DataProvider::GetDataColumnCount() + void GuiTab::CommandExecutor::ShowTab(vint index, bool setFocus) + { + tab->SetSelectedPage(tab->GetPages().Get(index)); + if (setFocus) { - return dataColumns.Count(); + tab->SetFocused(); } + } - vint DataProvider::GetDataColumn(vint index) - { - return dataColumns[index]; - } +/*********************************************************************** +GuiTab +***********************************************************************/ - vint DataProvider::GetColumnCount() - { - return columns.Count(); - } + void GuiTab::BeforeControlTemplateUninstalled_() + { + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - WString DataProvider::GetColumnText(vint index) - { - return columns[index]->GetText(); - } + ct->SetCommands(nullptr); + ct->SetTabPages(nullptr); + ct->SetSelectedTabPage(nullptr); + } - // ===================== list::ListViewColumnItemArranger::IColumnItemView ===================== + void GuiTab::AfterControlTemplateInstalled_(bool initialize) + { + auto ct = TypedControlTemplateObject(true); + ct->SetCommands(commandExecutor.Obj()); + ct->SetTabPages(UnboxValue>(BoxParameter(tabPages))); + ct->SetSelectedTabPage(selectedPage); + } - bool DataProvider::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) + void GuiTab::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (arguments.eventSource == focusableComposition) { - if (columnItemViewCallback)return false; - columnItemViewCallback = value; - return true; - } + if (auto ct = TypedControlTemplateObject(false)) + { + vint index = tabPages.IndexOf(selectedPage); + if (index != -1) + { + auto hint = ct->GetTabOrder(); + vint tabOffset = 0; + switch (hint) + { + case TabPageOrder::LeftToRight: + if (arguments.code == VKEY::KEY_LEFT) tabOffset = -1; + else if (arguments.code == VKEY::KEY_RIGHT) tabOffset = 1; + break; + case TabPageOrder::RightToLeft: + if (arguments.code == VKEY::KEY_LEFT) tabOffset = 1; + else if (arguments.code == VKEY::KEY_RIGHT) tabOffset = -1; + break; + case TabPageOrder::TopToBottom: + if (arguments.code == VKEY::KEY_UP) tabOffset = -1; + else if (arguments.code == VKEY::KEY_DOWN) tabOffset = 1; + break; + case TabPageOrder::BottomToTop: + if (arguments.code == VKEY::KEY_UP) tabOffset = 1; + else if (arguments.code == VKEY::KEY_DOWN) tabOffset = -1; + break; + default:; + } - bool DataProvider::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) - { - if (!columnItemViewCallback) return false; - columnItemViewCallback = nullptr; - return true; - } + if (tabOffset != 0) + { + arguments.handled = true; + index += tabOffset; + if (index < 0) index = 0; + else if (index >= tabPages.Count()) index = tabPages.Count() - 1; - vint DataProvider::GetColumnSize(vint index) - { - return columns[index]->GetSize(); + SetSelectedPage(tabPages[index]); + } + } + } } + } - void DataProvider::SetColumnSize(vint index, vint value) - { - columns[index]->SetSize(value); - } + GuiTab::GuiTab(theme::ThemeName themeName) + :GuiControl(themeName) + , tabPages(this) + { + commandExecutor = Ptr(new CommandExecutor(this)); + SetFocusableComposition(boundsComposition); - GuiMenu* DataProvider::GetDropdownPopup(vint index) - { - return columns[index]->GetPopup(); - } + boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiTab::OnKeyDown); + } - ColumnSortingState DataProvider::GetSortingState(vint index) - { - return columns[index]->sortingState; - } + GuiTab::~GuiTab() + { + } - // ===================== list::IDataGridView ===================== + collections::ObservableList& GuiTab::GetPages() + { + return tabPages; + } - bool DataProvider::IsColumnSortable(vint column) - { - return columns[column]->GetSorter(); - } + GuiTabPage* GuiTab::GetSelectedPage() + { + return selectedPage; + } - void DataProvider::SortByColumn(vint column, bool ascending) + bool GuiTab::SetSelectedPage(GuiTabPage* value) + { + if (!value) { - if (0 <= column && column < columns.Count()) - { - auto sorter = columns[column]->GetSorter(); - if (!sorter) - { - currentSorter = nullptr; - } - else if (ascending) - { - currentSorter = sorter; - } - else - { - Ptr reverseSorter = new DataReverseSorter(); - reverseSorter->SetSubSorter(sorter); - currentSorter = reverseSorter; - } - } - else - { - currentSorter = nullptr; - } - - for (vint i = 0; i < columns.Count(); i++) + if (tabPages.Count() == 0) { - columns[i]->sortingState = - i != column ? ColumnSortingState::NotSorted : - ascending ? ColumnSortingState::Ascending : - ColumnSortingState::Descending - ; + selectedPage = nullptr; } - NotifyAllColumnsUpdate(); - ReorderRows(true); } - - vint DataProvider::GetSortedColumn() + else if (value->GetOwnerTab() == this) { - for (vint i = 0; i < columns.Count(); i++) + if (selectedPage == value) { - auto state = columns[i]->sortingState; - if (state != ColumnSortingState::NotSorted) - { - return i; - } + return true; } - return -1; - } - bool DataProvider::IsSortOrderAscending() - { - for (vint i = 0; i < columns.Count(); i++) + selectedPage = value; + for (auto tabPage : tabPages) { - auto state = columns[i]->sortingState; - if (state != ColumnSortingState::NotSorted) - { - return state == ColumnSortingState::Ascending; - } + tabPage->SetVisible(tabPage == selectedPage); } - return true; } - - vint DataProvider::GetCellSpan(vint row, vint column) + if (auto ct = TypedControlTemplateObject(false)) { - return 1; + ct->SetSelectedTabPage(selectedPage); } + SelectedPageChanged.Execute(GetNotifyEventArguments()); + return selectedPage == value; + } - IDataVisualizerFactory* DataProvider::GetCellDataVisualizerFactory(vint row, vint column) - { - return columns[column]->GetVisualizerFactory().Obj(); - } +/*********************************************************************** +GuiScrollView +***********************************************************************/ - IDataEditorFactory* DataProvider::GetCellDataEditorFactory(vint row, vint column) - { - return columns[column]->GetEditorFactory().Obj(); - } + void GuiScrollView::BeforeControlTemplateUninstalled_() + { + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - description::Value DataProvider::GetBindingCellValue(vint row, vint column) + if (auto scroll = ct->GetHorizontalScroll()) { - return columns[column]->GetCellValue(row); + scroll->PositionChanged.Detach(hScrollHandler); } - - void DataProvider::SetBindingCellValue(vint row, vint column, const description::Value& value) + if (auto scroll = ct->GetVerticalScroll()) { - columns[column]->SetCellValue(row, value); + scroll->PositionChanged.Detach(vScrollHandler); } - } - -/*********************************************************************** -GuiBindableDataGrid -***********************************************************************/ + ct->GetEventReceiver()->horizontalWheel.Detach(hWheelHandler); + ct->GetEventReceiver()->verticalWheel.Detach(vWheelHandler); + ct->BoundsChanged.Detach(containerBoundsChangedHandler); - GuiBindableDataGrid::GuiBindableDataGrid(theme::ThemeName themeName) - :GuiVirtualDataGrid(themeName, new list::DataProvider) - { - dataProvider = dynamic_cast(GetItemProvider()); + hScrollHandler = nullptr; + vScrollHandler = nullptr; + hWheelHandler = nullptr; + vWheelHandler = nullptr; + containerBoundsChangedHandler = nullptr; + supressScrolling = false; } - GuiBindableDataGrid::~GuiBindableDataGrid() - { - } - - list::ListViewDataColumns& GuiBindableDataGrid::GetDataColumns() + void GuiScrollView::AfterControlTemplateInstalled_(bool initialize) { - return dataProvider->GetDataColumns(); + auto ct = TypedControlTemplateObject(true); + if (auto scroll = ct->GetHorizontalScroll()) + { + hScrollHandler = scroll->PositionChanged.AttachMethod(this, &GuiScrollView::OnHorizontalScroll); + } + if (auto scroll = ct->GetVerticalScroll()) + { + vScrollHandler = scroll->PositionChanged.AttachMethod(this, &GuiScrollView::OnVerticalScroll); + } + hWheelHandler = ct->GetEventReceiver()->horizontalWheel.AttachMethod(this, &GuiScrollView::OnHorizontalWheel); + vWheelHandler = ct->GetEventReceiver()->verticalWheel.AttachMethod(this, &GuiScrollView::OnVerticalWheel); + containerBoundsChangedHandler = ct->BoundsChanged.AttachMethod(this, &GuiScrollView::OnContainerBoundsChanged); + CalculateView(); } - list::DataColumns& GuiBindableDataGrid::GetColumns() + void GuiScrollView::UpdateDisplayFont() { - return dataProvider->GetColumns(); + GuiControl::UpdateDisplayFont(); + CalculateView(); } - Ptr GuiBindableDataGrid::GetItemSource() + void GuiScrollView::OnContainerBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return dataProvider->GetItemSource(); + CalculateView(); } - void GuiBindableDataGrid::SetItemSource(Ptr _itemSource) + void GuiScrollView::OnHorizontalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - dataProvider->SetItemSource(_itemSource); + if(!supressScrolling) + { + CallUpdateView(); + } } - Ptr GuiBindableDataGrid::GetAdditionalFilter() + void GuiScrollView::OnVerticalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return dataProvider->GetAdditionalFilter(); + if(!supressScrolling) + { + CallUpdateView(); + } } - void GuiBindableDataGrid::SetAdditionalFilter(Ptr value) + void GuiScrollView::OnHorizontalWheel(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - dataProvider->SetAdditionalFilter(value); + if(!supressScrolling) + { + if (auto scroll = TypedControlTemplateObject(true)->GetHorizontalScroll()) + { + if (scroll->GetEnabled()) + { + vint position = scroll->GetPosition(); + vint move = scroll->GetSmallMove(); + position -= move * arguments.wheel / 60; + scroll->SetPosition(position); + } + } + } } - ItemProperty> GuiBindableDataGrid::GetLargeImageProperty() - { - return dataProvider->largeImageProperty; - } - - void GuiBindableDataGrid::SetLargeImageProperty(const ItemProperty>& value) + void GuiScrollView::OnVerticalWheel(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if (dataProvider->largeImageProperty != value) + if(!supressScrolling && GetVisuallyEnabled()) { - dataProvider->largeImageProperty = value; - dataProvider->NotifyAllItemsUpdate(); - LargeImagePropertyChanged.Execute(GetNotifyEventArguments()); + if (auto scroll = TypedControlTemplateObject(true)->GetVerticalScroll()) + { + if (scroll->GetEnabled()) + { + vint position = scroll->GetPosition(); + vint move = scroll->GetSmallMove(); + position -= move * arguments.wheel / 60; + scroll->SetPosition(position); + } + } } } - ItemProperty> GuiBindableDataGrid::GetSmallImageProperty() + void GuiScrollView::CallUpdateView() { - return dataProvider->smallImageProperty; + Rect viewBounds=GetViewBounds(); + UpdateView(viewBounds); } - void GuiBindableDataGrid::SetSmallImageProperty(const ItemProperty>& value) + bool GuiScrollView::AdjustView(Size fullSize) { - if (dataProvider->smallImageProperty != value) + auto ct = TypedControlTemplateObject(true); + auto hScroll = ct->GetHorizontalScroll(); + auto vScroll = ct->GetVerticalScroll(); + Size viewSize = ct->GetContainerComposition()->GetBounds().GetSize(); + + auto hVisible = hScroll ? hScroll->GetVisible() : false; + auto vVisible = vScroll ? vScroll->GetVisible() : false; + + if (hScroll) { - dataProvider->smallImageProperty = value; - dataProvider->NotifyAllItemsUpdate(); - SmallImagePropertyChanged.Execute(GetNotifyEventArguments()); + if (fullSize.x <= viewSize.x) + { + hScroll->SetVisible(horizontalAlwaysVisible); + hScroll->SetEnabled(false); + hScroll->SetPosition(0); + } + else + { + hScroll->SetVisible(true); + hScroll->SetEnabled(true); + hScroll->SetTotalSize(fullSize.x); + hScroll->SetPageSize(viewSize.x); + } } - } - description::Value GuiBindableDataGrid::GetSelectedRowValue() - { - auto pos = GetSelectedCell(); - if (pos.row == -1 || pos.column == -1) + if (vScroll) { - return Value(); + if (fullSize.y <= viewSize.y) + { + vScroll->SetVisible(verticalAlwaysVisible); + vScroll->SetEnabled(false); + vScroll->SetPosition(0); + } + else + { + vScroll->SetVisible(true); + vScroll->SetEnabled(true); + vScroll->SetTotalSize(fullSize.y); + vScroll->SetPageSize(viewSize.y); + } } - return dataProvider->GetBindingValue(GetSelectedCell().row); + + auto hVisible2 = hScroll ? hScroll->GetVisible() : false; + auto vVisible2 = vScroll ? vScroll->GetVisible() : false; + return hVisible != hVisible2 || vVisible != vVisible2; } - description::Value GuiBindableDataGrid::GetSelectedCellValue() + GuiScrollView::GuiScrollView(theme::ThemeName themeName) + :GuiControl(themeName) { - auto pos = GetSelectedCell(); - if (pos.row == -1 || pos.column == -1) - { - return Value(); - } - return dataProvider->GetColumns()[pos.column]->GetCellValue(pos.row); + containerComposition->BoundsChanged.AttachMethod(this, &GuiScrollView::OnContainerBoundsChanged); } - } - } -} - -/*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUIBINDABLELISTCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace list; - using namespace tree; - using namespace reflection::description; - using namespace templates; - -/*********************************************************************** -GuiBindableTextList::ItemSource -***********************************************************************/ - GuiBindableTextList::ItemSource::ItemSource() + vint GuiScrollView::GetSmallMove() { + return GetDisplayFont().size * 2; } - GuiBindableTextList::ItemSource::~ItemSource() + Size GuiScrollView::GetBigMove() { - if (itemChangedEventHandler) - { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } + return GetViewSize(); } - - Ptr GuiBindableTextList::ItemSource::GetItemSource() + + GuiScrollView::~GuiScrollView() { - return itemSource; } - void GuiBindableTextList::ItemSource::SetItemSource(Ptr _itemSource) + void GuiScrollView::CalculateView() { - vint oldCount = 0; - if (itemSource) - { - oldCount = itemSource->GetCount(); - } - if (itemChangedEventHandler) + TryDelayExecuteIfNotDeleted([=]() { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } + auto ct = TypedControlTemplateObject(true); + auto hScroll = ct->GetHorizontalScroll(); + auto vScroll = ct->GetVerticalScroll(); - itemSource = nullptr; - itemChangedEventHandler = nullptr; - - if (_itemSource) - { - if (auto ol = _itemSource.Cast()) + if (!supressScrolling) { - itemSource = ol; - itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) + Size fullSize = QueryFullSize(); + while (true) { - InvokeOnItemModified(start, oldCount, newCount); - }); - } - else if (auto rl = _itemSource.Cast()) - { - itemSource = rl; - } - else - { - itemSource = IValueList::Create(GetLazyList(_itemSource)); - } - } + bool flagA = false; + bool flagB = false; - InvokeOnItemModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); - } + flagA = AdjustView(fullSize); + bool bothInvisible = (hScroll ? !hScroll->GetVisible() : true) && (vScroll ? !vScroll->GetVisible() : true); - description::Value GuiBindableTextList::ItemSource::Get(vint index) - { - if (!itemSource) return Value(); - return itemSource->Get(index); - } + if (!bothInvisible) + { + flagB = AdjustView(fullSize); + bothInvisible = (hScroll ? !hScroll->GetVisible() : true) && (vScroll ? !vScroll->GetVisible() : true); + } - void GuiBindableTextList::ItemSource::UpdateBindingProperties() - { - InvokeOnItemModified(0, Count(), Count()); - } - - // ===================== GuiListControl::IItemProvider ===================== - - vint GuiBindableTextList::ItemSource::Count() - { - if (!itemSource) return 0; - return itemSource->GetCount(); + supressScrolling = true; + CallUpdateView(); + supressScrolling = false; + + Size newSize = QueryFullSize(); + if (fullSize == newSize) + { + vint smallMove = GetSmallMove(); + Size bigMove = GetBigMove(); + if (hScroll) + { + hScroll->SetSmallMove(smallMove); + hScroll->SetBigMove(bigMove.x); + } + if (vScroll) + { + vScroll->SetSmallMove(smallMove); + vScroll->SetBigMove(bigMove.y); + } + + if (bothInvisible || !flagA && !flagB) + { + break; + } + } + else + { + fullSize = newSize; + } + } + } + }); } - WString GuiBindableTextList::ItemSource::GetTextValue(vint itemIndex) + Size GuiScrollView::GetViewSize() { - if (itemSource) - { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return ReadProperty(itemSource->Get(itemIndex), textProperty); - } - } - return L""; + Size viewSize = TypedControlTemplateObject(true)->GetContainerComposition()->GetBounds().GetSize(); + return viewSize; } - - IDescriptable* GuiBindableTextList::ItemSource::RequestView(const WString& identifier) + + Rect GuiScrollView::GetViewBounds() { - if (identifier == ITextItemView::Identifier) - { - return (ITextItemView*)this; - } - else - { - return 0; - } + return Rect(GetViewPosition(), GetViewSize()); } - - // ===================== GuiListControl::IItemBindingView ===================== - description::Value GuiBindableTextList::ItemSource::GetBindingValue(vint itemIndex) + Point GuiScrollView::GetViewPosition() { - if (itemSource) - { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return itemSource->Get(itemIndex); - } - } - return Value(); + auto ct = TypedControlTemplateObject(true); + auto hScroll = ct->GetHorizontalScroll(); + auto vScroll = ct->GetVerticalScroll(); + return Point(hScroll ? hScroll->GetPosition() : 0, vScroll ? vScroll->GetPosition() : 0); } - - // ===================== list::TextItemStyleProvider::ITextItemView ===================== - - bool GuiBindableTextList::ItemSource::GetChecked(vint itemIndex) + + void GuiScrollView::SetViewPosition(Point value) { - if (itemSource) + auto ct = TypedControlTemplateObject(true); + if (auto hScroll = ct->GetHorizontalScroll()) { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return ReadProperty(itemSource->Get(itemIndex), checkedProperty); - } + hScroll->SetPosition(value.x); } - return false; - } - - void GuiBindableTextList::ItemSource::SetChecked(vint itemIndex, bool value) - { - if (itemSource) + if (auto vScroll = ct->GetVerticalScroll()) { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - auto thisValue = itemSource->Get(itemIndex); - WriteProperty(thisValue, checkedProperty, value); - InvokeOnItemModified(itemIndex, 1, 1); - } + vScroll->SetPosition(value.y); } } -/*********************************************************************** -GuiBindableTextList -***********************************************************************/ - - GuiBindableTextList::GuiBindableTextList(theme::ThemeName themeName) - :GuiVirtualTextList(themeName, new ItemSource) + GuiScroll* GuiScrollView::GetHorizontalScroll() { - itemSource = dynamic_cast(GetItemProvider()); - - TextPropertyChanged.SetAssociatedComposition(boundsComposition); - TextPropertyChanged.SetAssociatedComposition(boundsComposition); + return TypedControlTemplateObject(true)->GetHorizontalScroll(); } - GuiBindableTextList::~GuiBindableTextList() + GuiScroll* GuiScrollView::GetVerticalScroll() { + return TypedControlTemplateObject(true)->GetVerticalScroll(); } - Ptr GuiBindableTextList::GetItemSource() + bool GuiScrollView::GetHorizontalAlwaysVisible() { - return itemSource->GetItemSource(); + return horizontalAlwaysVisible; } - void GuiBindableTextList::SetItemSource(Ptr _itemSource) + void GuiScrollView::SetHorizontalAlwaysVisible(bool value) { - itemSource->SetItemSource(_itemSource); + if (horizontalAlwaysVisible != value) + { + horizontalAlwaysVisible = value; + CalculateView(); + } } - ItemProperty GuiBindableTextList::GetTextProperty() + bool GuiScrollView::GetVerticalAlwaysVisible() { - return itemSource->textProperty; + return verticalAlwaysVisible; } - void GuiBindableTextList::SetTextProperty(const ItemProperty& value) + void GuiScrollView::SetVerticalAlwaysVisible(bool value) { - if (itemSource->textProperty != value) + if (verticalAlwaysVisible != value) { - itemSource->textProperty = value; - itemSource->UpdateBindingProperties(); - TextPropertyChanged.Execute(GetNotifyEventArguments()); + verticalAlwaysVisible = value; + CalculateView(); } } - WritableItemProperty GuiBindableTextList::GetCheckedProperty() +/*********************************************************************** +GuiScrollContainer +***********************************************************************/ + + Size GuiScrollContainer::QueryFullSize() { - return itemSource->checkedProperty; + return containerComposition->GetBounds().GetSize(); } - void GuiBindableTextList::SetCheckedProperty(const WritableItemProperty& value) + void GuiScrollContainer::UpdateView(Rect viewBounds) { - if (itemSource->checkedProperty != value) - { - itemSource->checkedProperty = value; - itemSource->UpdateBindingProperties(); - CheckedPropertyChanged.Execute(GetNotifyEventArguments()); - } + auto leftTop = Point(-viewBounds.x1, -viewBounds.y1); + containerComposition->SetBounds(Rect(leftTop, Size(0, 0))); } - description::Value GuiBindableTextList::GetSelectedItem() + GuiScrollContainer::GuiScrollContainer(theme::ThemeName themeName) + :GuiScrollView(themeName) { - vint index = GetSelectedItemIndex(); - if (index == -1) return Value(); - return itemSource->Get(index); + containerComposition->SetAlignmentToParent(Margin(-1, -1, -1, -1)); + UpdateView(Rect(0, 0, 0, 0)); } -/*********************************************************************** -GuiBindableListView::ItemSource -***********************************************************************/ + GuiScrollContainer::~GuiScrollContainer() + { + } - GuiBindableListView::ItemSource::ItemSource() - :columns(this) - , dataColumns(this) + bool GuiScrollContainer::GetExtendToFullWidth() { + return extendToFullWidth; } - GuiBindableListView::ItemSource::~ItemSource() + void GuiScrollContainer::SetExtendToFullWidth(bool value) { - if (itemChangedEventHandler) + if (extendToFullWidth != value) { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); + extendToFullWidth = value; + auto margin = containerComposition->GetAlignmentToParent(); + if (value) + { + containerComposition->SetAlignmentToParent(Margin(0, margin.top, 0, margin.bottom)); + } + else + { + containerComposition->SetAlignmentToParent(Margin(-1, margin.top, -1, margin.bottom)); + } } } - Ptr GuiBindableListView::ItemSource::GetItemSource() + bool GuiScrollContainer::GetExtendToFullHeight() { - return itemSource; + return extendToFullHeight; } - void GuiBindableListView::ItemSource::SetItemSource(Ptr _itemSource) + void GuiScrollContainer::SetExtendToFullHeight(bool value) { - vint oldCount = 0; - if (itemSource) - { - oldCount = itemSource->GetCount(); - } - if (itemChangedEventHandler) - { - auto ol = itemSource.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } - - itemSource = nullptr; - itemChangedEventHandler = nullptr; - - if (_itemSource) + if (extendToFullHeight != value) { - if (auto ol = _itemSource.Cast()) - { - itemSource = ol; - itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) - { - InvokeOnItemModified(start, oldCount, newCount); - }); - } - else if (auto rl = _itemSource.Cast()) + extendToFullHeight = value; + auto margin = containerComposition->GetAlignmentToParent(); + if (value) { - itemSource = rl; + containerComposition->SetAlignmentToParent(Margin(margin.left, 0, margin.right, 0)); } else { - itemSource = IValueList::Create(GetLazyList(_itemSource)); + containerComposition->SetAlignmentToParent(Margin(margin.left, -1, margin.right, -1)); } } - - InvokeOnItemModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); } + } + } +} - description::Value GuiBindableListView::ItemSource::Get(vint index) - { - if (!itemSource) return Value(); - return itemSource->Get(index); - } +/*********************************************************************** +.\CONTROLS\GUIDATETIMECONTROLS.CPP +***********************************************************************/ - void GuiBindableListView::ItemSource::UpdateBindingProperties() +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; + using namespace compositions; + using namespace elements; + +/*********************************************************************** +GuiDatePicker::CommandExecutor +***********************************************************************/ + + GuiDatePicker::CommandExecutor::CommandExecutor(GuiDatePicker* _datePicker) + :datePicker(_datePicker) { - InvokeOnItemModified(0, Count(), Count()); } - bool GuiBindableListView::ItemSource::NotifyUpdate(vint start, vint count) + GuiDatePicker::CommandExecutor::~CommandExecutor() { - if (!itemSource) return false; - if (start<0 || start >= itemSource->GetCount() || count <= 0 || start + count > itemSource->GetCount()) - { - return false; - } - else - { - InvokeOnItemModified(start, count, count); - return true; - } } - list::ListViewDataColumns& GuiBindableListView::ItemSource::GetDataColumns() + void GuiDatePicker::CommandExecutor::NotifyDateChanged() { - return dataColumns; + datePicker->date = datePicker->TypedControlTemplateObject(true)->GetDate(); + datePicker->UpdateText(); + datePicker->DateChanged.Execute(datePicker->GetNotifyEventArguments()); } - list::ListViewColumns& GuiBindableListView::ItemSource::GetColumns() + void GuiDatePicker::CommandExecutor::NotifyDateNavigated() { - return columns; + datePicker->DateNavigated.Execute(datePicker->GetNotifyEventArguments()); } - - // ===================== list::IListViewItemProvider ===================== - void GuiBindableListView::ItemSource::NotifyAllItemsUpdate() + void GuiDatePicker::CommandExecutor::NotifyDateSelected() { - NotifyUpdate(0, Count()); + datePicker->DateSelected.Execute(datePicker->GetNotifyEventArguments()); } - void GuiBindableListView::ItemSource::NotifyAllColumnsUpdate() +/*********************************************************************** +GuiDatePicker +***********************************************************************/ + + void GuiDatePicker::BeforeControlTemplateUninstalled_() { - for (vint i = 0; i < columnItemViewCallbacks.Count(); i++) - { - columnItemViewCallbacks[i]->OnColumnChanged(); - } - } + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - // ===================== GuiListControl::IItemProvider ===================== + ct->SetCommands(nullptr); + } - vint GuiBindableListView::ItemSource::Count() + void GuiDatePicker::AfterControlTemplateInstalled_(bool initialize) { - if (!itemSource) return 0; - return itemSource->GetCount(); + auto ct = TypedControlTemplateObject(true); + ct->SetCommands(commandExecutor.Obj()); + ct->SetDate(date); + ct->SetDateLocale(dateLocale); + UpdateText(); } - WString GuiBindableListView::ItemSource::GetTextValue(vint itemIndex) + void GuiDatePicker::UpdateText() { - return GetText(itemIndex); + GuiControl::SetText(dateLocale.FormatDate(dateFormat, date)); } - description::Value GuiBindableListView::ItemSource::GetBindingValue(vint itemIndex) + bool GuiDatePicker::IsAltAvailable() { - if (itemSource) + if (nestedAlt) { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return itemSource->Get(itemIndex); - } + return alt != L""; + } + else + { + return GuiControl::IsAltAvailable(); } - return Value(); } - IDescriptable* GuiBindableListView::ItemSource::RequestView(const WString& identifier) + compositions::IGuiAltActionHost* GuiDatePicker::GetActivatingAltHost() { - if (identifier == IListViewItemView::Identifier) - { - return (IListViewItemView*)this; - } - else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) + if (nestedAlt) { - return (ListViewColumnItemArranger::IColumnItemView*)this; + return this; } else { - return 0; + return GuiControl::GetActivatingAltHost(); } } - // ===================== list::ListViewItemStyleProvider::IListViewItemView ===================== - - Ptr GuiBindableListView::ItemSource::GetSmallImage(vint itemIndex) + GuiDatePicker::GuiDatePicker(theme::ThemeName themeName, bool _nestedAlt) + :GuiControl(themeName) + , nestedAlt(_nestedAlt) { - if (itemSource) - { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return ReadProperty(itemSource->Get(itemIndex), smallImageProperty); - } - } - return nullptr; + commandExecutor = Ptr(new CommandExecutor(this)); + SetDate(DateTime::LocalTime()); + SetDateLocale(Locale::UserDefault()); + SetAltComposition(boundsComposition); + SetAltControl(this, false); + + DateChanged.SetAssociatedComposition(boundsComposition); + DateNavigated.SetAssociatedComposition(boundsComposition); + DateSelected.SetAssociatedComposition(boundsComposition); + DateFormatChanged.SetAssociatedComposition(boundsComposition); + DateLocaleChanged.SetAssociatedComposition(boundsComposition); + + commandExecutor->NotifyDateChanged(); } - Ptr GuiBindableListView::ItemSource::GetLargeImage(vint itemIndex) + GuiDatePicker::~GuiDatePicker() { - if (itemSource) - { - if (0 <= itemIndex && itemIndex < itemSource->GetCount()) - { - return ReadProperty(itemSource->Get(itemIndex), largeImageProperty); - } - } - return nullptr; } - WString GuiBindableListView::ItemSource::GetText(vint itemIndex) + const DateTime& GuiDatePicker::GetDate() { - if (itemSource) - { - if (0 <= itemIndex && itemIndex < itemSource->GetCount() && columns.Count()>0) - { - return ReadProperty(itemSource->Get(itemIndex), columns[0]->GetTextProperty()); - } - } - return L""; + return date; } - WString GuiBindableListView::ItemSource::GetSubItem(vint itemIndex, vint index) + void GuiDatePicker::SetDate(const DateTime& value) { - if (itemSource) + if (date != value) { - if (0 <= itemIndex && itemIndex < itemSource->GetCount() && 0 <= index && index < columns.Count() - 1) - { - return ReadProperty(itemSource->Get(itemIndex), columns[index + 1]->GetTextProperty()); - } + date = value; + TypedControlTemplateObject(true)->SetDate(value); } - return L""; } - vint GuiBindableListView::ItemSource::GetDataColumnCount() + const WString& GuiDatePicker::GetDateFormat() { - return dataColumns.Count(); + return dateFormat; } - vint GuiBindableListView::ItemSource::GetDataColumn(vint index) + void GuiDatePicker::SetDateFormat(const WString& value) { - return dataColumns[index]; + dateFormat=value; + UpdateText(); + DateFormatChanged.Execute(GetNotifyEventArguments()); } - vint GuiBindableListView::ItemSource::GetColumnCount() + const Locale& GuiDatePicker::GetDateLocale() { - return columns.Count(); + return dateLocale; } - WString GuiBindableListView::ItemSource::GetColumnText(vint index) + void GuiDatePicker::SetDateLocale(const Locale& value) { - if (index < 0 || index >= columns.Count()) - { - return L""; - } - else + dateLocale=value; + List formats; + dateLocale.GetLongDateFormats(formats); + if(formats.Count()>0) { - return columns[index]->GetText(); + dateFormat=formats[0]; } - } - - // ===================== list::ListViewColumnItemArranger::IColumnItemView ===================== + TypedControlTemplateObject(true)->SetDateLocale(dateLocale); - bool GuiBindableListView::ItemSource::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) - { - if(columnItemViewCallbacks.Contains(value)) - { - return false; - } - else - { - columnItemViewCallbacks.Add(value); - return true; - } + UpdateText(); + DateFormatChanged.Execute(GetNotifyEventArguments()); + DateLocaleChanged.Execute(GetNotifyEventArguments()); } - bool GuiBindableListView::ItemSource::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) + void GuiDatePicker::SetText(const WString& value) { - vint index = columnItemViewCallbacks.IndexOf(value); - if (index == -1) - { - return false; - } - else - { - columnItemViewCallbacks.Remove(value); - return true; - } } - vint GuiBindableListView::ItemSource::GetColumnSize(vint index) - { - if (index < 0 || index >= columns.Count()) - { - return 0; - } - else - { - return columns[index]->GetSize(); - } - } +/*********************************************************************** +GuiDateComboBox +***********************************************************************/ - void GuiBindableListView::ItemSource::SetColumnSize(vint index, vint value) + void GuiDateComboBox::BeforeControlTemplateUninstalled_() { - if (index >= 0 && index < columns.Count()) - { - columns[index]->SetSize(value); - } } - GuiMenu* GuiBindableListView::ItemSource::GetDropdownPopup(vint index) + void GuiDateComboBox::AfterControlTemplateInstalled_(bool initialize) { - if (index < 0 || index >= columns.Count()) - { - return 0; - } - else - { - return columns[index]->GetDropdownPopup(); - } + auto ct = TypedControlTemplateObject(true); + datePicker->SetControlTemplate(ct->GetDatePickerTemplate()); } - ColumnSortingState GuiBindableListView::ItemSource::GetSortingState(vint index) + void GuiDateComboBox::UpdateText() { - if (index < 0 || index >= columns.Count()) - { - return ColumnSortingState::NotSorted; - } - else - { - return columns[index]->GetSortingState(); - } + SetText(datePicker->GetDateLocale().FormatDate(datePicker->GetDateFormat(), selectedDate)); } -/*********************************************************************** -GuiBindableListView -***********************************************************************/ - - GuiBindableListView::GuiBindableListView(theme::ThemeName themeName) - :GuiVirtualListView(themeName, new ItemSource) + void GuiDateComboBox::NotifyUpdateSelectedDate() { - itemSource = dynamic_cast(GetItemProvider()); - - LargeImagePropertyChanged.SetAssociatedComposition(boundsComposition); - SmallImagePropertyChanged.SetAssociatedComposition(boundsComposition); + UpdateText(); + SelectedDateChanged.Execute(GetNotifyEventArguments()); } - GuiBindableListView::~GuiBindableListView() + void GuiDateComboBox::OnSubMenuOpeningChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + datePicker->SetDate(selectedDate); } - list::ListViewDataColumns& GuiBindableListView::GetDataColumns() + void GuiDateComboBox::datePicker_DateLocaleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return itemSource->GetDataColumns(); + UpdateText(); } - list::ListViewColumns& GuiBindableListView::GetColumns() + void GuiDateComboBox::datePicker_DateFormatChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return itemSource->GetColumns(); + UpdateText(); } - Ptr GuiBindableListView::GetItemSource() + void GuiDateComboBox::datePicker_DateSelected(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return itemSource->GetItemSource(); + selectedDate=datePicker->GetDate(); + GetSubMenu()->Hide(); + NotifyUpdateSelectedDate(); } - void GuiBindableListView::SetItemSource(Ptr _itemSource) + GuiDateComboBox::GuiDateComboBox(theme::ThemeName themeName) + :GuiComboBoxBase(themeName) { - itemSource->SetItemSource(_itemSource); + SelectedDateChanged.SetAssociatedComposition(GetBoundsComposition()); + + datePicker = new GuiDatePicker(theme::ThemeName::DatePicker, false); + datePicker->DateSelected.AttachMethod(this, &GuiDateComboBox::datePicker_DateSelected); + datePicker->DateLocaleChanged.AttachMethod(this, &GuiDateComboBox::datePicker_DateLocaleChanged); + datePicker->DateFormatChanged.AttachMethod(this, &GuiDateComboBox::datePicker_DateFormatChanged); + datePicker->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + + GetSubMenu()->GetContainerComposition()->AddChild(datePicker->GetBoundsComposition()); + GetSubMenu()->SetHideOnDeactivateAltHost(false); + + selectedDate=datePicker->GetDate(); + SubMenuOpeningChanged.AttachMethod(this, &GuiDateComboBox::OnSubMenuOpeningChanged); + SetFont(GetFont()); + SetText(datePicker->GetText()); } - ItemProperty> GuiBindableListView::GetLargeImageProperty() + GuiDateComboBox::~GuiDateComboBox() { - return itemSource->largeImageProperty; } - void GuiBindableListView::SetLargeImageProperty(const ItemProperty>& value) + void GuiDateComboBox::SetFont(const Nullable& value) { - if (itemSource->largeImageProperty != value) - { - itemSource->largeImageProperty = value; - itemSource->UpdateBindingProperties(); - LargeImagePropertyChanged.Execute(GetNotifyEventArguments()); - } + GuiComboBoxBase::SetFont(value); + datePicker->SetFont(value); } - ItemProperty> GuiBindableListView::GetSmallImageProperty() + const DateTime& GuiDateComboBox::GetSelectedDate() { - return itemSource->smallImageProperty; + return selectedDate; } - void GuiBindableListView::SetSmallImageProperty(const ItemProperty>& value) + void GuiDateComboBox::SetSelectedDate(const DateTime& value) { - if (itemSource->smallImageProperty != value) - { - itemSource->smallImageProperty = value; - itemSource->UpdateBindingProperties(); - SmallImagePropertyChanged.Execute(GetNotifyEventArguments()); - } + selectedDate=value; + NotifyUpdateSelectedDate(); } - description::Value GuiBindableListView::GetSelectedItem() + GuiDatePicker* GuiDateComboBox::GetDatePicker() { - vint index = GetSelectedItemIndex(); - if (index == -1) return Value(); - return itemSource->Get(index); + return datePicker; } + } + } +} /*********************************************************************** -GuiBindableTreeView::ItemSourceNode +.\CONTROLS\GUIDIALOGS.CPP ***********************************************************************/ - Ptr GuiBindableTreeView::ItemSourceNode::PrepareValueList(const description::Value& inputItemSource) - { - if (auto value = ReadProperty(inputItemSource, rootProvider->childrenProperty)) - { - if (auto ol = value.Cast()) - { - return ol; - } - else if (auto rl = value.Cast()) - { - return rl; - } - else - { - return IValueList::Create(GetLazyList(value)); - } - } - else - { - return IValueList::Create(); - } - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace collections; + using namespace reflection::description; - void GuiBindableTreeView::ItemSourceNode::PrepareChildren(Ptr newValueList) +/*********************************************************************** +GuiDialogBase +***********************************************************************/ + + GuiWindow* GuiDialogBase::GetHostWindow() { - if (!childrenVirtualList) + if (rootObject) { - childrenVirtualList = newValueList; - if (auto ol = childrenVirtualList.Cast()) + if (auto control = dynamic_cast(rootObject)) { - itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) + if (auto host = control->GetRelatedControlHost()) { - callback->OnBeforeItemModified(this, start, oldCount, newCount); - children.RemoveRange(start, oldCount); - for (vint i = 0; i < newCount; i++) - { - Value value = childrenVirtualList->Get(start + i); - auto node = new ItemSourceNode(value, this); - children.Insert(start + i, node); - } - callback->OnAfterItemModified(this, start, oldCount, newCount); - }); + return dynamic_cast(host); + } } - - vint count = childrenVirtualList->GetCount(); - for (vint i = 0; i < count; i++) + else if (auto composition = dynamic_cast(rootObject)) { - Value value = childrenVirtualList->Get(i); - auto node = new ItemSourceNode(value, this); - children.Add(node); + if (auto host = composition->GetRelatedControlHost()) + { + return dynamic_cast(host); + } } } + return nullptr; } - void GuiBindableTreeView::ItemSourceNode::UnprepareChildren() + GuiDialogBase::GuiDialogBase() { - if (itemChangedEventHandler) - { - auto ol = childrenVirtualList.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - itemChangedEventHandler = nullptr; - } - childrenVirtualList = nullptr; - for (auto node : children) - { - node->UnprepareChildren(); - } - children.Clear(); } - GuiBindableTreeView::ItemSourceNode::ItemSourceNode(const description::Value& _itemSource, ItemSourceNode* _parent) - :itemSource(_itemSource) - , rootProvider(_parent->rootProvider) - , parent(_parent) - , callback(_parent->callback) + GuiDialogBase::~GuiDialogBase() { } - GuiBindableTreeView::ItemSourceNode::ItemSourceNode(ItemSource* _rootProvider) - :rootProvider(_rootProvider) - , parent(nullptr) - , callback(_rootProvider) + void GuiDialogBase::Attach(GuiInstanceRootObject* _rootObject) { + rootObject = _rootObject; } - GuiBindableTreeView::ItemSourceNode::~ItemSourceNode() + void GuiDialogBase::Detach(GuiInstanceRootObject* _rootObject) { - if (itemChangedEventHandler) - { - auto ol = childrenVirtualList.Cast(); - ol->ItemChanged.Remove(itemChangedEventHandler); - } + rootObject = nullptr; } - description::Value GuiBindableTreeView::ItemSourceNode::GetItemSource() +/*********************************************************************** +GuiMessageDialog +***********************************************************************/ + + GuiMessageDialog::GuiMessageDialog() { - return itemSource; } - void GuiBindableTreeView::ItemSourceNode::SetItemSource(const description::Value& _itemSource) + GuiMessageDialog::~GuiMessageDialog() { - auto newVirtualList = PrepareValueList(_itemSource); - vint oldCount = childrenVirtualList ? childrenVirtualList->GetCount() : 0; - vint newCount = newVirtualList->GetCount(); + } - callback->OnBeforeItemModified(this, 0, oldCount, newCount); - UnprepareChildren(); - itemSource = _itemSource; - PrepareChildren(newVirtualList); - callback->OnAfterItemModified(this, 0, oldCount, newCount); + INativeDialogService::MessageBoxButtonsInput GuiMessageDialog::GetInput() + { + return input; } - bool GuiBindableTreeView::ItemSourceNode::GetExpanding() + void GuiMessageDialog::SetInput(INativeDialogService::MessageBoxButtonsInput value) { - return this == rootProvider->rootNode.Obj() ? true : expanding; + input = value; } - void GuiBindableTreeView::ItemSourceNode::SetExpanding(bool value) + INativeDialogService::MessageBoxDefaultButton GuiMessageDialog::GetDefaultButton() { - if (this != rootProvider->rootNode.Obj() && expanding != value) - { - expanding = value; - if (expanding) - { - callback->OnItemExpanded(this); - } - else - { - callback->OnItemCollapsed(this); - } - } + return defaultButton; } - vint GuiBindableTreeView::ItemSourceNode::CalculateTotalVisibleNodes() + void GuiMessageDialog::SetDefaultButton(INativeDialogService::MessageBoxDefaultButton value) { - if (!GetExpanding()) - { - return 1; - } + defaultButton = value; + } - if (!childrenVirtualList) - { - PrepareChildren(PrepareValueList(itemSource)); - } - vint count = 1; - for (auto child : children) - { - count += child->CalculateTotalVisibleNodes(); - } - return count; + INativeDialogService::MessageBoxIcons GuiMessageDialog::GetIcon() + { + return icon; } - vint GuiBindableTreeView::ItemSourceNode::GetChildCount() + void GuiMessageDialog::SetIcon(INativeDialogService::MessageBoxIcons value) { - if (!childrenVirtualList) - { - PrepareChildren(PrepareValueList(itemSource)); - } - return children.Count(); + icon = value; } - Ptr GuiBindableTreeView::ItemSourceNode::GetParent() + INativeDialogService::MessageBoxModalOptions GuiMessageDialog::GetModalOption() { - return parent; + return modalOption; } - Ptr GuiBindableTreeView::ItemSourceNode::GetChild(vint index) + void GuiMessageDialog::SetModalOption(INativeDialogService::MessageBoxModalOptions value) { - if (!childrenVirtualList) - { - PrepareChildren(PrepareValueList(itemSource)); - } - if (0 <= index && index < children.Count()) - { - return children[index]; - } - return nullptr; + modalOption = value; } -/*********************************************************************** -GuiBindableTreeView::ItemSource -***********************************************************************/ + const WString& GuiMessageDialog::GetText() + { + return text; + } - GuiBindableTreeView::ItemSource::ItemSource() + void GuiMessageDialog::SetText(const WString& value) { - rootNode = new ItemSourceNode(this); + text = value; } - GuiBindableTreeView::ItemSource::~ItemSource() + const WString& GuiMessageDialog::GetTitle() { + return title; } - description::Value GuiBindableTreeView::ItemSource::GetItemSource() + void GuiMessageDialog::SetTitle(const WString& value) { - return rootNode->GetItemSource(); + title = value; } - void GuiBindableTreeView::ItemSource::SetItemSource(const description::Value& _itemSource) + INativeDialogService::MessageBoxButtonsOutput GuiMessageDialog::ShowDialog() { - rootNode->SetItemSource(_itemSource); + auto service = GetCurrentController()->DialogService(); + return service->ShowMessageBox(GetHostWindow()->GetNativeWindow(), text, title, input, defaultButton, icon, modalOption); } - void GuiBindableTreeView::ItemSource::UpdateBindingProperties(bool updateChildrenProperty) +/*********************************************************************** +GuiColorDialog +***********************************************************************/ + + GuiColorDialog::GuiColorDialog() { - vint oldCount = rootNode->GetChildCount(); - if (updateChildrenProperty) + for (vint i = 0; i < 16; i++) { - rootNode->UnprepareChildren(); + customColors.Add(Color()); } - vint newCount = rootNode->GetChildCount(); - OnBeforeItemModified(rootNode.Obj(), 0, oldCount, newCount); - OnAfterItemModified(rootNode.Obj(), 0, oldCount, newCount); } - // ===================== tree::INodeRootProvider ===================== + GuiColorDialog::~GuiColorDialog() + { + } - Ptr GuiBindableTreeView::ItemSource::GetRootNode() + bool GuiColorDialog::GetEnabledCustomColor() { - return rootNode; + return enabledCustomColor; } - WString GuiBindableTreeView::ItemSource::GetTextValue(tree::INodeProvider* node) + void GuiColorDialog::SetEnabledCustomColor(bool value) { - return ReadProperty(GetBindingValue(node), textProperty); + enabledCustomColor = value; } - description::Value GuiBindableTreeView::ItemSource::GetBindingValue(tree::INodeProvider* node) + bool GuiColorDialog::GetOpenedCustomColor() { - if (auto itemSourceNode = dynamic_cast(node)) - { - return itemSourceNode->GetItemSource(); - } - return Value(); + return openedCustomColor; } - IDescriptable* GuiBindableTreeView::ItemSource::RequestView(const WString& identifier) + void GuiColorDialog::SetOpenedCustomColor(bool value) { - if(identifier==ITreeViewItemView::Identifier) - { - return (ITreeViewItemView*)this; - } - else - { - return 0; - } + openedCustomColor = value; } - // ===================== tree::ITreeViewItemView ===================== + Color GuiColorDialog::GetSelectedColor() + { + return selectedColor; + } - Ptr GuiBindableTreeView::ItemSource::GetNodeImage(tree::INodeProvider* node) + void GuiColorDialog::SetSelectedColor(Color value) { - if (auto itemSourceNode = dynamic_cast(node)) + if (selectedColor != value) { - return ReadProperty(itemSourceNode->GetItemSource(), imageProperty); + selectedColor = value; + SelectedColorChanged.Execute(GuiEventArgs()); } - return nullptr; } -/*********************************************************************** -GuiBindableTreeView -***********************************************************************/ - - GuiBindableTreeView::GuiBindableTreeView(theme::ThemeName themeName) - :GuiVirtualTreeView(themeName, new ItemSource) + collections::List& GuiColorDialog::GetCustomColors() { - itemSource = dynamic_cast(GetNodeRootProvider()); - - TextPropertyChanged.SetAssociatedComposition(boundsComposition); - ImagePropertyChanged.SetAssociatedComposition(boundsComposition); - ChildrenPropertyChanged.SetAssociatedComposition(boundsComposition); + return customColors; } - GuiBindableTreeView::~GuiBindableTreeView() + bool GuiColorDialog::ShowDialog() { + Array colors; + CopyFrom(colors, customColors); + colors.Resize(16); + + INativeDialogService::ColorDialogCustomColorOptions options = + !enabledCustomColor ? INativeDialogService::CustomColorDisabled : + !openedCustomColor ? INativeDialogService::CustomColorEnabled : + INativeDialogService::CustomColorOpened; + + auto service = GetCurrentController()->DialogService(); + if (!service->ShowColorDialog(GetHostWindow()->GetNativeWindow(), selectedColor, showSelection, options, &colors[0])) + { + return false; + } + + CopyFrom(customColors, colors); + SelectedColorChanged.Execute(GuiEventArgs()); + return true; } - description::Value GuiBindableTreeView::GetItemSource() +/*********************************************************************** +GuiFontDialog +***********************************************************************/ + + GuiFontDialog::GuiFontDialog() { - return itemSource->GetItemSource(); } - void GuiBindableTreeView::SetItemSource(description::Value _itemSource) + GuiFontDialog::~GuiFontDialog() { - itemSource->SetItemSource(_itemSource); } - ItemProperty GuiBindableTreeView::GetTextProperty() + const FontProperties& GuiFontDialog::GetSelectedFont() { - return itemSource->textProperty; + return selectedFont; } - void GuiBindableTreeView::SetTextProperty(const ItemProperty& value) + void GuiFontDialog::SetSelectedFont(const FontProperties& value) { - if (itemSource->textProperty != value) + if (selectedFont != value) { - itemSource->textProperty = value; - itemSource->UpdateBindingProperties(false); - TextPropertyChanged.Execute(GetNotifyEventArguments()); + selectedFont = value; + SelectedFontChanged.Execute(GuiEventArgs()); } } - ItemProperty> GuiBindableTreeView::GetImageProperty() + Color GuiFontDialog::GetSelectedColor() { - return itemSource->imageProperty; + return selectedColor; } - void GuiBindableTreeView::SetImageProperty(const ItemProperty>& value) + void GuiFontDialog::SetSelectedColor(Color value) { - if (itemSource->imageProperty != value) + if (selectedColor != value) { - itemSource->imageProperty = value; - itemSource->UpdateBindingProperties(false); - ImagePropertyChanged.Execute(GetNotifyEventArguments()); + selectedColor = value; + SelectedColorChanged.Execute(GuiEventArgs()); } } - ItemProperty> GuiBindableTreeView::GetChildrenProperty() + bool GuiFontDialog::GetShowSelection() { - return itemSource->childrenProperty; + return showSelection; } - void GuiBindableTreeView::SetChildrenProperty(const ItemProperty>& value) + void GuiFontDialog::SetShowSelection(bool value) { - if (itemSource->childrenProperty != value) - { - itemSource->childrenProperty = value; - itemSource->UpdateBindingProperties(true); - ChildrenPropertyChanged.Execute(GetNotifyEventArguments()); - } + showSelection = value; } - description::Value GuiBindableTreeView::GetSelectedItem() + bool GuiFontDialog::GetShowEffect() { - vint index = GetSelectedItemIndex(); - if (index == -1) return Value(); + return showEffect; + } - Value result; - if (auto node = nodeItemView->RequestNode(index)) - { - if (auto itemSourceNode = node.Cast()) - { - result = itemSourceNode->GetItemSource(); - } - } - return result; + void GuiFontDialog::SetShowEffect(bool value) + { + showEffect = value; } - } - } -} + bool GuiFontDialog::GetForceFontExist() + { + return forceFontExist; + } -/*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUICOMBOCONTROLS.CPP -***********************************************************************/ + void GuiFontDialog::SetForceFontExist(bool value) + { + forceFontExist = value; + } -namespace vl -{ - namespace presentation - { - namespace controls - { + bool GuiFontDialog::ShowDialog() + { + auto service = GetCurrentController()->DialogService(); + if (!service->ShowFontDialog(GetHostWindow()->GetNativeWindow(), selectedFont, selectedColor, showSelection, showEffect, forceFontExist)) + { + return false; + } + + SelectedColorChanged.Execute(GuiEventArgs()); + SelectedFontChanged.Execute(GuiEventArgs()); + return true; + } /*********************************************************************** -GuiComboBoxBase +GuiFileDialogBase ***********************************************************************/ - void GuiComboBoxBase::BeforeControlTemplateUninstalled_() - { - } - - void GuiComboBoxBase::AfterControlTemplateInstalled_(bool initialize) + GuiFileDialogBase::GuiFileDialogBase() { } - IGuiMenuService::Direction GuiComboBoxBase::GetSubMenuDirection() + GuiFileDialogBase::~GuiFileDialogBase() { - return IGuiMenuService::Horizontal; } - void GuiComboBoxBase::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + const WString& GuiFileDialogBase::GetFilter() { - Size size=GetPreferredMenuClientSize(); - size.x=boundsComposition->GetBounds().Width(); - SetPreferredMenuClientSize(size); + return filter; } - GuiComboBoxBase::GuiComboBoxBase(theme::ThemeName themeName) - :GuiMenuButton(themeName) + void GuiFileDialogBase::SetFilter(const WString& value) { - CreateSubMenu(); - SetCascadeAction(false); - - boundsComposition->BoundsChanged.AttachMethod(this, &GuiComboBoxBase::OnBoundsChanged); + filter = value; } - GuiComboBoxBase::~GuiComboBoxBase() + vint GuiFileDialogBase::GetFilterIndex() { + return filterIndex; } -/*********************************************************************** -GuiComboBoxListControl -***********************************************************************/ - - void GuiComboBoxListControl::UpdateDisplayFont() + void GuiFileDialogBase::SetFilterIndex(vint value) { - GuiControl::UpdateDisplayFont(); - if (itemStyleController) + if (filterIndex != value) { - itemStyleController->SetFont(GetDisplayFont()); + filterIndex = value; + FilterIndexChanged.Execute(GuiEventArgs()); } - AdoptSubMenuSize(); } - void GuiComboBoxListControl::BeforeControlTemplateUninstalled() + bool GuiFileDialogBase::GetEnabledPreview() { - GuiComboBoxBase::BeforeControlTemplateUninstalled(); + return enabledPreview; } - void GuiComboBoxListControl::AfterControlTemplateInstalled(bool initialize) + void GuiFileDialogBase::SetEnabledPreview(bool value) { - GuiComboBoxBase::AfterControlTemplateInstalled(initialize); - TypedControlTemplateObject(true)->SetTextVisible(!itemStyleProperty); + enabledPreview = value; } - void GuiComboBoxListControl::RemoveStyleController() + WString GuiFileDialogBase::GetTitle() { - if (itemStyleController) - { - SafeDeleteComposition(itemStyleController); - itemStyleController = nullptr; - } + return title; } - void GuiComboBoxListControl::InstallStyleController(vint itemIndex) + void GuiFileDialogBase::SetTitle(const WString& value) { - if (itemStyleProperty) - { - if (itemIndex != -1) - { - auto item = containedListControl->GetItemProvider()->GetBindingValue(itemIndex); - if (!item.IsNull()) - { - if (auto style = itemStyleProperty(item)) - { - itemStyleController = style; - itemStyleController->SetText(GetText()); - itemStyleController->SetFont(GetDisplayFont()); - itemStyleController->SetContext(GetContext()); - itemStyleController->SetVisuallyEnabled(GetVisuallyEnabled()); - itemStyleController->SetAlignmentToParent(Margin(0, 0, 0, 0)); - containerComposition->AddChild(itemStyleController); - } - } - } - } + title = value; } - void GuiComboBoxListControl::DisplaySelectedContent(vint itemIndex) + WString GuiFileDialogBase::GetFileName() { - if (itemIndex == -1) - { - SetText(L""); - } - else - { - WString text = containedListControl->GetItemProvider()->GetTextValue(itemIndex); - SetText(text); - } + return fileName; + } - RemoveStyleController(); - InstallStyleController(itemIndex); - if (selectedIndex != itemIndex) + void GuiFileDialogBase::SetFileName(const WString& value) + { + if (fileName != value) { - selectedIndex = itemIndex; - SelectedIndexChanged.Execute(GetNotifyEventArguments()); + FileNameChanged.Execute(GuiEventArgs()); } } - void GuiComboBoxListControl::AdoptSubMenuSize() + WString GuiFileDialogBase::GetDirectory() { - if (auto subMenu = GetSubMenu()) - { - Size expectedSize(0, GetDisplayFont().size * 20); - Size adoptedSize = containedListControl->GetAdoptedSize(expectedSize); - - Size clientSize = GetPreferredMenuClientSize(); - clientSize.y = adoptedSize.y + subMenu->GetClientSize().y - containedListControl->GetBoundsComposition()->GetBounds().Height(); - SetPreferredMenuClientSize(clientSize); + return directory; + } - if (GetSubMenuOpening()) - { - subMenu->SetClientSize(clientSize); - } - } + void GuiFileDialogBase::SetDirectory(const WString& value) + { + directory = value; } - void GuiComboBoxListControl::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + WString GuiFileDialogBase::GetDefaultExtension() { - if (itemStyleController) - { - itemStyleController->SetText(GetText()); - } + return defaultExtension; } - void GuiComboBoxListControl::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiFileDialogBase::SetDefaultExtension(const WString& value) { - if (itemStyleController) - { - itemStyleController->SetContext(GetContext()); - } - AdoptSubMenuSize(); + defaultExtension = value; } - void GuiComboBoxListControl::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + INativeDialogService::FileDialogOptions GuiFileDialogBase::GetOptions() { - if (itemStyleController) - { - itemStyleController->SetVisuallyEnabled(GetVisuallyEnabled()); - } + return options; } - void GuiComboBoxListControl::OnAfterSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiFileDialogBase::SetOptions(INativeDialogService::FileDialogOptions value) { - containedListControl->SelectItemsByClick(selectedIndex, false, false, true); - containedListControl->EnsureItemVisible(selectedIndex); + options = value; } - void GuiComboBoxListControl::OnListControlAdoptedSizeInvalidated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) +/*********************************************************************** +GuiOpenFileDialog +***********************************************************************/ + + GuiOpenFileDialog::GuiOpenFileDialog() { - AdoptSubMenuSize(); } - void GuiComboBoxListControl::OnListControlBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiOpenFileDialog::~GuiOpenFileDialog() { - auto flag = GetDisposedFlag(); - GetApplication()->InvokeLambdaInMainThread(GetRelatedControlHost(), [=]() - { - if (!flag->IsDisposed()) - { - AdoptSubMenuSize(); - } - }); } - void GuiComboBoxListControl::OnListControlItemMouseDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + collections::List& GuiOpenFileDialog::GetFileNames() { - DisplaySelectedContent(containedListControl->GetSelectedItemIndex()); - GetSubMenu()->Hide(); + return fileNames; } - void GuiComboBoxListControl::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + bool GuiOpenFileDialog::ShowDialog() { - if (!arguments.autoRepeatKeyDown) + fileNames.Clear(); + auto service = GetCurrentController()->DialogService(); + if (!service->ShowFileDialog( + GetHostWindow()->GetNativeWindow(), + fileNames, + filterIndex, + (enabledPreview ? INativeDialogService::FileDialogOpenPreview : INativeDialogService::FileDialogOpen), + title, + fileName, + directory, + defaultExtension, + filter, + options)) { - switch (arguments.code) - { - case VKEY::KEY_RETURN: - DisplaySelectedContent(containedListControl->GetSelectedItemIndex()); - arguments.handled = true; - case VKEY::KEY_ESCAPE: - GetSubMenu()->Hide(); - arguments.handled = true; - break; - default: - containedListControl->SelectItemsByKey(arguments.code, arguments.ctrl, arguments.shift); - } + return false; + } + + if (fileNames.Count() > 0) + { + fileName = fileNames[0]; + FileNameChanged.Execute(GuiEventArgs()); + FilterIndexChanged.Execute(GuiEventArgs()); } + return true; } - void GuiComboBoxListControl::OnAttached(GuiListControl::IItemProvider* provider) +/*********************************************************************** +GuiSaveFileDialog +***********************************************************************/ + + GuiSaveFileDialog::GuiSaveFileDialog() { } - void GuiComboBoxListControl::OnItemModified(vint start, vint count, vint newCount) + GuiSaveFileDialog::~GuiSaveFileDialog() { - if (count == newCount) + } + + bool GuiSaveFileDialog::ShowDialog() + { + List fileNames; + auto service = GetCurrentController()->DialogService(); + if (!service->ShowFileDialog( + GetHostWindow()->GetNativeWindow(), + fileNames, + filterIndex, + (enabledPreview ? INativeDialogService::FileDialogSavePreview : INativeDialogService::FileDialogSave), + title, + fileName, + directory, + defaultExtension, + filter, + options)) { - if (start <= selectedIndex && selectedIndex < start + count) - { - DisplaySelectedContent(selectedIndex); - } + return false; } - else + + if (fileNames.Count() > 0) { - DisplaySelectedContent(-1); + fileName = fileNames[0]; + FileNameChanged.Execute(GuiEventArgs()); + FilterIndexChanged.Execute(GuiEventArgs()); } + return true; } + } + } +} - GuiComboBoxListControl::GuiComboBoxListControl(theme::ThemeName themeName, GuiSelectableListControl* _containedListControl) - :GuiComboBoxBase(themeName) - , containedListControl(_containedListControl) - { - TextChanged.AttachMethod(this, &GuiComboBoxListControl::OnTextChanged); - ContextChanged.AttachMethod(this, &GuiComboBoxListControl::OnContextChanged); - VisuallyEnabledChanged.AttachMethod(this, &GuiComboBoxListControl::OnVisuallyEnabledChanged); - AfterSubMenuOpening.AttachMethod(this, &GuiComboBoxListControl::OnAfterSubMenuOpening); - - containedListControl->GetItemProvider()->AttachCallback(this); - containedListControl->SetMultiSelect(false); - containedListControl->AdoptedSizeInvalidated.AttachMethod(this, &GuiComboBoxListControl::OnListControlAdoptedSizeInvalidated); - containedListControl->ItemLeftButtonDown.AttachMethod(this, &GuiComboBoxListControl::OnListControlItemMouseDown); - containedListControl->ItemRightButtonDown.AttachMethod(this, &GuiComboBoxListControl::OnListControlItemMouseDown); - boundsChangedHandler = containedListControl->GetBoundsComposition()->BoundsChanged.AttachMethod(this, &GuiComboBoxListControl::OnListControlBoundsChanged); - boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiComboBoxListControl::OnKeyDown); +/*********************************************************************** +.\CONTROLS\GUISCROLLCONTROLS.CPP +***********************************************************************/ - auto itemProvider = containedListControl->GetItemProvider(); +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace collections; + using namespace reflection::description; - SelectedIndexChanged.SetAssociatedComposition(boundsComposition); +/*********************************************************************** +GuiScroll::CommandExecutor +***********************************************************************/ - containedListControl->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - GetSubMenu()->GetContainerComposition()->AddChild(containedListControl->GetBoundsComposition()); - SetFont(GetFont()); + GuiScroll::CommandExecutor::CommandExecutor(GuiScroll* _scroll) + :scroll(_scroll) + { } - GuiComboBoxListControl::~GuiComboBoxListControl() + GuiScroll::CommandExecutor::~CommandExecutor() { - containedListControl->GetItemProvider()->DetachCallback(this); - containedListControl->GetBoundsComposition()->BoundsChanged.Detach(boundsChangedHandler); - boundsChangedHandler = nullptr; } - GuiSelectableListControl* GuiComboBoxListControl::GetContainedListControl() + void GuiScroll::CommandExecutor::SmallDecrease() { - return containedListControl; + scroll->SetPosition(scroll->GetPosition()-scroll->GetSmallMove()); } - GuiComboBoxListControl::ItemStyleProperty GuiComboBoxListControl::GetItemTemplate() + void GuiScroll::CommandExecutor::SmallIncrease() { - return itemStyleProperty; + scroll->SetPosition(scroll->GetPosition()+scroll->GetSmallMove()); } - void GuiComboBoxListControl::SetItemTemplate(ItemStyleProperty value) + void GuiScroll::CommandExecutor::BigDecrease() { - RemoveStyleController(); - itemStyleProperty = value; - TypedControlTemplateObject(true)->SetTextVisible(!itemStyleProperty); - InstallStyleController(selectedIndex); - ItemTemplateChanged.Execute(GetNotifyEventArguments()); + scroll->SetPosition(scroll->GetPosition()-scroll->GetBigMove()); } - vint GuiComboBoxListControl::GetSelectedIndex() + void GuiScroll::CommandExecutor::BigIncrease() { - return selectedIndex; + scroll->SetPosition(scroll->GetPosition()+scroll->GetBigMove()); } - - void GuiComboBoxListControl::SetSelectedIndex(vint value) + + void GuiScroll::CommandExecutor::SetTotalSize(vint value) { - if (selectedIndex != value) - { - if (0 <= value && value < containedListControl->GetItemProvider()->Count()) - { - DisplaySelectedContent(value); - } - } - GetSubMenu()->Hide(); + scroll->SetTotalSize(value); } - description::Value GuiComboBoxListControl::GetSelectedItem() + void GuiScroll::CommandExecutor::SetPageSize(vint value) { - if (selectedIndex != -1) - { - return containedListControl->GetItemProvider()->GetBindingValue(selectedIndex); - } - return description::Value(); + scroll->SetPageSize(value); } - GuiListControl::IItemProvider* GuiComboBoxListControl::GetItemProvider() + void GuiScroll::CommandExecutor::SetPosition(vint value) { - return containedListControl->GetItemProvider(); + scroll->SetPosition(value); } - } - } -} - /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUIDATAGRIDCONTROLS.CPP +GuiScroll ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace controls - { - namespace list + void GuiScroll::OnActiveAlt() { - using namespace compositions; - using namespace collections; - using namespace description; - using namespace templates; - - const wchar_t* const IDataGridView::Identifier = L"vl::presentation::controls::list::IDataGridView"; + if (autoFocus) + { + GuiControl::OnActiveAlt(); + } + } -/*********************************************************************** -DefaultDataGridItemTemplate -***********************************************************************/ + bool GuiScroll::IsTabAvailable() + { + return autoFocus && GuiControl::IsTabAvailable(); + } - IDataVisualizerFactory* DefaultDataGridItemTemplate::GetDataVisualizerFactory(vint row, vint column) + void GuiScroll::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (arguments.eventSource == focusableComposition) { - if (auto dataGrid = dynamic_cast(listControl)) + switch (arguments.code) { - if (auto factory = dataGrid->dataGridView->GetCellDataVisualizerFactory(row, column)) - { - return factory; - } - - if (column == 0) - { - return dataGrid->defaultMainColumnVisualizerFactory.Obj(); - } - else - { - return dataGrid->defaultSubColumnVisualizerFactory.Obj(); - } - + case VKEY::KEY_HOME: + SetPosition(GetMinPosition()); + arguments.handled = true; + break; + case VKEY::KEY_END: + SetPosition(GetMaxPosition()); + arguments.handled = true; + break; + case VKEY::KEY_PRIOR: + commandExecutor->BigDecrease(); + arguments.handled = true; + break; + case VKEY::KEY_NEXT: + commandExecutor->BigIncrease(); + arguments.handled = true; + break; + case VKEY::KEY_LEFT: + case VKEY::KEY_UP: + commandExecutor->SmallDecrease(); + arguments.handled = true; + break; + case VKEY::KEY_RIGHT: + case VKEY::KEY_DOWN: + commandExecutor->SmallIncrease(); + arguments.handled = true; + break; + default:; } - - return nullptr; } + } - IDataEditorFactory* DefaultDataGridItemTemplate::GetDataEditorFactory(vint row, vint column) + void GuiScroll::OnMouseDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if (autoFocus) { - if (auto dataGrid = dynamic_cast(listControl)) - { - return dataGrid->dataGridView->GetCellDataEditorFactory(row, column); - } - return nullptr; + SetFocused(); } + } - vint DefaultDataGridItemTemplate::GetCellColumnIndex(compositions::GuiGraphicsComposition* composition) - { - for (vint i = 0; i < textTable->GetColumns(); i++) - { - auto cell = textTable->GetSitedCell(0, i); - if (composition == cell) - { - return i; - } - } - return -1; - } + void GuiScroll::BeforeControlTemplateUninstalled_() + { + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - bool DefaultDataGridItemTemplate::IsInEditor(GuiVirtualDataGrid* dataGrid, compositions::GuiMouseEventArgs& arguments) - { - if (!dataGrid->currentEditor) return false; - auto editorComposition = dataGrid->currentEditor->GetTemplate(); - auto currentComposition = arguments.eventSource; + ct->SetCommands(nullptr); + } - while (currentComposition) - { - if (currentComposition == editorComposition) - { - return true; - } - else if (currentComposition == this) - { - break; - } - else - { - currentComposition = currentComposition->GetParent(); - } - } + void GuiScroll::AfterControlTemplateInstalled_(bool initialize) + { + auto ct = TypedControlTemplateObject(true); + ct->SetCommands(commandExecutor.Obj()); + ct->SetPageSize(pageSize); + ct->SetTotalSize(totalSize); + ct->SetPosition(position); + } - return false; - } + GuiScroll::GuiScroll(theme::ThemeName themeName) + :GuiControl(themeName) + { + SetFocusableComposition(boundsComposition); - void DefaultDataGridItemTemplate::OnCellButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + TotalSizeChanged.SetAssociatedComposition(boundsComposition); + PageSizeChanged.SetAssociatedComposition(boundsComposition); + PositionChanged.SetAssociatedComposition(boundsComposition); + SmallMoveChanged.SetAssociatedComposition(boundsComposition); + BigMoveChanged.SetAssociatedComposition(boundsComposition); + + commandExecutor = Ptr(new CommandExecutor(this)); + boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiScroll::OnKeyDown); + boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiScroll::OnMouseDown); + boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiScroll::OnMouseDown); + } + + GuiScroll::~GuiScroll() + { + } + + vint GuiScroll::GetTotalSize() + { + return totalSize; + } + + void GuiScroll::SetTotalSize(vint value) + { + if(totalSize!=value && 0(listControl)) + totalSize=value; + if(pageSize>totalSize) { - if (IsInEditor(dataGrid, arguments)) - { - arguments.handled = true; - } + SetPageSize(totalSize); + } + if(position>GetMaxPosition()) + { + SetPosition(GetMaxPosition()); } + TypedControlTemplateObject(true)->SetTotalSize(totalSize); + TotalSizeChanged.Execute(GetNotifyEventArguments()); } + } - void DefaultDataGridItemTemplate::OnCellLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + vint GuiScroll::GetPageSize() + { + return pageSize; + } + + void GuiScroll::SetPageSize(vint value) + { + if(pageSize!=value && 0<=value && value<=totalSize) { - if (auto dataGrid = dynamic_cast(listControl)) + pageSize=value; + if(position>GetMaxPosition()) { - if (IsInEditor(dataGrid, arguments)) - { - arguments.handled = true; - } - else if (dataGrid->GetVisuallyEnabled()) - { - vint index = GetCellColumnIndex(sender); - if (index != -1) - { - vint currentRow = GetIndex(); - dataGrid->SelectCell({ currentRow,index }, true); - } - } + SetPosition(GetMaxPosition()); } + TypedControlTemplateObject(true)->SetPageSize(pageSize); + PageSizeChanged.Execute(GetNotifyEventArguments()); } + } - void DefaultDataGridItemTemplate::OnCellRightButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + vint GuiScroll::GetPosition() + { + return position; + } + + void GuiScroll::SetPosition(vint value) + { + vint min=GetMinPosition(); + vint max=GetMaxPosition(); + vint newPosition= + valuemax?max: + value; + if(position!=newPosition) { - if (auto dataGrid = dynamic_cast(listControl)) - { - if (IsInEditor(dataGrid, arguments)) - { - arguments.handled = true; - } - else if (dataGrid->GetVisuallyEnabled()) - { - vint index = GetCellColumnIndex(sender); - if (index != -1) - { - vint currentRow = GetIndex(); - dataGrid->SelectCell({ currentRow,index }, false); - } - } - } + position=newPosition; + TypedControlTemplateObject(true)->SetPosition(position); + PositionChanged.Execute(GetNotifyEventArguments()); } + } - void DefaultDataGridItemTemplate::OnColumnChanged() + vint GuiScroll::GetSmallMove() + { + return smallMove; + } + + void GuiScroll::SetSmallMove(vint value) + { + if(value>0 && smallMove!=value) { - UpdateSubItemSize(); + smallMove=value; + SmallMoveChanged.Execute(GetNotifyEventArguments()); } + } - void DefaultDataGridItemTemplate::OnInitialize() + vint GuiScroll::GetBigMove() + { + return bigMove; + } + + void GuiScroll::SetBigMove(vint value) + { + if(value>0 && bigMove!=value) { - DefaultListViewItemTemplate::OnInitialize(); - { - textTable = new GuiTableComposition; - textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - textTable->SetRowsAndColumns(1, 1); - textTable->SetRowOption(0, GuiCellOption::MinSizeOption()); - textTable->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); - AddChild(textTable); - } + bigMove=value; + BigMoveChanged.Execute(GetNotifyEventArguments()); + } + } - if (auto dataGrid = dynamic_cast(listControl)) - { - vint columnCount = dataGrid->listViewItemView->GetColumnCount(); - vint itemIndex = GetIndex(); + vint GuiScroll::GetMinPosition() + { + return 0; + } - dataVisualizers.Resize(columnCount); - for (vint i = 0; i < dataVisualizers.Count(); i++) - { - auto factory = GetDataVisualizerFactory(itemIndex, i); - dataVisualizers[i] = factory->CreateVisualizer(dataGrid); - } + vint GuiScroll::GetMaxPosition() + { + return totalSize-pageSize; + } - textTable->SetRowsAndColumns(1, columnCount); - for (vint i = 0; i < columnCount; i++) - { - auto cell = new GuiCellComposition; - textTable->AddChild(cell); - cell->SetSite(0, i, 1, 1); - cell->GetEventReceiver()->leftButtonDown.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellButtonDown); - cell->GetEventReceiver()->rightButtonDown.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellButtonDown); - cell->GetEventReceiver()->leftButtonUp.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellLeftButtonUp); - cell->GetEventReceiver()->rightButtonUp.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellRightButtonUp); + bool GuiScroll::GetAutoFocus() + { + return autoFocus; + } - auto composition = dataVisualizers[i]->GetTemplate(); - composition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - cell->AddChild(composition); - } + void GuiScroll::SetAutoFocus(bool value) + { + autoFocus = value; + } + } + } +} - for (vint i = 0; i < dataVisualizers.Count(); i++) - { - dataVisualizers[i]->BeforeVisualizeCell(dataGrid->GetItemProvider(), itemIndex, i); - } +/*********************************************************************** +.\CONTROLS\LISTCONTROLPACKAGE\GUIBINDABLEDATAGRID.CPP +***********************************************************************/ - GridPos selectedCell = dataGrid->GetSelectedCell(); - if (selectedCell.row == itemIndex) - { - NotifySelectCell(selectedCell.column); - } - else - { - NotifySelectCell(-1); - } - UpdateSubItemSize(); - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; + using namespace description; + using namespace templates; - SelectedChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnSelectedChanged); - FontChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnFontChanged); - ContextChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnContextChanged); - VisuallyEnabledChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnVisuallyEnabledChanged); + namespace list + { - SelectedChanged.Execute(compositions::GuiEventArgs(this)); - FontChanged.Execute(compositions::GuiEventArgs(this)); - ContextChanged.Execute(compositions::GuiEventArgs(this)); - VisuallyEnabledChanged.Execute(compositions::GuiEventArgs(this)); - } +/*********************************************************************** +DataFilterBase +***********************************************************************/ - void DefaultDataGridItemTemplate::OnSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataFilterBase::InvokeOnProcessorChanged() { - if (!GetSelected()) + if (callback) { - NotifySelectCell(-1); + callback->OnProcessorChanged(); } } - void DefaultDataGridItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + DataFilterBase::DataFilterBase() { - for (auto visualizer : dataVisualizers) - { - visualizer->GetTemplate()->SetFont(GetFont()); - } - if (currentEditor) - { - currentEditor->GetTemplate()->SetFont(GetFont()); - } } - void DefaultDataGridItemTemplate::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataFilterBase::SetCallback(IDataProcessorCallback* value) { - for (auto visualizer : dataVisualizers) - { - visualizer->GetTemplate()->SetContext(GetContext()); - } - if (currentEditor) - { - currentEditor->GetTemplate()->SetContext(GetContext()); - } + callback = value; } - void DefaultDataGridItemTemplate::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) +/*********************************************************************** +DataMultipleFilter +***********************************************************************/ + + DataMultipleFilter::DataMultipleFilter() { - for (auto visualizer : dataVisualizers) - { - visualizer->GetTemplate()->SetVisuallyEnabled(GetVisuallyEnabled()); - } - if (currentEditor) - { - currentEditor->GetTemplate()->SetVisuallyEnabled(GetVisuallyEnabled()); - } } - DefaultDataGridItemTemplate::DefaultDataGridItemTemplate() + bool DataMultipleFilter::AddSubFilter(Ptr value) { + if (!value) return false; + if (filters.Contains(value.Obj())) return false; + filters.Add(value); + value->SetCallback(callback); + InvokeOnProcessorChanged(); + return true; } - DefaultDataGridItemTemplate::~DefaultDataGridItemTemplate() + bool DataMultipleFilter::RemoveSubFilter(Ptr value) { - for (auto visualizer : dataVisualizers) - { - visualizer->NotifyDeletedTemplate(); - } - if (currentEditor) - { - currentEditor->NotifyDeletedTemplate(); - } + if (!value) return false; + if (!filters.Contains(value.Obj())) return false; + value->SetCallback(nullptr); + filters.Remove(value.Obj()); + InvokeOnProcessorChanged(); + return true; } - void DefaultDataGridItemTemplate::UpdateSubItemSize() + void DataMultipleFilter::SetCallback(IDataProcessorCallback* value) { - if (auto dataGrid = dynamic_cast(listControl)) + DataFilterBase::SetCallback(value); + for (vint i = 0; i < filters.Count(); i++) { - vint columnCount = dataGrid->listViewItemView->GetColumnCount(); - if (columnCount > textTable->GetColumns()) - { - columnCount = textTable->GetColumns(); - } - for (vint i = 0; i < columnCount; i++) - { - textTable->SetColumnOption(i, GuiCellOption::AbsoluteOption(dataGrid->columnItemView->GetColumnSize(i))); - } - textTable->UpdateCellBounds(); + filters[i]->SetCallback(value); } } - bool DefaultDataGridItemTemplate::IsEditorOpened() - { - return currentEditor != nullptr; - } +/*********************************************************************** +DataAndFilter +***********************************************************************/ - void DefaultDataGridItemTemplate::NotifyOpenEditor(vint column, IDataEditor* editor) + DataAndFilter::DataAndFilter() { - currentEditor = editor; - if (currentEditor) - { - auto cell = textTable->GetSitedCell(0, column); - auto* editorBounds = currentEditor->GetTemplate(); - editorBounds->SetFont(GetFont()); - editorBounds->SetContext(GetContext()); - if (editorBounds->GetParent() && editorBounds->GetParent() != cell) - { - editorBounds->GetParent()->RemoveChild(editorBounds); - } - editorBounds->SetAlignmentToParent(Margin(0, 0, 0, 0)); - cell->AddChild(editorBounds); - if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) - { - focusControl->SetFocus(); - } - dataVisualizers[column]->GetTemplate()->SetVisible(false); - } } - void DefaultDataGridItemTemplate::NotifyCloseEditor() + bool DataAndFilter::Filter(const description::Value& row) { - if (currentEditor) + return From(filters) + .All([row](Ptr filter) { - for (vint i = 0; i < dataVisualizers.Count(); i++) - { - dataVisualizers[i]->GetTemplate()->SetVisible(true); - } - auto composition = currentEditor->GetTemplate(); - if (composition->GetParent()) - { - composition->GetParent()->RemoveChild(composition); - } - currentEditor = nullptr; - } + return filter->Filter(row); + }); } - void DefaultDataGridItemTemplate::NotifySelectCell(vint column) +/*********************************************************************** +DataOrFilter +***********************************************************************/ + + DataOrFilter::DataOrFilter() { - for (vint i = 0; i < dataVisualizers.Count(); i++) - { - dataVisualizers[i]->SetSelected(i == column); - } } - void DefaultDataGridItemTemplate::NotifyCellEdited() + bool DataOrFilter::Filter(const description::Value& row) { - for (vint i = 0; i < dataVisualizers.Count(); i++) + return From(filters) + .Any([row](Ptr filter) { - dataVisualizers[i]->BeforeVisualizeCell(listControl->GetItemProvider(), GetIndex(), i); - } + return filter->Filter(row); + }); } - } - + /*********************************************************************** -GuiVirtualDataGrid (Editor) +DataNotFilter ***********************************************************************/ - using namespace list; - - compositions::IGuiAltActionHost* GuiVirtualDataGrid::GetActivatingAltHost() - { - if (currentEditor) + DataNotFilter::DataNotFilter() { - if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) - { - if (auto action = focusControl->QueryTypedService()) - { - if (action->IsAltAvailable() && action->IsAltEnabled()) - { - SetAltComposition(currentEditor->GetTemplate()); - SetAltControl(focusControl, true); - return this; - } - } - } } - SetAltComposition(nullptr); - SetAltControl(nullptr, false); - return GuiVirtualListView::GetActivatingAltHost(); - } - void GuiVirtualDataGrid::OnItemModified(vint start, vint count, vint newCount) - { - GuiVirtualListView::OnItemModified(start, count, newCount); - if(!GetItemProvider()->IsEditing()) + bool DataNotFilter::SetSubFilter(Ptr value) { - StopEdit(); + if (filter == value) return false; + if (filter) filter->SetCallback(nullptr); + filter = value; + if (filter) filter->SetCallback(callback); + InvokeOnProcessorChanged(); + return true; } - } - void GuiVirtualDataGrid::OnStyleInstalled(vint index, ItemStyle* style) - { - GuiVirtualListView::OnStyleInstalled(index, style); - if (auto itemStyle = dynamic_cast(style)) + void DataNotFilter::SetCallback(IDataProcessorCallback* value) { - if (selectedCell.row == index && selectedCell.column != -1) - { - itemStyle->NotifySelectCell(selectedCell.column); - } + DataFilterBase::SetCallback(value); + if (filter) filter->SetCallback(value); } - } - void GuiVirtualDataGrid::OnStyleUninstalled(ItemStyle* style) - { - GuiVirtualListView::OnStyleUninstalled(style); - if (auto itemStyle = dynamic_cast(style)) + bool DataNotFilter::Filter(const description::Value& row) { - if (itemStyle->IsEditorOpened()) - { - itemStyle->NotifyCloseEditor(); - currentEditor = nullptr; - currentEditorPos = { -1,-1 }; - } + return filter ? true : !filter->Filter(row); } - } - void GuiVirtualDataGrid::NotifyCloseEditor() - { - if (currentEditorPos.row != -1 && GetArranger()) +/*********************************************************************** +DataSorterBase +***********************************************************************/ + + void DataSorterBase::InvokeOnProcessorChanged() { - auto style = GetArranger()->GetVisibleStyle(currentEditorPos.row); - if (auto itemStyle = dynamic_cast(style)) + if (callback) { - itemStyle->NotifyCloseEditor(); + callback->OnProcessorChanged(); } } - } - void GuiVirtualDataGrid::NotifySelectCell(vint row, vint column) - { - if (selectedCell.row != row || selectedCell.column != column) + DataSorterBase::DataSorterBase() { - selectedCell = { row, column }; - SelectedCellChanged.Execute(GetNotifyEventArguments()); + } - auto style = GetArranger()->GetVisibleStyle(row); - if (auto itemStyle = dynamic_cast(style)) - { - itemStyle->NotifySelectCell(column); - } + void DataSorterBase::SetCallback(IDataProcessorCallback* value) + { + callback = value; } - } - bool GuiVirtualDataGrid::StartEdit(vint row, vint column) - { - StopEdit(); - NotifySelectCell(row, column); +/*********************************************************************** +DataMultipleSorter +***********************************************************************/ - auto style = GetArranger()->GetVisibleStyle(row); - if (auto itemStyle = dynamic_cast(style)) + DataMultipleSorter::DataMultipleSorter() { - if (auto factory = dataGridView->GetCellDataEditorFactory(row, column)) - { - currentEditorOpeningEditor = true; - currentEditorPos = { row,column }; - currentEditor = factory->CreateEditor(this); - if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) - { - focusControl->SetAlt(L"E"); - } - currentEditor->BeforeEditCell(GetItemProvider(), row, column); - itemStyle->NotifyOpenEditor(column, currentEditor.Obj()); - currentEditorOpeningEditor = false; - return true; - } } - return false; - } - void GuiVirtualDataGrid::StopEdit() - { - if (GetItemProvider()->IsEditing()) + bool DataMultipleSorter::SetLeftSorter(Ptr value) { - NotifyCloseEditor(); + if (leftSorter == value) return false; + if (leftSorter) leftSorter->SetCallback(nullptr); + leftSorter = value; + if (leftSorter) leftSorter->SetCallback(callback); + return true; } - else + + bool DataMultipleSorter::SetRightSorter(Ptr value) { - if (currentEditorPos != GridPos{-1, -1}) - { - if (currentEditor) - { - NotifyCloseEditor(); - } - } + if (rightSorter == value) return false; + if (rightSorter) rightSorter->SetCallback(nullptr); + rightSorter = value; + if (rightSorter) rightSorter->SetCallback(callback); + return true; } - SetAltComposition(nullptr); - SetAltControl(nullptr, false); - currentEditor = nullptr; - currentEditorPos = { -1,-1 }; - } - -/*********************************************************************** -GuiVirtualDataGrid (IDataGridContext) -***********************************************************************/ - - templates::GuiListViewTemplate* GuiVirtualDataGrid::GetListViewControlTemplate() - { - return TypedControlTemplateObject(true); - } - void GuiVirtualDataGrid::RequestSaveData() - { - if (currentEditor && !currentEditorOpeningEditor) + void DataMultipleSorter::SetCallback(IDataProcessorCallback* value) { - GuiControl* focusedControl = nullptr; - if (auto controlHost = GetRelatedControlHost()) - { - if (auto graphicsHost = controlHost->GetGraphicsHost()) - { - if (auto focusComposition = graphicsHost->GetFocusedComposition()) - { - focusedControl = focusComposition->GetRelatedControl(); - } - } - } - - GetItemProvider()->PushEditing(); - dataGridView->SetBindingCellValue(currentEditorPos.row, currentEditorPos.column, currentEditor->GetTemplate()->GetCellValue()); - GetItemProvider()->PopEditing(); + DataSorterBase::SetCallback(value); + if (leftSorter) leftSorter->SetCallback(value); + if (rightSorter) rightSorter->SetCallback(value); + } - auto style = GetArranger()->GetVisibleStyle(currentEditorPos.row); - if (auto itemStyle = dynamic_cast(style)) + vint DataMultipleSorter::Compare(const description::Value& row1, const description::Value& row2) + { + if (leftSorter) { - itemStyle->NotifyCellEdited(); + vint result = leftSorter->Compare(row1, row2); + if (result != 0) return result; } - - if (currentEditor && focusedControl) + if (rightSorter) { - focusedControl->SetFocus(); + vint result = rightSorter->Compare(row1, row2); + if (result != 0) return result; } + return 0; } - } /*********************************************************************** -GuiVirtualDataGrid +DataReverseSorter ***********************************************************************/ - void GuiVirtualDataGrid::OnColumnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) - { - if(dataGridView->IsColumnSortable(arguments.itemIndex)) + DataReverseSorter::DataReverseSorter() { - switch(columnItemView->GetSortingState(arguments.itemIndex)) - { - case ColumnSortingState::NotSorted: - dataGridView->SortByColumn(arguments.itemIndex, true); - break; - case ColumnSortingState::Ascending: - dataGridView->SortByColumn(arguments.itemIndex, false); - break; - case ColumnSortingState::Descending: - dataGridView->SortByColumn(-1, false); - break; - } } - } - void GuiVirtualDataGrid::OnSelectionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (!skipOnSelectionChanged) + bool DataReverseSorter::SetSubSorter(Ptr value) { - vint row = GetSelectedItemIndex(); - if (row != -1) - { - if (selectedCell.row != row && selectedCell.column != -1) - { - SelectCell({ row,selectedCell.column }, false); - } - else - { - SelectCell({ row,0 }, false); - } - } - else - { - StopEdit(); - NotifySelectCell(-1, -1); - } + if (sorter == value) return false; + if (sorter) sorter->SetCallback(nullptr); + sorter = value; + if (sorter) sorter->SetCallback(callback); + return true; } - } - void GuiVirtualDataGrid::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) - { - if (selectedCell.row != -1) + void DataReverseSorter::SetCallback(IDataProcessorCallback* value) { - if (arguments.code == VKEY::KEY_RETURN) - { - RequestSaveData(); - SelectCell(selectedCell, !currentEditor); - arguments.handled = true; - if (!currentEditor) - { - SetFocus(); - } - arguments.handled = true; - } - else if (arguments.code == VKEY::KEY_ESCAPE) - { - if (currentEditor) - { - SelectCell(currentEditorPos, false); - SetFocus(); - arguments.handled = true; - } - } - else - { - vint columnOffset = 0; - switch (arguments.code) - { - case VKEY::KEY_LEFT: - columnOffset = -1; - arguments.handled = true; - break; - case VKEY::KEY_RIGHT: - columnOffset = 1; - arguments.handled = true; - break; - default: - return; - } - - vint column = selectedCell.column + columnOffset; - if (column < 0) - { - column = 0; - } - else if (column >= listViewItemView->GetColumnCount()) - { - column = listViewItemView->GetColumnCount(); - } - SelectCell({ selectedCell.row, column }, false); - } + DataSorterBase::SetCallback(value); + if (sorter) sorter->SetCallback(value); } - } - - void GuiVirtualDataGrid::OnKeyUp(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) - { - } - - GuiVirtualDataGrid::GuiVirtualDataGrid(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) - :GuiVirtualListView(themeName, _itemProvider) - { - listViewItemView = dynamic_cast(_itemProvider->RequestView(IListViewItemView::Identifier)); - columnItemView = dynamic_cast(_itemProvider->RequestView(ListViewColumnItemArranger::IColumnItemView::Identifier)); - dataGridView = dynamic_cast(_itemProvider->RequestView(IDataGridView::Identifier)); + vint DataReverseSorter::Compare(const description::Value& row1, const description::Value& row2) { - auto mainProperty = [](const Value&) { return new MainColumnVisualizerTemplate; }; - auto subProperty = [](const Value&) { return new SubColumnVisualizerTemplate; }; - auto focusRectangleProperty = [](const Value&) { return new FocusRectangleVisualizerTemplate; }; - auto cellBorderProperty = [](const Value&) { return new CellBorderVisualizerTemplate; }; - - defaultMainColumnVisualizerFactory = - MakePtr(cellBorderProperty, - MakePtr(focusRectangleProperty, - MakePtr(mainProperty) - )); - defaultSubColumnVisualizerFactory = - MakePtr(cellBorderProperty, - MakePtr(focusRectangleProperty, - MakePtr(subProperty) - )); + return sorter ? -sorter->Compare(row1, row2) : 0; } - CHECK_ERROR(listViewItemView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing IListViewItemView from item provider."); - CHECK_ERROR(columnItemView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing ListViewColumnItemArranger::IColumnItemView from item provider."); - CHECK_ERROR(dataGridView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing IDataGridView from item provider."); - - SetViewToDefault(); - - ColumnClicked.AttachMethod(this, &GuiVirtualDataGrid::OnColumnClicked); - SelectionChanged.AttachMethod(this, &GuiVirtualDataGrid::OnSelectionChanged); - focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiVirtualDataGrid::OnKeyDown); - focusableComposition->GetEventReceiver()->keyUp.AttachMethod(this, &GuiVirtualDataGrid::OnKeyUp); - SelectedCellChanged.SetAssociatedComposition(boundsComposition); - } - - GuiVirtualDataGrid::~GuiVirtualDataGrid() - { - } - - GuiListControl::IItemProvider* GuiVirtualDataGrid::GetItemProvider() - { - return GuiVirtualListView::GetItemProvider(); - } - - void GuiVirtualDataGrid::SetViewToDefault() - { - SetStyleAndArranger( - [](const Value&) { return new list::DefaultDataGridItemTemplate; }, - new list::ListViewColumnItemArranger - ); - } - - GridPos GuiVirtualDataGrid::GetSelectedCell() - { - return selectedCell; - } - - bool GuiVirtualDataGrid::SelectCell(const GridPos& value, bool openEditor) - { - bool validPos = 0 <= value.row && value.row < GetItemProvider()->Count() && 0 <= value.column && value.column < listViewItemView->GetColumnCount(); - - if (validPos && selectedCell == value) - { - if (currentEditor && !openEditor) - { - StopEdit(); - } - else if (!currentEditor && openEditor) - { - StartEdit(value.row, value.column); - } - return currentEditor != nullptr; - } +/*********************************************************************** +DataColumn +***********************************************************************/ - StopEdit(); - if (validPos) + void DataColumn::NotifyAllColumnsUpdate(bool affectItem) { - NotifySelectCell(value.row, value.column); - if (openEditor) + if (dataProvider) { - EnsureItemVisible(value.row); - if (GetMultiSelect()) + vint index = dataProvider->columns.IndexOf(this); + if (index != -1) { - ClearSelection(); + dataProvider->columns.NotifyColumnUpdated(index, affectItem); } - - skipOnSelectionChanged = true; - SetSelected(value.row, true); - skipOnSelectionChanged = false; - return StartEdit(value.row, value.column); } } - else - { - NotifySelectCell(-1, -1); - ClearSelection(); - } - return false; - } - } - } -} - -/*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUIDATAGRIDEXTENSIONS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - namespace list - { - using namespace compositions; - using namespace elements; - using namespace theme; - using namespace templates; - -/*********************************************************************** -DataVisualizerBase -***********************************************************************/ - DataVisualizerBase::DataVisualizerBase() + DataColumn::DataColumn() { } - DataVisualizerBase::~DataVisualizerBase() + DataColumn::~DataColumn() { - if (visualizerTemplate) + if (popup && ownPopup) { - SafeDeleteComposition(visualizerTemplate); + SafeDeleteControl(popup); } } - IDataVisualizerFactory* DataVisualizerBase::GetFactory() + WString DataColumn::GetText() { - return factory; + return text; } - templates::GuiGridVisualizerTemplate* DataVisualizerBase::GetTemplate() + void DataColumn::SetText(const WString& value) { - return visualizerTemplate; + if (text != value) + { + text = value; + NotifyAllColumnsUpdate(false); + } } - void DataVisualizerBase::NotifyDeletedTemplate() + vint DataColumn::GetSize() { - visualizerTemplate = nullptr; + return size; } - void DataVisualizerBase::BeforeVisualizeCell(GuiListControl::IItemProvider* itemProvider, vint row, vint column) + void DataColumn::SetSize(vint value) { - if (auto listViewItemView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto style = dataGridContext->GetListViewControlTemplate(); - visualizerTemplate->SetPrimaryTextColor(style->GetPrimaryTextColor()); - visualizerTemplate->SetSecondaryTextColor(style->GetSecondaryTextColor()); - visualizerTemplate->SetItemSeparatorColor(style->GetItemSeparatorColor()); - - visualizerTemplate->SetLargeImage(listViewItemView->GetLargeImage(row)); - visualizerTemplate->SetSmallImage(listViewItemView->GetSmallImage(row)); - visualizerTemplate->SetText(column == 0 ? listViewItemView->GetText(row) : listViewItemView->GetSubItem(row, column - 1)); - } - if (auto dataGridView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IDataGridView::Identifier))) + if (size != value) { - visualizerTemplate->SetRowValue(itemProvider->GetBindingValue(row)); - visualizerTemplate->SetCellValue(dataGridView->GetBindingCellValue(row, column)); + size = value; + NotifyAllColumnsUpdate(false); } } - void DataVisualizerBase::SetSelected(bool value) + bool DataColumn::GetOwnPopup() { - if (visualizerTemplate) - { - visualizerTemplate->SetSelected(value); - } + return ownPopup; } -/*********************************************************************** -DataVisualizerFactory -***********************************************************************/ - - DataVisualizerFactory::ItemTemplate* DataVisualizerFactory::CreateItemTemplate(controls::list::IDataGridContext* dataGridContext) + void DataColumn::SetOwnPopup(bool value) { - ItemTemplate* itemTemplate = templateFactory({}); - CHECK_ERROR(itemTemplate, L"DataVisualizerFactory::CreateItemTemplate(IDataGridContext*)#An instance of GuiGridEditorTemplate is expected."); - if (decoratedFactory) - { - auto childTemplate = decoratedFactory->CreateItemTemplate(dataGridContext); - childTemplate->SetAlignmentToParent(Margin(0, 0, 0, 0)); - itemTemplate->GetContainerComposition()->AddChild(childTemplate); - -#define FORWARD_EVENT(NAME)\ - itemTemplate->NAME##Changed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments)\ - {\ - childTemplate->Set##NAME(itemTemplate->Get##NAME());\ - });\ - -#define FORWARD_EVENT_IMPL(CLASS, TYPE, NAME, VALUE) FORWARD_EVENT(NAME) - - GuiTemplate_PROPERTIES(FORWARD_EVENT_IMPL) - GuiControlTemplate_PROPERTIES(FORWARD_EVENT_IMPL) - GuiGridCellTemplate_PROPERTIES(FORWARD_EVENT_IMPL) - GuiGridVisualizerTemplate_PROPERTIES(FORWARD_EVENT_IMPL) - -#undef FORWARD_EVENT_IMPL -#undef FORWARD_EVENT - } - return itemTemplate; + ownPopup = value; } - DataVisualizerFactory::DataVisualizerFactory(TemplateProperty _templateFactory, Ptr _decoratedFactory) - :templateFactory(_templateFactory) - , decoratedFactory(_decoratedFactory) + GuiMenu* DataColumn::GetPopup() { + return popup; } - DataVisualizerFactory::~DataVisualizerFactory() + void DataColumn::SetPopup(GuiMenu* value) { + if (popup != value) + { + popup = value; + NotifyAllColumnsUpdate(false); + } } - Ptr DataVisualizerFactory::CreateVisualizer(controls::list::IDataGridContext* dataGridContext) + Ptr DataColumn::GetFilter() { - auto dataVisualizer = MakePtr(); - dataVisualizer->factory = this; - dataVisualizer->dataGridContext = dataGridContext; - dataVisualizer->visualizerTemplate = CreateItemTemplate(dataGridContext); - - return dataVisualizer; + return associatedFilter; } - -/*********************************************************************** -DataEditorBase -***********************************************************************/ - void DataEditorBase::OnCellValueChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataColumn::SetFilter(Ptr value) { - dataGridContext->RequestSaveData(); + if (associatedFilter) associatedFilter->SetCallback(nullptr); + associatedFilter = value; + if (associatedFilter) associatedFilter->SetCallback(dataProvider); + NotifyAllColumnsUpdate(false); } - DataEditorBase::DataEditorBase() + Ptr DataColumn::GetSorter() { + return associatedSorter; } - DataEditorBase::~DataEditorBase() + void DataColumn::SetSorter(Ptr value) { - if (editorTemplate) - { - SafeDeleteComposition(editorTemplate); - } + if (associatedSorter) associatedSorter->SetCallback(nullptr); + associatedSorter = value; + if (associatedSorter) associatedSorter->SetCallback(dataProvider); + NotifyAllColumnsUpdate(false); } - IDataEditorFactory* DataEditorBase::GetFactory() + Ptr DataColumn::GetVisualizerFactory() { - return factory; + return visualizerFactory; } - templates::GuiGridEditorTemplate* DataEditorBase::GetTemplate() + void DataColumn::SetVisualizerFactory(Ptr value) { - return editorTemplate; + visualizerFactory = value; + NotifyAllColumnsUpdate(true); } - void DataEditorBase::NotifyDeletedTemplate() + Ptr DataColumn::GetEditorFactory() { - editorTemplate = nullptr; + return editorFactory; } - void DataEditorBase::BeforeEditCell(GuiListControl::IItemProvider* itemProvider, vint row, vint column) + void DataColumn::SetEditorFactory(Ptr value) { - if (auto listViewItemView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto style = dataGridContext->GetListViewControlTemplate(); - editorTemplate->SetPrimaryTextColor(style->GetPrimaryTextColor()); - editorTemplate->SetSecondaryTextColor(style->GetSecondaryTextColor()); - editorTemplate->SetItemSeparatorColor(style->GetItemSeparatorColor()); - - editorTemplate->SetLargeImage(listViewItemView->GetLargeImage(row)); - editorTemplate->SetSmallImage(listViewItemView->GetSmallImage(row)); - editorTemplate->SetText(column == 0 ? listViewItemView->GetText(row) : listViewItemView->GetSubItem(row, column - 1)); - } - if (auto dataGridView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IDataGridView::Identifier))) - { - editorTemplate->SetRowValue(itemProvider->GetBindingValue(row)); - editorTemplate->SetCellValue(dataGridView->GetBindingCellValue(row, column)); - } - editorTemplate->CellValueChanged.AttachMethod(this, &DataEditorBase::OnCellValueChanged); + editorFactory = value; + NotifyAllColumnsUpdate(true); } - bool DataEditorBase::GetCellValueSaved() + WString DataColumn::GetCellText(vint row) { - if (editorTemplate) + if (0 <= row && row < dataProvider->Count()) { - return editorTemplate->GetCellValueSaved(); + return ReadProperty(dataProvider->GetBindingValue(row), textProperty); } - return true; - } - -/*********************************************************************** -DataEditorFactory -***********************************************************************/ - - DataEditorFactory::DataEditorFactory(TemplateProperty _templateFactory) - :templateFactory(_templateFactory) - { - } - - DataEditorFactory::~DataEditorFactory() - { - } - - Ptr DataEditorFactory::CreateEditor(controls::list::IDataGridContext* dataGridContext) - { - auto editor = MakePtr(); - editor->factory = this; - editor->dataGridContext = dataGridContext; - - ItemTemplate* itemTemplate = templateFactory({}); - CHECK_ERROR(itemTemplate, L"DataEditorFactory::CreateEditor(IDataGridContext*)#An instance of GuiGridEditorTemplate is expected."); - editor->editorTemplate = itemTemplate; - return editor; + return L""; } - -/*********************************************************************** -MainColumnVisualizerTemplate -***********************************************************************/ - void MainColumnVisualizerTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + description::Value DataColumn::GetCellValue(vint row) { - text->SetText(GetText()); + if (0 <= row && row < dataProvider->Count()) + { + return ReadProperty(dataProvider->GetBindingValue(row), valueProperty); + } + return Value(); } - void MainColumnVisualizerTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataColumn::SetCellValue(vint row, description::Value value) { - text->SetFont(GetFont()); + if (0 <= row && row < dataProvider->Count()) + { + auto rowValue = dataProvider->GetBindingValue(row); + WriteProperty(rowValue, valueProperty, value); + dataProvider->InvokeOnItemModified(row, 1, 1); + } } - void MainColumnVisualizerTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + ItemProperty DataColumn::GetTextProperty() { - text->SetColor(GetPrimaryTextColor()); + return textProperty; } - void MainColumnVisualizerTemplate::OnSmallImageChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataColumn::SetTextProperty(const ItemProperty& value) { - auto imageData = GetSmallImage(); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else + if (textProperty != value) { - image->SetImage(nullptr); + textProperty = value; + NotifyAllColumnsUpdate(true); + compositions::GuiEventArgs arguments; + TextPropertyChanged.Execute(arguments); } } - MainColumnVisualizerTemplate::MainColumnVisualizerTemplate() + WritableItemProperty DataColumn::GetValueProperty() { - GuiTableComposition* table = new GuiTableComposition; - table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - table->SetRowsAndColumns(3, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); - table->SetCellPadding(2); - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(16, 16)); + return valueProperty; + } - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } + void DataColumn::SetValueProperty(const WritableItemProperty& value) + { + if (valueProperty != value) { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetMargin(Margin(0, 0, 8, 0)); - - text = GuiSolidLabelElement::Create(); - text->SetAlignments(Alignment::Left, Alignment::Center); - text->SetEllipse(true); - cell->SetOwnedElement(text); + valueProperty = value; + NotifyAllColumnsUpdate(true); + compositions::GuiEventArgs arguments; + ValuePropertyChanged.Execute(arguments); } - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - AddChild(table); - - TextChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnTextChanged); - FontChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnFontChanged); - PrimaryTextColorChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnTextColorChanged); - SmallImageChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnSmallImageChanged); - - TextChanged.Execute(compositions::GuiEventArgs(this)); - FontChanged.Execute(compositions::GuiEventArgs(this)); - PrimaryTextColorChanged.Execute(compositions::GuiEventArgs(this)); - SmallImageChanged.Execute(compositions::GuiEventArgs(this)); } - MainColumnVisualizerTemplate::~MainColumnVisualizerTemplate() - { - } - /*********************************************************************** -SubColumnVisualizerTemplate +DataColumns ***********************************************************************/ - void SubColumnVisualizerTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataColumns::NotifyColumnUpdated(vint index, bool affectItem) { - text->SetText(GetText()); + affectItemFlag = affectItem; + NotifyUpdateInternal(index, 1, 1); + affectItemFlag = true; } - void SubColumnVisualizerTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) { - text->SetFont(GetFont()); + dataProvider->NotifyAllColumnsUpdate(); + if (affectItemFlag) + { + dataProvider->NotifyAllItemsUpdate(); + } } - void SubColumnVisualizerTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + bool DataColumns::QueryInsert(vint index, const Ptr& value) { - text->SetColor(GetSecondaryTextColor()); + return !items.Contains(value.Obj()); } - void SubColumnVisualizerTemplate::Initialize(bool fixTextColor) + void DataColumns::AfterInsert(vint index, const Ptr& value) { - text = GuiSolidLabelElement::Create(); - text->SetVerticalAlignment(Alignment::Center); - text->SetEllipse(true); - - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - SetMargin(Margin(8, 0, 8, 0)); - SetOwnedElement(text); - - TextChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnTextChanged); - FontChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnFontChanged); - if (!fixTextColor) - { - SecondaryTextColorChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnTextColorChanged); - } - - TextChanged.Execute(compositions::GuiEventArgs(this)); - FontChanged.Execute(compositions::GuiEventArgs(this)); - if (!fixTextColor) - { - SecondaryTextColorChanged.Execute(compositions::GuiEventArgs(this)); - } + value->dataProvider = dataProvider; } - SubColumnVisualizerTemplate::SubColumnVisualizerTemplate(bool fixTextColor) + void DataColumns::BeforeRemove(vint index, const Ptr& value) { - Initialize(fixTextColor); + value->dataProvider = nullptr; } - SubColumnVisualizerTemplate::SubColumnVisualizerTemplate() + DataColumns::DataColumns(DataProvider* _dataProvider) + :dataProvider(_dataProvider) { - Initialize(false); } - SubColumnVisualizerTemplate::~SubColumnVisualizerTemplate() + DataColumns::~DataColumns() { } - + /*********************************************************************** -HyperlinkVisualizerTemplate +DataProvider ***********************************************************************/ - void HyperlinkVisualizerTemplate::label_MouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - FontProperties font = text->GetFont(); - font.underline = true; - text->SetFont(font); - } - - void HyperlinkVisualizerTemplate::label_MouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataProvider::NotifyAllItemsUpdate() { - FontProperties font = text->GetFont(); - font.underline = false; - text->SetFont(font); + InvokeOnItemModified(0, Count(), Count()); } - HyperlinkVisualizerTemplate::HyperlinkVisualizerTemplate() - :SubColumnVisualizerTemplate(true) + void DataProvider::NotifyAllColumnsUpdate() { - text->SetColor(Color(0, 0, 255)); - text->SetEllipse(true); - GetEventReceiver()->mouseEnter.AttachMethod(this, &HyperlinkVisualizerTemplate::label_MouseEnter); - GetEventReceiver()->mouseLeave.AttachMethod(this, &HyperlinkVisualizerTemplate::label_MouseLeave); - SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Hand)); + if (columnItemViewCallback) + { + columnItemViewCallback->OnColumnChanged(); + } } - HyperlinkVisualizerTemplate::~HyperlinkVisualizerTemplate() + GuiListControl::IItemProvider* DataProvider::GetItemProvider() { + return this; } - -/*********************************************************************** -CellBorderVisualizerTemplate -***********************************************************************/ - void FocusRectangleVisualizerTemplate::OnSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void DataProvider::OnProcessorChanged() { - focusComposition->SetVisible(GetSelected()); + RebuildFilter(); + ReorderRows(true); } - FocusRectangleVisualizerTemplate::FocusRectangleVisualizerTemplate() + void DataProvider::OnItemSourceModified(vint start, vint count, vint newCount) { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - - focusComposition = new GuiBoundsComposition(); + if (!currentSorter && !currentFilter && count == newCount) { - auto focus = GuiFocusRectangleElement::Create(); - focusComposition->SetOwnedElement(focus); - focusComposition->SetAlignmentToParent(Margin(1, 1, 1, 1)); + InvokeOnItemModified(start, count, newCount); } - auto container = new GuiBoundsComposition(); + else { - container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - container->SetAlignmentToParent(Margin(2, 2, 2, 2)); + ReorderRows(true); } - - AddChild(focusComposition); - AddChild(container); - SetContainerComposition(container); - - SelectedChanged.AttachMethod(this, &FocusRectangleVisualizerTemplate::OnSelectedChanged); - SelectedChanged.Execute(compositions::GuiEventArgs(this)); } - FocusRectangleVisualizerTemplate::~FocusRectangleVisualizerTemplate() + ListViewDataColumns& DataProvider::GetDataColumns() { + return dataColumns; } - -/*********************************************************************** -CellBorderVisualizerTemplate -***********************************************************************/ - void CellBorderVisualizerTemplate::OnItemSeparatorColorChanged(GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + DataColumns& DataProvider::GetColumns() { - border1->SetColor(GetItemSeparatorColor()); - border2->SetColor(GetItemSeparatorColor()); + return columns; } - CellBorderVisualizerTemplate::CellBorderVisualizerTemplate() + Ptr DataProvider::GetItemSource() { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + return itemSource; + } - auto bounds1 = new GuiBoundsComposition; - { - border1 = GuiSolidBorderElement::Create(); - bounds1->SetOwnedElement(border1); - bounds1->SetAlignmentToParent(Margin(-1, 0, 0, 0)); - } - auto bounds2 = new GuiBoundsComposition; + void DataProvider::SetItemSource(Ptr _itemSource) + { + vint oldCount = 0; + if (itemSource) { - border2 = GuiSolidBorderElement::Create(); - bounds2->SetOwnedElement(border2); - bounds2->SetAlignmentToParent(Margin(0, -1, 0, 0)); + oldCount = itemSource->GetCount(); } - auto container = new GuiBoundsComposition(); + if (itemChangedEventHandler) { - container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - container->SetAlignmentToParent(Margin(0, 0, 1, 1)); + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); } - AddChild(bounds1); - AddChild(bounds2); - AddChild(container); - SetContainerComposition(container); + itemSource = nullptr; + itemChangedEventHandler = nullptr; - ItemSeparatorColorChanged.AttachMethod(this, &CellBorderVisualizerTemplate::OnItemSeparatorColorChanged); - ItemSeparatorColorChanged.Execute(compositions::GuiEventArgs(this)); - } + if (_itemSource) + { + if (auto ol = _itemSource.Cast()) + { + itemSource = ol; + itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) + { + OnItemSourceModified(start, oldCount, newCount); + }); + } + else if (auto rl = _itemSource.Cast()) + { + itemSource = rl; + } + else + { + itemSource = IValueList::Create(GetLazyList(_itemSource)); + } + } - CellBorderVisualizerTemplate::~CellBorderVisualizerTemplate() - { + OnItemSourceModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); } - } - } - } -} - -/*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUILISTCONTROLITEMARRANGERS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace elements; - using namespace compositions; - - namespace list - { - -/*********************************************************************** -RangedItemArrangerBase -***********************************************************************/ - void RangedItemArrangerBase::InvalidateAdoptedSize() + void DataProvider::RebuildFilter() { - if (listControl) + if (currentFilter) { - listControl->AdoptedSizeInvalidated.Execute(listControl->GetNotifyEventArguments()); + currentFilter->SetCallback(nullptr); + currentFilter = nullptr; } - } - vint RangedItemArrangerBase::CalculateAdoptedSize(vint expectedSize, vint count, vint itemSize) - { - vint visibleCount = expectedSize / itemSize; - if (count < visibleCount) + List> selectedFilters; + CopyFrom( + selectedFilters, + From(columns) + .Select([](Ptr column) {return column->GetFilter(); }) + .Where([](Ptr filter) {return filter != nullptr; }) + ); + if (additionalFilter) { - visibleCount = count; + selectedFilters.Add(additionalFilter); } - else if (count > visibleCount) + if (selectedFilters.Count() > 0) { - vint deltaA = expectedSize - count * itemSize; - vint deltaB = itemSize - deltaA; - if (deltaB < deltaA) + auto andFilter = Ptr(new DataAndFilter); + for (auto filter : selectedFilters) { - visibleCount++; + andFilter->AddSubFilter(filter); } + currentFilter = andFilter; + } + + if (currentFilter) + { + currentFilter->SetCallback(this); } - return visibleCount * itemSize; } - RangedItemArrangerBase::ItemStyleRecord RangedItemArrangerBase::CreateStyle(vint index) + void DataProvider::ReorderRows(bool invokeCallback) { - GuiSelectableButton* backgroundButton = nullptr; - if (listControl->GetDisplayItemBackground()) + vint oldRowCount = virtualRowToSourceRow.Count(); + virtualRowToSourceRow.Clear(); + vint rowCount = itemSource ? itemSource->GetCount() : 0; + + if (currentFilter) { - backgroundButton = new GuiSelectableButton(theme::ThemeName::ListItemBackground); - if (auto style = listControl->TypedControlTemplateObject(true)->GetBackgroundTemplate()) + for (vint i = 0; i < rowCount; i++) { - backgroundButton->SetControlTemplate(style); + if (currentFilter->Filter(itemSource->Get(i))) + { + virtualRowToSourceRow.Add(i); + } } - backgroundButton->SetAutoFocus(false); - backgroundButton->SetAutoSelection(false); } - - auto itemStyle = callback->RequestItem(index, backgroundButton->GetBoundsComposition()); - if (backgroundButton) + else { - itemStyle->SetAlignmentToParent(Margin(0, 0, 0, 0)); - itemStyle->SelectedChanged.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + for (vint i = 0; i < rowCount; i++) { - backgroundButton->SetSelected(itemStyle->GetSelected()); - }); + virtualRowToSourceRow.Add(i); + } + } - backgroundButton->SetSelected(itemStyle->GetSelected()); - backgroundButton->GetContainerComposition()->AddChild(itemStyle); + if (currentSorter && virtualRowToSourceRow.Count() > 0) + { + IDataSorter* sorter = currentSorter.Obj(); + SortLambda( + &virtualRowToSourceRow[0], + virtualRowToSourceRow.Count(), + [=](vint a, vint b) + { + return sorter->Compare(itemSource->Get(a), itemSource->Get(b)) <=> 0; + }); } - return { itemStyle, backgroundButton }; - } - void RangedItemArrangerBase::DeleteStyle(ItemStyleRecord style) - { - callback->ReleaseItem(style.key); - if (style.value) + if (invokeCallback) { - SafeDeleteControl(style.value); + NotifyAllItemsUpdate(); } } - compositions::GuiBoundsComposition* RangedItemArrangerBase::GetStyleBounds(ItemStyleRecord style) + DataProvider::DataProvider() + :dataColumns(this) + , columns(this) { - return style.value ? style.value->GetBoundsComposition() : style.key; + RebuildFilter(); + ReorderRows(false); } - void RangedItemArrangerBase::ClearStyles() + DataProvider::~DataProvider() { - startIndex = 0; - if (callback) + if (itemChangedEventHandler) { - for (vint i = 0; i < visibleStyles.Count(); i++) - { - DeleteStyle(visibleStyles[i]); - } + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); } - visibleStyles.Clear(); - viewBounds = Rect(0, 0, 0, 0); - InvalidateItemSizeCache(); - InvalidateAdoptedSize(); } - void RangedItemArrangerBase::OnViewChangedInternal(Rect oldBounds, Rect newBounds) + Ptr DataProvider::GetAdditionalFilter() { - vint endIndex = startIndex + visibleStyles.Count() - 1; - vint newStartIndex = 0; - vint itemCount = itemProvider->Count(); - BeginPlaceItem(true, newBounds, newStartIndex); - if (newStartIndex < 0) newStartIndex = 0; - - StyleList newVisibleStyles; - for (vint i = newStartIndex; i < itemCount; i++) - { - bool reuseOldStyle = startIndex <= i && i <= endIndex; - auto style = reuseOldStyle ? visibleStyles[i - startIndex] : CreateStyle(i); - newVisibleStyles.Add(style); + return additionalFilter; + } - Rect bounds; - Margin alignmentToParent; - PlaceItem(true, !reuseOldStyle, i, style, newBounds, bounds, alignmentToParent); - if (IsItemOutOfViewBounds(i, style, bounds, newBounds)) - { - break; - } + void DataProvider::SetAdditionalFilter(Ptr value) + { + additionalFilter = value; + RebuildFilter(); + ReorderRows(true); + } - bounds.x1 -= newBounds.x1; - bounds.x2 -= newBounds.x1; - bounds.y1 -= newBounds.y1; - bounds.y2 -= newBounds.y1; - } + // ===================== GuiListControl::IItemProvider ===================== - vint newEndIndex = newStartIndex + newVisibleStyles.Count() - 1; - for (vint i = 0; i < visibleStyles.Count(); i++) - { - vint index = startIndex + i; - if (index < newStartIndex || index > newEndIndex) - { - DeleteStyle(visibleStyles[i]); - } - } - CopyFrom(visibleStyles, newVisibleStyles); + vint DataProvider::Count() + { + return virtualRowToSourceRow.Count(); + } - if (EndPlaceItem(true, newBounds, newStartIndex)) - { - callback->OnTotalSizeChanged(); - InvalidateAdoptedSize(); - } - startIndex = newStartIndex; - } - - void RangedItemArrangerBase::RearrangeItemBounds() - { - vint newStartIndex = startIndex; - BeginPlaceItem(false, viewBounds, newStartIndex); - for (vint i = 0; i < visibleStyles.Count(); i++) - { - auto style = visibleStyles[i]; - Rect bounds; - Margin alignmentToParent(-1, -1, -1, -1); - PlaceItem(false, false, startIndex + i, style, viewBounds, bounds, alignmentToParent); - - bounds.x1 -= viewBounds.x1; - bounds.x2 -= viewBounds.x1; - bounds.y1 -= viewBounds.y1; - bounds.y2 -= viewBounds.y1; - - callback->SetStyleAlignmentToParent(GetStyleBounds(style), alignmentToParent); - callback->SetStyleBounds(GetStyleBounds(style), bounds); - } - EndPlaceItem(false, viewBounds, startIndex); - } - - RangedItemArrangerBase::RangedItemArrangerBase() - { - } - - RangedItemArrangerBase::~RangedItemArrangerBase() + WString DataProvider::GetTextValue(vint itemIndex) { + return GetText(itemIndex); } - void RangedItemArrangerBase::OnAttached(GuiListControl::IItemProvider* provider) + description::Value DataProvider::GetBindingValue(vint itemIndex) { - itemProvider = provider; - if (provider) - { - OnItemModified(0, 0, provider->Count()); - } + return itemSource ? itemSource->Get(virtualRowToSourceRow[itemIndex]) : Value(); } - void RangedItemArrangerBase::OnItemModified(vint start, vint count, vint newCount) + IDescriptable* DataProvider::RequestView(const WString& identifier) { - if (callback && !itemProvider->IsEditing()) + if (identifier == IListViewItemView::Identifier) { - suppressOnViewChanged = true; - { - vint visibleCount = visibleStyles.Count(); - vint itemCount = itemProvider->Count(); - SortedList reusedStyles; - for (vint i = 0; i < visibleCount; i++) - { - vint index = startIndex + i; - if (index >= itemCount) - { - break; - } - - vint oldIndex = -1; - if (index < start) - { - oldIndex = index; - } - else if (index >= start + newCount) - { - oldIndex = index - newCount + count; - } - - if (oldIndex != -1) - { - if (oldIndex >= startIndex && oldIndex < startIndex + visibleCount) - { - auto style = visibleStyles[oldIndex - startIndex]; - reusedStyles.Add(style); - visibleStyles.Add(style); - } - else - { - oldIndex = -1; - } - } - if (oldIndex == -1) - { - visibleStyles.Add(CreateStyle(index)); - } - } - - for (vint i = 0; i < visibleCount; i++) - { - auto style = visibleStyles[i]; - if (!reusedStyles.Contains(style)) - { - DeleteStyle(style); - } - } - - visibleStyles.RemoveRange(0, visibleCount); - for (vint i = 0; i < visibleStyles.Count(); i++) - { - visibleStyles[i].key->SetIndex(startIndex + i); - } - } - suppressOnViewChanged = false; - - callback->OnTotalSizeChanged(); - callback->SetViewLocation(viewBounds.LeftTop()); - InvalidateAdoptedSize(); + return (IListViewItemView*)this; } - } - - void RangedItemArrangerBase::AttachListControl(GuiListControl* value) - { - listControl = value; - InvalidateAdoptedSize(); - } - - void RangedItemArrangerBase::DetachListControl() - { - listControl = 0; - } - - GuiListControl::IItemArrangerCallback* RangedItemArrangerBase::GetCallback() - { - return callback; - } - - void RangedItemArrangerBase::SetCallback(GuiListControl::IItemArrangerCallback* value) - { - if (callback != value) + else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) { - ClearStyles(); - callback = value; + return (ListViewColumnItemArranger::IColumnItemView*)this; } - } - - Size RangedItemArrangerBase::GetTotalSize() - { - if (callback) + else if (identifier == IDataGridView::Identifier) { - return OnCalculateTotalSize(); + return (IDataGridView*)this; } else { - return Size(0, 0); + return nullptr; } } - GuiListControl::ItemStyle* RangedItemArrangerBase::GetVisibleStyle(vint itemIndex) + // ===================== list::IListViewItemProvider ===================== + + Ptr DataProvider::GetSmallImage(vint itemIndex) { - if (startIndex <= itemIndex && itemIndex < startIndex + visibleStyles.Count()) - { - return visibleStyles[itemIndex - startIndex].key; - } - else + if (0 <= itemIndex && itemIndex < Count()) { - return nullptr; + return ReadProperty(GetBindingValue(itemIndex), smallImageProperty); } + return nullptr; } - vint RangedItemArrangerBase::GetVisibleIndex(GuiListControl::ItemStyle* style) + Ptr DataProvider::GetLargeImage(vint itemIndex) { - for (vint i = 0; i < visibleStyles.Count(); i++) + if (0 <= itemIndex && itemIndex < Count()) { - if (visibleStyles[i].key == style) - { - return i + startIndex; - } + return ReadProperty(GetBindingValue(itemIndex), largeImageProperty); } - return -1; + return nullptr; } - void RangedItemArrangerBase::ReloadVisibleStyles() + WString DataProvider::GetText(vint itemIndex) { - ClearStyles(); + if (columns.Count() == 0)return L""; + return columns[0]->GetCellText(itemIndex); } - void RangedItemArrangerBase::OnViewChanged(Rect bounds) + WString DataProvider::GetSubItem(vint itemIndex, vint index) { - if (!suppressOnViewChanged) - { - suppressOnViewChanged = true; - Rect oldBounds = viewBounds; - viewBounds = bounds; - if (callback) - { - OnViewChangedInternal(oldBounds, viewBounds); - RearrangeItemBounds(); - } - suppressOnViewChanged = false; - } + return columns[index + 1]->GetCellText(itemIndex); } -/*********************************************************************** -FreeHeightItemArranger -***********************************************************************/ - - void FreeHeightItemArranger::EnsureOffsetForItem(vint itemIndex) + vint DataProvider::GetDataColumnCount() { - if (heights.Count() == 0) return; - - if (availableOffsetCount == 0) - { - availableOffsetCount = 1; - offsets[0] = 0; - } - - for (vint i = availableOffsetCount; i < itemIndex && i < heights.Count(); i++) - { - offsets[i] = offsets[i - 1] + heights[i - 1]; - } + return dataColumns.Count(); } - void FreeHeightItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) + vint DataProvider::GetDataColumn(vint index) { - pim_heightUpdated = false; - EnsureOffsetForItem(heights.Count() - 1); - if (forMoving) - { - for (vint i = 0; i < heights.Count(); i++) - { - if (offsets[i] + heights[i] >= newBounds.Top()) - { - newStartIndex = i; - break; - } - } - } + return dataColumns[index]; } - void FreeHeightItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) + vint DataProvider::GetColumnCount() { - vint styleHeight = heights[index]; - { - auto composition = GetStyleBounds(style); - auto currentBounds = callback->GetStyleBounds(composition); - callback->SetStyleBounds(composition, Rect(bounds.LeftTop(), Size(viewBounds.Width(), bounds.Height()))); - vint newStyleHeight = callback->GetStylePreferredSize(composition).y; - callback->SetStyleBounds(composition, currentBounds); - - if (!newCreatedStyle || styleHeight < newStyleHeight) - { - styleHeight = newStyleHeight; - } - } + return columns.Count(); + } - if (heights[index] != styleHeight) - { - heights[index] = styleHeight; - pim_heightUpdated = true; - } + WString DataProvider::GetColumnText(vint index) + { + return columns[index]->GetText(); + } - vint styleOffset = index == 0 ? 0 : offsets[index - 1] + heights[index - 1]; - if (availableOffsetCount <= index || offsets[index] != styleOffset) - { - offsets[index] = styleOffset; - availableOffsetCount = index; - } + // ===================== list::ListViewColumnItemArranger::IColumnItemView ===================== - bounds = Rect(Point(0, offsets[index]), Size(viewBounds.Width(), heights[index])); + bool DataProvider::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) + { + if (columnItemViewCallback)return false; + columnItemViewCallback = value; + return true; } - bool FreeHeightItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + bool DataProvider::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) { - return bounds.Top() >= viewBounds.Bottom(); + if (!columnItemViewCallback) return false; + columnItemViewCallback = nullptr; + return true; } - bool FreeHeightItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + vint DataProvider::GetColumnSize(vint index) { - if (forMoving) - { - return pim_heightUpdated; - } - return false; + return columns[index]->GetSize(); } - void FreeHeightItemArranger::InvalidateItemSizeCache() + void DataProvider::SetColumnSize(vint index, vint value) { - availableOffsetCount = 0; - for (vint i = 0; i < heights.Count(); i++) - { - heights[i] = 1; - } + columns[index]->SetSize(value); } - Size FreeHeightItemArranger::OnCalculateTotalSize() + GuiMenu* DataProvider::GetDropdownPopup(vint index) { - if (heights.Count() == 0) return Size(0, 0); - EnsureOffsetForItem(heights.Count()); - return Size(viewBounds.Width(), offsets[heights.Count() - 1] + heights[heights.Count() - 1]); + return columns[index]->GetPopup(); } - FreeHeightItemArranger::FreeHeightItemArranger() + ColumnSortingState DataProvider::GetSortingState(vint index) { + return columns[index]->sortingState; } - FreeHeightItemArranger::~FreeHeightItemArranger() + // ===================== list::IDataGridView ===================== + + bool DataProvider::IsColumnSortable(vint column) { + return columns[column]->GetSorter(); } - void FreeHeightItemArranger::OnAttached(GuiListControl::IItemProvider* provider) + void DataProvider::SortByColumn(vint column, bool ascending) { - if (provider) + if (0 <= column && column < columns.Count()) { - vint itemCount = provider->Count(); - heights.Resize(itemCount); - offsets.Resize(itemCount); - for (vint i = 0; i < heights.Count(); i++) + auto sorter = columns[column]->GetSorter(); + if (!sorter) { - heights[i] = 1; + currentSorter = nullptr; } - availableOffsetCount = 0; - } - else - { - heights.Resize(0); - offsets.Resize(0); - availableOffsetCount = 0; - } - RangedItemArrangerBase::OnAttached(provider); - } - - void FreeHeightItemArranger::OnItemModified(vint start, vint count, vint newCount) - { - availableOffsetCount = start; - vint itemCount = heights.Count() + newCount - count; - - if (count < newCount) - { - heights.Resize(itemCount); - if (start + newCount < itemCount) + else if (ascending) { - memmove(&heights[start + newCount], &heights[start + count], sizeof(vint) * (itemCount - start - newCount)); + currentSorter = sorter; } - } - else if (count > newCount) - { - if (start + newCount < itemCount) + else { - memmove(&heights[start + newCount], &heights[start + count], sizeof(vint) * (itemCount - start - newCount)); + auto reverseSorter = Ptr(new DataReverseSorter); + reverseSorter->SetSubSorter(sorter); + currentSorter = reverseSorter; } - heights.Resize(itemCount); } - - for (vint i = 0; i < newCount; i++) + else { - heights[start + i] = 1; + currentSorter = nullptr; } - offsets.Resize(itemCount); - - RangedItemArrangerBase::OnItemModified(start, count, newCount); - } - vint FreeHeightItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) - { - vint count = itemProvider->Count(); - if (count == 0) return -1; - switch (key) + for (vint i = 0; i < columns.Count(); i++) { - case KeyDirection::Up: - itemIndex--; - break; - case KeyDirection::Down: - itemIndex++; - break; - case KeyDirection::Home: - itemIndex = 0; - break; - case KeyDirection::End: - itemIndex = count; - break; - case KeyDirection::PageUp: - itemIndex -= visibleStyles.Count(); - break; - case KeyDirection::PageDown: - itemIndex += visibleStyles.Count(); - break; - default: - return -1; + columns[i]->sortingState = + i != column ? ColumnSortingState::NotSorted : + ascending ? ColumnSortingState::Ascending : + ColumnSortingState::Descending + ; } - - if (itemIndex < 0) return 0; - else if (itemIndex >= count) return count - 1; - else return itemIndex; + NotifyAllColumnsUpdate(); + ReorderRows(true); } - GuiListControl::EnsureItemVisibleResult FreeHeightItemArranger::EnsureItemVisible(vint itemIndex) + vint DataProvider::GetSortedColumn() { - if (callback) + for (vint i = 0; i < columns.Count(); i++) { - bool moved = false; - while (true) + auto state = columns[i]->sortingState; + if (state != ColumnSortingState::NotSorted) { - if (itemIndex < 0 || itemIndex >= itemProvider->Count()) - { - return GuiListControl::EnsureItemVisibleResult::ItemNotExists; - } - - EnsureOffsetForItem(itemIndex); - vint offset = viewBounds.y1; - vint top = offsets[itemIndex]; - vint bottom = top + heights[itemIndex]; - vint height = viewBounds.Height(); - - Point location = viewBounds.LeftTop(); - if (offset > top) - { - location.y = top; - } - else if (offset < bottom - height) - { - location.y = bottom - height; - } - else - { - break; - } - - auto oldLeftTop = viewBounds.LeftTop(); - callback->SetViewLocation(location); - moved |= viewBounds.LeftTop() != oldLeftTop; - if (viewBounds.LeftTop() != location) break; + return i; } - return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; } - return GuiListControl::EnsureItemVisibleResult::NotMoved; - } - - Size FreeHeightItemArranger::GetAdoptedSize(Size expectedSize) - { - vint h = expectedSize.x * 2; - if (expectedSize.y < h) expectedSize.y = h; - return expectedSize; - } - -/*********************************************************************** -FixedHeightItemArranger -***********************************************************************/ - - vint FixedHeightItemArranger::GetWidth() - { return -1; } - vint FixedHeightItemArranger::GetYOffset() - { - return 0; - } - - void FixedHeightItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) - { - pi_width = GetWidth(); - if (forMoving) - { - pim_rowHeight = rowHeight; - newStartIndex = (newBounds.Top() - GetYOffset()) / rowHeight; - } - } - - void FixedHeightItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) + bool DataProvider::IsSortOrderAscending() { - vint top = GetYOffset() + index * rowHeight; - if (pi_width == -1) - { - alignmentToParent = Margin(0, -1, 0, -1); - bounds = Rect(Point(0, top), Size(0, rowHeight)); - } - else - { - alignmentToParent = Margin(-1, -1, -1, -1); - bounds = Rect(Point(0, top), Size(pi_width, rowHeight)); - } - if (forMoving) + for (vint i = 0; i < columns.Count(); i++) { - vint styleHeight = callback->GetStylePreferredSize(GetStyleBounds(style)).y; - if (pim_rowHeight < styleHeight) + auto state = columns[i]->sortingState; + if (state != ColumnSortingState::NotSorted) { - pim_rowHeight = styleHeight; + return state == ColumnSortingState::Ascending; } } + return true; } - bool FixedHeightItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + vint DataProvider::GetCellSpan(vint row, vint column) { - return bounds.Top() >= viewBounds.Bottom(); + return 1; } - bool FixedHeightItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + IDataVisualizerFactory* DataProvider::GetCellDataVisualizerFactory(vint row, vint column) { - if (forMoving) - { - if (pim_rowHeight != rowHeight) - { - vint offset = (pim_rowHeight - rowHeight) * newStartIndex; - rowHeight = pim_rowHeight; - callback->SetViewLocation(Point(0, newBounds.Top() + offset)); - return true; - } - } - return false; + return columns[column]->GetVisualizerFactory().Obj(); } - void FixedHeightItemArranger::InvalidateItemSizeCache() + IDataEditorFactory* DataProvider::GetCellDataEditorFactory(vint row, vint column) { - rowHeight = 1; + return columns[column]->GetEditorFactory().Obj(); } - Size FixedHeightItemArranger::OnCalculateTotalSize() + description::Value DataProvider::GetBindingCellValue(vint row, vint column) { - vint width = GetWidth(); - if (width < 0) width = 0; - return Size(width, rowHeight * itemProvider->Count() + GetYOffset()); + return columns[column]->GetCellValue(row); } - FixedHeightItemArranger::FixedHeightItemArranger() + void DataProvider::SetBindingCellValue(vint row, vint column, const description::Value& value) { + columns[column]->SetCellValue(row, value); } + } - FixedHeightItemArranger::~FixedHeightItemArranger() - { - } +/*********************************************************************** +GuiBindableDataGrid +***********************************************************************/ - vint FixedHeightItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) - { - vint count = itemProvider->Count(); - if (count == 0) return -1; - vint groupCount = viewBounds.Height() / rowHeight; - if (groupCount == 0) groupCount = 1; - switch (key) - { - case KeyDirection::Up: - itemIndex--; - break; - case KeyDirection::Down: - itemIndex++; - break; - case KeyDirection::Home: - itemIndex = 0; - break; - case KeyDirection::End: - itemIndex = count; - break; - case KeyDirection::PageUp: - itemIndex -= groupCount; - break; - case KeyDirection::PageDown: - itemIndex += groupCount; - break; - default: - return -1; - } + GuiBindableDataGrid::GuiBindableDataGrid(theme::ThemeName themeName) + :GuiVirtualDataGrid(themeName, new list::DataProvider) + { + dataProvider = dynamic_cast(GetItemProvider()); + } - if (itemIndex < 0) return 0; - else if (itemIndex >= count) return count - 1; - else return itemIndex; - } + GuiBindableDataGrid::~GuiBindableDataGrid() + { + } + + list::ListViewDataColumns& GuiBindableDataGrid::GetDataColumns() + { + return dataProvider->GetDataColumns(); + } - GuiListControl::EnsureItemVisibleResult FixedHeightItemArranger::EnsureItemVisible(vint itemIndex) - { - if (callback) - { - if (itemIndex < 0 || itemIndex >= itemProvider->Count()) - { - return GuiListControl::EnsureItemVisibleResult::ItemNotExists; - } - bool moved = false; - while (true) - { - vint yOffset = GetYOffset(); - vint top = itemIndex*rowHeight; - vint bottom = top + rowHeight + yOffset; + list::DataColumns& GuiBindableDataGrid::GetColumns() + { + return dataProvider->GetColumns(); + } - if (viewBounds.Height() < rowHeight) - { - if (viewBounds.Top() < bottom && top < viewBounds.Bottom()) - { - break; - } - } + Ptr GuiBindableDataGrid::GetItemSource() + { + return dataProvider->GetItemSource(); + } - Point location = viewBounds.LeftTop(); - if (top < viewBounds.Top()) - { - location.y = top; - } - else if (viewBounds.Bottom() < bottom) - { - location.y = bottom - viewBounds.Height(); - } - else - { - break; - } + void GuiBindableDataGrid::SetItemSource(Ptr _itemSource) + { + dataProvider->SetItemSource(_itemSource); + } - auto oldLeftTop = viewBounds.LeftTop(); - callback->SetViewLocation(location); - moved |= viewBounds.LeftTop() != oldLeftTop; - if (viewBounds.LeftTop() != location) break; - } - return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; - } - return GuiListControl::EnsureItemVisibleResult::NotMoved; - } + Ptr GuiBindableDataGrid::GetAdditionalFilter() + { + return dataProvider->GetAdditionalFilter(); + } - Size FixedHeightItemArranger::GetAdoptedSize(Size expectedSize) - { - if (itemProvider) - { - vint yOffset = GetYOffset(); - vint y = expectedSize.y - yOffset; - vint itemCount = itemProvider->Count(); - return Size(expectedSize.x, yOffset + CalculateAdoptedSize(y, itemCount, rowHeight)); - } - return expectedSize; - } + void GuiBindableDataGrid::SetAdditionalFilter(Ptr value) + { + dataProvider->SetAdditionalFilter(value); + } -/*********************************************************************** -FixedSizeMultiColumnItemArranger -***********************************************************************/ + ItemProperty> GuiBindableDataGrid::GetLargeImageProperty() + { + return dataProvider->largeImageProperty; + } - void FixedSizeMultiColumnItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) + void GuiBindableDataGrid::SetLargeImageProperty(const ItemProperty>& value) + { + if (dataProvider->largeImageProperty != value) { - if (forMoving) - { - pim_itemSize = itemSize; - vint rows = newBounds.Top() / itemSize.y; - if (rows < 0) rows = 0; - vint cols = newBounds.Width() / itemSize.x; - if (cols < 1) cols = 1; - newStartIndex = rows * cols; - } + dataProvider->largeImageProperty = value; + dataProvider->NotifyAllItemsUpdate(); + LargeImagePropertyChanged.Execute(GetNotifyEventArguments()); } + } - void FixedSizeMultiColumnItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) - { - vint rowItems = viewBounds.Width() / itemSize.x; - if (rowItems < 1) rowItems = 1; - - vint row = index / rowItems; - vint col = index % rowItems; - bounds = Rect(Point(col * itemSize.x, row * itemSize.y), itemSize); - if (forMoving) - { - Size styleSize = callback->GetStylePreferredSize(GetStyleBounds(style)); - if (pim_itemSize.x < styleSize.x) pim_itemSize.x = styleSize.x; - if (pim_itemSize.y < styleSize.y) pim_itemSize.y = styleSize.y; - } - } + ItemProperty> GuiBindableDataGrid::GetSmallImageProperty() + { + return dataProvider->smallImageProperty; + } - bool FixedSizeMultiColumnItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + void GuiBindableDataGrid::SetSmallImageProperty(const ItemProperty>& value) + { + if (dataProvider->smallImageProperty != value) { - return bounds.Top() >= viewBounds.Bottom(); + dataProvider->smallImageProperty = value; + dataProvider->NotifyAllItemsUpdate(); + SmallImagePropertyChanged.Execute(GetNotifyEventArguments()); } + } - bool FixedSizeMultiColumnItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + description::Value GuiBindableDataGrid::GetSelectedRowValue() + { + auto pos = GetSelectedCell(); + if (pos.row == -1 || pos.column == -1) { - if (forMoving) - { - if (pim_itemSize != itemSize) - { - itemSize = pim_itemSize; - return true; - } - } - return false; + return Value(); } + return dataProvider->GetBindingValue(GetSelectedCell().row); + } - void FixedSizeMultiColumnItemArranger::CalculateRange(Size itemSize, Rect bounds, vint count, vint& start, vint& end) + description::Value GuiBindableDataGrid::GetSelectedCellValue() + { + auto pos = GetSelectedCell(); + if (pos.row == -1 || pos.column == -1) { - vint startRow = bounds.Top() / itemSize.y; - if (startRow < 0) startRow = 0; - vint endRow = (bounds.Bottom() - 1) / itemSize.y; - vint cols = bounds.Width() / itemSize.x; - if (cols < 1) cols = 1; - - start = startRow*cols; - end = (endRow + 1)*cols - 1; - if (end >= count) end = count - 1; + return Value(); } + return dataProvider->GetColumns()[pos.column]->GetCellValue(pos.row); + } + } + } +} - void FixedSizeMultiColumnItemArranger::InvalidateItemSizeCache() - { - itemSize = Size(1, 1); - } +/*********************************************************************** +.\CONTROLS\LISTCONTROLPACKAGE\GUIBINDABLELISTCONTROLS.CPP +***********************************************************************/ - Size FixedSizeMultiColumnItemArranger::OnCalculateTotalSize() - { - vint rowItems = viewBounds.Width() / itemSize.x; - if (rowItems < 1) rowItems = 1; - vint rows = itemProvider->Count() / rowItems; - if (itemProvider->Count() % rowItems) rows++; +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; + using namespace list; + using namespace tree; + using namespace reflection::description; + using namespace templates; - return Size(itemSize.x * rowItems, itemSize.y*rows); - } +/*********************************************************************** +GuiBindableTextList::ItemSource +***********************************************************************/ - FixedSizeMultiColumnItemArranger::FixedSizeMultiColumnItemArranger() + GuiBindableTextList::ItemSource::ItemSource() + { + } + + GuiBindableTextList::ItemSource::~ItemSource() + { + if (itemChangedEventHandler) { + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); } + } - FixedSizeMultiColumnItemArranger::~FixedSizeMultiColumnItemArranger() + Ptr GuiBindableTextList::ItemSource::GetItemSource() + { + return itemSource; + } + + void GuiBindableTextList::ItemSource::SetItemSource(Ptr _itemSource) + { + vint oldCount = 0; + if (itemSource) { + oldCount = itemSource->GetCount(); } - - vint FixedSizeMultiColumnItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) + if (itemChangedEventHandler) { - vint count = itemProvider->Count(); - vint columnCount = viewBounds.Width() / itemSize.x; - if (columnCount == 0) columnCount = 1; - vint rowCount = viewBounds.Height() / itemSize.y; - if (rowCount == 0) rowCount = 1; - - switch (key) - { - case KeyDirection::Up: - itemIndex -= columnCount; - break; - case KeyDirection::Down: - itemIndex += columnCount; - break; - case KeyDirection::Left: - itemIndex--; - break; - case KeyDirection::Right: - itemIndex++; - break; - case KeyDirection::Home: - itemIndex = 0; - break; - case KeyDirection::End: - itemIndex = count; - break; - case KeyDirection::PageUp: - itemIndex -= columnCount*rowCount; - break; - case KeyDirection::PageDown: - itemIndex += columnCount*rowCount; - break; - case KeyDirection::PageLeft: - itemIndex -= itemIndex%columnCount; - break; - case KeyDirection::PageRight: - itemIndex += columnCount - itemIndex%columnCount - 1; - break; - default: - return -1; - } - - if (itemIndex < 0) return 0; - else if (itemIndex >= count) return count - 1; - else return itemIndex; + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); } - GuiListControl::EnsureItemVisibleResult FixedSizeMultiColumnItemArranger::EnsureItemVisible(vint itemIndex) + itemSource = nullptr; + itemChangedEventHandler = nullptr; + + if (_itemSource) { - if (callback) + if (auto ol = _itemSource.Cast()) { - if (itemIndex < 0 || itemIndex >= itemProvider->Count()) - { - return GuiListControl::EnsureItemVisibleResult::ItemNotExists; - } - bool moved = false; - while (true) + itemSource = ol; + itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) { - vint rowHeight = itemSize.y; - vint columnCount = viewBounds.Width() / itemSize.x; - if (columnCount == 0) columnCount = 1; - vint rowIndex = itemIndex / columnCount; - - vint top = rowIndex*rowHeight; - vint bottom = top + rowHeight; + InvokeOnItemModified(start, oldCount, newCount); + }); + } + else if (auto rl = _itemSource.Cast()) + { + itemSource = rl; + } + else + { + itemSource = IValueList::Create(GetLazyList(_itemSource)); + } + } - if (viewBounds.Height() < rowHeight) - { - if (viewBounds.Top() < bottom && top < viewBounds.Bottom()) - { - break; - } - } + InvokeOnItemModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); + } - Point location = viewBounds.LeftTop(); - if (top < viewBounds.Top()) - { - location.y = top; - } - else if (viewBounds.Bottom() < bottom) - { - location.y = bottom - viewBounds.Height(); - } - else - { - break; - } + description::Value GuiBindableTextList::ItemSource::Get(vint index) + { + if (!itemSource) return Value(); + return itemSource->Get(index); + } - auto oldLeftTop = viewBounds.LeftTop(); - callback->SetViewLocation(location); - moved |= viewBounds.LeftTop() != oldLeftTop; - if (viewBounds.LeftTop() != location) break; - } - return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; - } - return GuiListControl::EnsureItemVisibleResult::NotMoved; - } + void GuiBindableTextList::ItemSource::UpdateBindingProperties() + { + InvokeOnItemModified(0, Count(), Count()); + } + + // ===================== GuiListControl::IItemProvider ===================== + + vint GuiBindableTextList::ItemSource::Count() + { + if (!itemSource) return 0; + return itemSource->GetCount(); + } - Size FixedSizeMultiColumnItemArranger::GetAdoptedSize(Size expectedSize) + WString GuiBindableTextList::ItemSource::GetTextValue(vint itemIndex) + { + if (itemSource) { - if (itemProvider) + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) { - vint count = itemProvider->Count(); - vint columnCount = viewBounds.Width() / itemSize.x; - vint rowCount = viewBounds.Height() / itemSize.y; - return Size( - CalculateAdoptedSize(expectedSize.x, columnCount, itemSize.x), - CalculateAdoptedSize(expectedSize.y, rowCount, itemSize.y) - ); + return ReadProperty(itemSource->Get(itemIndex), textProperty); } - return expectedSize; } - -/*********************************************************************** -FixedHeightMultiColumnItemArranger -***********************************************************************/ - - void FixedHeightMultiColumnItemArranger::CalculateRange(vint itemHeight, Rect bounds, vint& rows, vint& startColumn) + return L""; + } + + IDescriptable* GuiBindableTextList::ItemSource::RequestView(const WString& identifier) + { + if (identifier == ITextItemView::Identifier) { - rows = bounds.Height() / itemHeight; - if (rows < 1) rows = 1; - startColumn = bounds.Left() / bounds.Width(); + return (ITextItemView*)this; } - - void FixedHeightMultiColumnItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) + else { - pi_currentWidth = 0; - pi_totalWidth = 0; - if (forMoving) - { - pim_itemHeight = itemHeight; - vint rows = newBounds.Height() / itemHeight; - if (rows < 1) rows = 1; - vint columns = newBounds.Left() / newBounds.Width(); - newStartIndex = rows * columns; - } + return 0; } + } + + // ===================== GuiListControl::IItemBindingView ===================== - void FixedHeightMultiColumnItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) + description::Value GuiBindableTextList::ItemSource::GetBindingValue(vint itemIndex) + { + if (itemSource) { - vint rows = viewBounds.Height() / itemHeight; - if (rows < 1) rows = 1; - - vint row = index % rows; - if (row == 0) - { - pi_totalWidth += pi_currentWidth; - pi_currentWidth = 0; - } - - Size styleSize = callback->GetStylePreferredSize(GetStyleBounds(style)); - if (pi_currentWidth < styleSize.x) pi_currentWidth = styleSize.x; - bounds = Rect(Point(pi_totalWidth + viewBounds.Left(), itemHeight * row), Size(0, 0)); - if (forMoving) + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) { - if (pim_itemHeight < styleSize.y) pim_itemHeight = styleSize.y; + return itemSource->Get(itemIndex); } } - - bool FixedHeightMultiColumnItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + return Value(); + } + + // ===================== list::TextItemStyleProvider::ITextItemView ===================== + + bool GuiBindableTextList::ItemSource::GetChecked(vint itemIndex) + { + if (itemSource) { - return bounds.Left() >= viewBounds.Right(); + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) + { + return ReadProperty(itemSource->Get(itemIndex), checkedProperty); + } } - - bool FixedHeightMultiColumnItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + return false; + } + + void GuiBindableTextList::ItemSource::SetChecked(vint itemIndex, bool value) + { + if (itemSource) { - if (forMoving) + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) { - if (pim_itemHeight != itemHeight) - { - itemHeight = pim_itemHeight; - return true; - } + auto thisValue = itemSource->Get(itemIndex); + WriteProperty(thisValue, checkedProperty, value); + InvokeOnItemModified(itemIndex, 1, 1); } - return false; } + } - void FixedHeightMultiColumnItemArranger::InvalidateItemSizeCache() - { - itemHeight = 1; - } +/*********************************************************************** +GuiBindableTextList +***********************************************************************/ - Size FixedHeightMultiColumnItemArranger::OnCalculateTotalSize() - { - vint rows = viewBounds.Height() / itemHeight; - if (rows < 1) rows = 1; - vint columns = itemProvider->Count() / rows; - if (itemProvider->Count() % rows) columns += 1; - return Size(viewBounds.Width() * columns, 0); - } - - FixedHeightMultiColumnItemArranger::FixedHeightMultiColumnItemArranger() - :itemHeight(1) - { - } + GuiBindableTextList::GuiBindableTextList(theme::ThemeName themeName) + :GuiVirtualTextList(themeName, new ItemSource) + { + itemSource = dynamic_cast(GetItemProvider()); - FixedHeightMultiColumnItemArranger::~FixedHeightMultiColumnItemArranger() - { - } + TextPropertyChanged.SetAssociatedComposition(boundsComposition); + TextPropertyChanged.SetAssociatedComposition(boundsComposition); + } - vint FixedHeightMultiColumnItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) - { - vint count = itemProvider->Count(); - vint groupCount = viewBounds.Height() / itemHeight; - if (groupCount == 0) groupCount = 1; - switch (key) - { - case KeyDirection::Up: - itemIndex--; - break; - case KeyDirection::Down: - itemIndex++; - break; - case KeyDirection::Left: - itemIndex -= groupCount; - break; - case KeyDirection::Right: - itemIndex += groupCount; - break; - case KeyDirection::Home: - itemIndex = 0; - break; - case KeyDirection::End: - itemIndex = count; - break; - case KeyDirection::PageUp: - itemIndex -= itemIndex%groupCount; - break; - case KeyDirection::PageDown: - itemIndex += groupCount - itemIndex%groupCount - 1; - break; - default: - return -1; - } + GuiBindableTextList::~GuiBindableTextList() + { + } - if (itemIndex < 0) return 0; - else if (itemIndex >= count) return count - 1; - else return itemIndex; - } + Ptr GuiBindableTextList::GetItemSource() + { + return itemSource->GetItemSource(); + } - GuiListControl::EnsureItemVisibleResult FixedHeightMultiColumnItemArranger::EnsureItemVisible(vint itemIndex) - { - if (callback) - { - if (itemIndex < 0 || itemIndex >= itemProvider->Count()) - { - return GuiListControl::EnsureItemVisibleResult::ItemNotExists; - } - bool moved = false; - while (true) - { - vint rowCount = viewBounds.Height() / itemHeight; - if (rowCount == 0) rowCount = 1; - vint columnIndex = itemIndex / rowCount; - vint minIndex = startIndex; - vint maxIndex = startIndex + visibleStyles.Count() - 1; + void GuiBindableTextList::SetItemSource(Ptr _itemSource) + { + itemSource->SetItemSource(_itemSource); + } - Point location = viewBounds.LeftTop(); - if (minIndex <= itemIndex && itemIndex <= maxIndex) - { - Rect bounds = callback->GetStyleBounds(GetStyleBounds(visibleStyles[itemIndex - startIndex])); - if (0 < bounds.Bottom() && bounds.Top() < viewBounds.Width() && bounds.Width() > viewBounds.Width()) - { - break; - } - else if (bounds.Left() < 0) - { - location.x -= viewBounds.Width(); - } - else if (bounds.Right() > viewBounds.Width()) - { - location.x += viewBounds.Width(); - } - else - { - break; - } - } - else if (columnIndex < minIndex / rowCount) - { - location.x -= viewBounds.Width(); - } - else if (columnIndex >= maxIndex / rowCount) - { - location.x += viewBounds.Width(); - } - else - { - break; - } + ItemProperty GuiBindableTextList::GetTextProperty() + { + return itemSource->textProperty; + } - auto oldLeftTop = viewBounds.LeftTop(); - callback->SetViewLocation(location); - moved |= viewBounds.LeftTop() != oldLeftTop; - if (viewBounds.LeftTop() != location) break; - } - return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; - } - return GuiListControl::EnsureItemVisibleResult::NotMoved; + void GuiBindableTextList::SetTextProperty(const ItemProperty& value) + { + if (itemSource->textProperty != value) + { + itemSource->textProperty = value; + itemSource->UpdateBindingProperties(); + TextPropertyChanged.Execute(GetNotifyEventArguments()); } + } - Size FixedHeightMultiColumnItemArranger::GetAdoptedSize(Size expectedSize) + WritableItemProperty GuiBindableTextList::GetCheckedProperty() + { + return itemSource->checkedProperty; + } + + void GuiBindableTextList::SetCheckedProperty(const WritableItemProperty& value) + { + if (itemSource->checkedProperty != value) { - if (itemProvider) - { - vint count = itemProvider->Count(); - return Size(expectedSize.x, CalculateAdoptedSize(expectedSize.y, count, itemHeight)); - } - return expectedSize; + itemSource->checkedProperty = value; + itemSource->UpdateBindingProperties(); + CheckedPropertyChanged.Execute(GetNotifyEventArguments()); } } - } - } -} -/*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUILISTCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace elements; - using namespace compositions; + description::Value GuiBindableTextList::GetSelectedItem() + { + vint index = GetSelectedItemIndex(); + if (index == -1) return Value(); + return itemSource->Get(index); + } /*********************************************************************** -GuiListControl::ItemCallback +GuiBindableListView::ItemSource ***********************************************************************/ - Ptr GuiListControl::ItemCallback::InstallStyle(ItemStyle* style, vint itemIndex, compositions::GuiBoundsComposition* itemComposition) - { - auto handler = style->BoundsChanged.AttachMethod(this, &ItemCallback::OnStyleBoundsChanged); - listControl->GetContainerComposition()->AddChild(itemComposition ? itemComposition : style); - listControl->OnStyleInstalled(itemIndex, style); - return handler; - } - - GuiListControl::ItemStyle* GuiListControl::ItemCallback::UninstallStyle(vint index) + GuiBindableListView::ItemSource::ItemSource() + :columns(this) + , dataColumns(this) { - auto style = installedStyles.Keys()[index]; - auto handler = installedStyles.Values()[index]; - listControl->OnStyleUninstalled(style); - listControl->GetContainerComposition()->RemoveChild(style); - style->BoundsChanged.Detach(handler); - return style; } - void GuiListControl::ItemCallback::OnStyleBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiBindableListView::ItemSource::~ItemSource() { - listControl->InvokeOrDelayIfRendering([=]() + if (itemChangedEventHandler) { - listControl->CalculateView(); - }); + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); + } } - GuiListControl::ItemCallback::ItemCallback(GuiListControl* _listControl) - :listControl(_listControl) + Ptr GuiBindableListView::ItemSource::GetItemSource() { + return itemSource; } - GuiListControl::ItemCallback::~ItemCallback() + void GuiBindableListView::ItemSource::SetItemSource(Ptr _itemSource) { - ClearCache(); - } + vint oldCount = 0; + if (itemSource) + { + oldCount = itemSource->GetCount(); + } + if (itemChangedEventHandler) + { + auto ol = itemSource.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); + } - void GuiListControl::ItemCallback::ClearCache() - { - for (vint i = 0; i < installedStyles.Count(); i++) + itemSource = nullptr; + itemChangedEventHandler = nullptr; + + if (_itemSource) { - auto style = UninstallStyle(i); - SafeDeleteComposition(style); + if (auto ol = _itemSource.Cast()) + { + itemSource = ol; + itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) + { + InvokeOnItemModified(start, oldCount, newCount); + }); + } + else if (auto rl = _itemSource.Cast()) + { + itemSource = rl; + } + else + { + itemSource = IValueList::Create(GetLazyList(_itemSource)); + } } - installedStyles.Clear(); - } - void GuiListControl::ItemCallback::OnAttached(IItemProvider* provider) - { - itemProvider = provider; + InvokeOnItemModified(0, oldCount, itemSource ? itemSource->GetCount() : 0); } - void GuiListControl::ItemCallback::OnItemModified(vint start, vint count, vint newCount) + description::Value GuiBindableListView::ItemSource::Get(vint index) { - listControl->OnItemModified(start, count, newCount); + if (!itemSource) return Value(); + return itemSource->Get(index); } - GuiListControl::ItemStyle* GuiListControl::ItemCallback::RequestItem(vint itemIndex, compositions::GuiBoundsComposition* itemComposition) + void GuiBindableListView::ItemSource::UpdateBindingProperties() { - CHECK_ERROR(0 <= itemIndex && itemIndex < itemProvider->Count(), L"GuiListControl::ItemCallback::RequestItem(vint)#Index out of range."); - CHECK_ERROR(listControl->itemStyleProperty, L"GuiListControl::ItemCallback::RequestItem(vint)#SetItemTemplate function should be called before adding items to the list control."); - - auto style = listControl->itemStyleProperty(itemProvider->GetBindingValue(itemIndex)); - auto handler = InstallStyle(style, itemIndex, itemComposition); - installedStyles.Add(style, handler); - return style; + InvokeOnItemModified(0, Count(), Count()); } - void GuiListControl::ItemCallback::ReleaseItem(ItemStyle* style) + bool GuiBindableListView::ItemSource::NotifyUpdate(vint start, vint count) { - vint index = installedStyles.Keys().IndexOf(style); - if (index != -1) + if (!itemSource) return false; + if (start<0 || start >= itemSource->GetCount() || count <= 0 || start + count > itemSource->GetCount()) { - auto style = UninstallStyle(index); - installedStyles.Remove(style); - SafeDeleteComposition(style); + return false; + } + else + { + InvokeOnItemModified(start, count, count); + return true; } } - void GuiListControl::ItemCallback::SetViewLocation(Point value) + list::ListViewDataColumns& GuiBindableListView::ItemSource::GetDataColumns() { - Rect virtualRect(value, listControl->GetViewSize()); - Rect realRect = listControl->axis->VirtualRectToRealRect(listControl->fullSize, virtualRect); - listControl->SetViewPosition(realRect.LeftTop()); + return dataColumns; } - Size GuiListControl::ItemCallback::GetStylePreferredSize(compositions::GuiBoundsComposition* style) + list::ListViewColumns& GuiBindableListView::ItemSource::GetColumns() { - Size size = style->GetPreferredBounds().GetSize(); - return listControl->axis->RealSizeToVirtualSize(size); + return columns; } + + // ===================== list::IListViewItemProvider ===================== - void GuiListControl::ItemCallback::SetStyleAlignmentToParent(compositions::GuiBoundsComposition* style, Margin margin) + void GuiBindableListView::ItemSource::NotifyAllItemsUpdate() { - Margin newMargin = listControl->axis->VirtualMarginToRealMargin(margin); - style->SetAlignmentToParent(newMargin); + NotifyUpdate(0, Count()); } - Rect GuiListControl::ItemCallback::GetStyleBounds(compositions::GuiBoundsComposition* style) + void GuiBindableListView::ItemSource::NotifyAllColumnsUpdate() { - Rect bounds = style->GetBounds(); - return listControl->axis->RealRectToVirtualRect(listControl->GetViewSize(), bounds); + for (vint i = 0; i < columnItemViewCallbacks.Count(); i++) + { + columnItemViewCallbacks[i]->OnColumnChanged(); + } } - void GuiListControl::ItemCallback::SetStyleBounds(compositions::GuiBoundsComposition* style, Rect bounds) + // ===================== GuiListControl::IItemProvider ===================== + + vint GuiBindableListView::ItemSource::Count() { - Rect newBounds = listControl->axis->VirtualRectToRealRect(listControl->GetViewSize(), bounds); - return style->SetBounds(newBounds); + if (!itemSource) return 0; + return itemSource->GetCount(); } - compositions::GuiGraphicsComposition* GuiListControl::ItemCallback::GetContainerComposition() + WString GuiBindableListView::ItemSource::GetTextValue(vint itemIndex) { - return listControl->GetContainerComposition(); + return GetText(itemIndex); } - void GuiListControl::ItemCallback::OnTotalSizeChanged() + description::Value GuiBindableListView::ItemSource::GetBindingValue(vint itemIndex) { - listControl->CalculateView(); + if (itemSource) + { + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) + { + return itemSource->Get(itemIndex); + } + } + return Value(); } -/*********************************************************************** -GuiListControl -***********************************************************************/ - - void GuiListControl::BeforeControlTemplateUninstalled_() + IDescriptable* GuiBindableListView::ItemSource::RequestView(const WString& identifier) { + if (identifier == IListViewItemView::Identifier) + { + return (IListViewItemView*)this; + } + else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) + { + return (ListViewColumnItemArranger::IColumnItemView*)this; + } + else + { + return 0; + } } - void GuiListControl::AfterControlTemplateInstalled_(bool initialize) + // ===================== list::ListViewItemStyleProvider::IListViewItemView ===================== + + Ptr GuiBindableListView::ItemSource::GetSmallImage(vint itemIndex) { - if (itemArranger) + if (itemSource) { - itemArranger->ReloadVisibleStyles(); - CalculateView(); + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) + { + return ReadProperty(itemSource->Get(itemIndex), smallImageProperty); + } } + return nullptr; } - void GuiListControl::OnItemModified(vint start, vint count, vint newCount) + Ptr GuiBindableListView::ItemSource::GetLargeImage(vint itemIndex) { + if (itemSource) + { + if (0 <= itemIndex && itemIndex < itemSource->GetCount()) + { + return ReadProperty(itemSource->Get(itemIndex), largeImageProperty); + } + } + return nullptr; } - void GuiListControl::OnStyleInstalled(vint itemIndex, ItemStyle* style) + WString GuiBindableListView::ItemSource::GetText(vint itemIndex) { - style->SetFont(GetDisplayFont()); - style->SetContext(GetContext()); - style->SetText(itemProvider->GetTextValue(itemIndex)); - style->SetVisuallyEnabled(GetVisuallyEnabled()); - style->SetSelected(false); - style->SetIndex(itemIndex); - style->Initialize(this); - AttachItemEvents(style); + if (itemSource) + { + if (0 <= itemIndex && itemIndex < itemSource->GetCount() && columns.Count()>0) + { + return ReadProperty(itemSource->Get(itemIndex), columns[0]->GetTextProperty()); + } + } + return L""; } - void GuiListControl::OnStyleUninstalled(ItemStyle* style) + WString GuiBindableListView::ItemSource::GetSubItem(vint itemIndex, vint index) { - DetachItemEvents(style); + if (itemSource) + { + if (0 <= itemIndex && itemIndex < itemSource->GetCount() && 0 <= index && index < columns.Count() - 1) + { + return ReadProperty(itemSource->Get(itemIndex), columns[index + 1]->GetTextProperty()); + } + } + return L""; } - void GuiListControl::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) + vint GuiBindableListView::ItemSource::GetDataColumnCount() { - SetStyleAndArranger(itemStyleProperty, itemArranger); - GuiScrollView::OnRenderTargetChanged(renderTarget); + return dataColumns.Count(); } - void GuiListControl::OnBeforeReleaseGraphicsHost() + vint GuiBindableListView::ItemSource::GetDataColumn(vint index) { - GuiScrollView::OnBeforeReleaseGraphicsHost(); - SetStyleAndArranger({}, nullptr); + return dataColumns[index]; } - Size GuiListControl::QueryFullSize() + vint GuiBindableListView::ItemSource::GetColumnCount() { - Size virtualSize = itemArranger ? itemArranger->GetTotalSize() : Size(0, 0); - fullSize = axis->VirtualSizeToRealSize(virtualSize); - return fullSize; + return columns.Count(); } - void GuiListControl::UpdateView(Rect viewBounds) + WString GuiBindableListView::ItemSource::GetColumnText(vint index) { - if (itemArranger) + if (index < 0 || index >= columns.Count()) { - Rect newBounds = axis->RealRectToVirtualRect(fullSize, viewBounds); - itemArranger->OnViewChanged(newBounds); + return L""; } - } - - void GuiListControl::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - if(GetVisuallyEnabled()) + else { - SetFocus(); + return columns[index]->GetText(); } } - void GuiListControl::SetStyleAndArranger(ItemStyleProperty styleProperty, Ptr arranger) + // ===================== list::ListViewColumnItemArranger::IColumnItemView ===================== + + bool GuiBindableListView::ItemSource::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) { - if (itemArranger) + if(columnItemViewCallbacks.Contains(value)) { - itemArranger->DetachListControl(); - itemArranger->SetCallback(nullptr); - itemProvider->DetachCallback(itemArranger.Obj()); + return false; } - callback->ClearCache(); - - itemStyleProperty = styleProperty; - itemArranger = arranger; - - if (auto scroll = GetVerticalScroll()) + else { - scroll->SetPosition(0); + columnItemViewCallbacks.Add(value); + return true; } - if (auto scroll = GetHorizontalScroll()) + } + + bool GuiBindableListView::ItemSource::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) + { + vint index = columnItemViewCallbacks.IndexOf(value); + if (index == -1) { - scroll->SetPosition(0); + return false; } - - if (itemArranger) + else { - itemProvider->AttachCallback(itemArranger.Obj()); - itemArranger->SetCallback(callback.Obj()); - itemArranger->AttachListControl(this); + columnItemViewCallbacks.Remove(value); + return true; } - CalculateView(); } - void GuiListControl::UpdateDisplayFont() + vint GuiBindableListView::ItemSource::GetColumnSize(vint index) { - GuiControl::UpdateDisplayFont(); - for (auto style : visibleStyles.Keys()) + if (index < 0 || index >= columns.Count()) { - style->SetFont(GetDisplayFont()); + return 0; + } + else + { + return columns[index]->GetSize(); } } - void GuiListControl::OnClientBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiBindableListView::ItemSource::SetColumnSize(vint index, vint value) { - auto args = GetNotifyEventArguments(); - AdoptedSizeInvalidated.Execute(args); + if (index >= 0 && index < columns.Count()) + { + columns[index]->SetSize(value); + } } - void GuiListControl::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiMenu* GuiBindableListView::ItemSource::GetDropdownPopup(vint index) { - for (auto style : visibleStyles.Keys()) + if (index < 0 || index >= columns.Count()) { - style->SetVisuallyEnabled(GetVisuallyEnabled()); + return 0; + } + else + { + return columns[index]->GetDropdownPopup(); } } - void GuiListControl::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + ColumnSortingState GuiBindableListView::ItemSource::GetSortingState(vint index) { - for (auto style : visibleStyles.Keys()) + if (index < 0 || index >= columns.Count()) { - style->SetContext(GetContext()); + return ColumnSortingState::NotSorted; + } + else + { + return columns[index]->GetSortingState(); } } - void GuiListControl::OnItemMouseEvent(compositions::GuiItemMouseEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) +/*********************************************************************** +GuiBindableListView +***********************************************************************/ + + GuiBindableListView::GuiBindableListView(theme::ThemeName themeName) + :GuiVirtualListView(themeName, new ItemSource) { - if (itemArranger && GetVisuallyEnabled()) - { - vint itemIndex = itemArranger->GetVisibleIndex(style); - if (itemIndex != -1) - { - GuiItemMouseEventArgs redirectArguments; - (GuiMouseEventArgs&)redirectArguments = arguments; - redirectArguments.compositionSource = boundsComposition; - redirectArguments.eventSource = boundsComposition; - redirectArguments.itemIndex = itemIndex; - itemEvent.Execute(redirectArguments); - arguments = redirectArguments; - } - } + itemSource = dynamic_cast(GetItemProvider()); + + LargeImagePropertyChanged.SetAssociatedComposition(boundsComposition); + SmallImagePropertyChanged.SetAssociatedComposition(boundsComposition); } - void GuiListControl::OnItemNotifyEvent(compositions::GuiItemNotifyEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiBindableListView::~GuiBindableListView() { - if (itemArranger && GetVisuallyEnabled()) - { - vint itemIndex = itemArranger->GetVisibleIndex(style); - if (itemIndex != -1) - { - GuiItemEventArgs redirectArguments; - (GuiEventArgs&)redirectArguments = arguments; - redirectArguments.compositionSource = boundsComposition; - redirectArguments.eventSource = boundsComposition; - redirectArguments.itemIndex = itemIndex; - itemEvent.Execute(redirectArguments); - arguments = redirectArguments; - } - } } -#define ATTACH_ITEM_MOUSE_EVENT(EVENTNAME, ITEMEVENTNAME)\ - {\ - Func func(this, &GuiListControl::OnItemMouseEvent);\ - helper->EVENTNAME##Handler = style->GetEventReceiver()->EVENTNAME.AttachFunction(\ - Curry(Curry(func)(ITEMEVENTNAME))(style)\ - );\ - }\ - -#define ATTACH_ITEM_NOTIFY_EVENT(EVENTNAME, ITEMEVENTNAME)\ - {\ - Func func(this, &GuiListControl::OnItemNotifyEvent);\ - helper->EVENTNAME##Handler = style->GetEventReceiver()->EVENTNAME.AttachFunction(\ - Curry(Curry(func)(ITEMEVENTNAME))(style)\ - );\ - }\ + list::ListViewDataColumns& GuiBindableListView::GetDataColumns() + { + return itemSource->GetDataColumns(); + } - void GuiListControl::AttachItemEvents(ItemStyle* style) + list::ListViewColumns& GuiBindableListView::GetColumns() { - vint index=visibleStyles.Keys().IndexOf(style); - if(index==-1) - { - Ptr helper=new VisibleStyleHelper; - visibleStyles.Add(style, helper); + return itemSource->GetColumns(); + } - ATTACH_ITEM_MOUSE_EVENT(leftButtonDown, ItemLeftButtonDown); - ATTACH_ITEM_MOUSE_EVENT(leftButtonUp, ItemLeftButtonUp); - ATTACH_ITEM_MOUSE_EVENT(leftButtonDoubleClick, ItemLeftButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(middleButtonDown, ItemMiddleButtonDown); - ATTACH_ITEM_MOUSE_EVENT(middleButtonUp, ItemMiddleButtonUp); - ATTACH_ITEM_MOUSE_EVENT(middleButtonDoubleClick, ItemMiddleButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(rightButtonDown, ItemRightButtonDown); - ATTACH_ITEM_MOUSE_EVENT(rightButtonUp, ItemRightButtonUp); - ATTACH_ITEM_MOUSE_EVENT(rightButtonDoubleClick, ItemRightButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(mouseMove, ItemMouseMove); - ATTACH_ITEM_NOTIFY_EVENT(mouseEnter, ItemMouseEnter); - ATTACH_ITEM_NOTIFY_EVENT(mouseLeave, ItemMouseLeave); - } + Ptr GuiBindableListView::GetItemSource() + { + return itemSource->GetItemSource(); } -#undef ATTACH_ITEM_MOUSE_EVENT -#undef ATTACH_ITEM_NOTIFY_EVENT + void GuiBindableListView::SetItemSource(Ptr _itemSource) + { + itemSource->SetItemSource(_itemSource); + } -#define DETACH_ITEM_EVENT(EVENTNAME) style->GetEventReceiver()->EVENTNAME.Detach(helper->EVENTNAME##Handler) + ItemProperty> GuiBindableListView::GetLargeImageProperty() + { + return itemSource->largeImageProperty; + } - void GuiListControl::DetachItemEvents(ItemStyle* style) + void GuiBindableListView::SetLargeImageProperty(const ItemProperty>& value) { - vint index=visibleStyles.Keys().IndexOf(style); - if(index!=-1) + if (itemSource->largeImageProperty != value) { - Ptr helper=visibleStyles.Values().Get(index); - visibleStyles.Remove(style); - - DETACH_ITEM_EVENT(leftButtonDown); - DETACH_ITEM_EVENT(leftButtonUp); - DETACH_ITEM_EVENT(leftButtonDoubleClick); - DETACH_ITEM_EVENT(middleButtonDown); - DETACH_ITEM_EVENT(middleButtonUp); - DETACH_ITEM_EVENT(middleButtonDoubleClick); - DETACH_ITEM_EVENT(rightButtonDown); - DETACH_ITEM_EVENT(rightButtonUp); - DETACH_ITEM_EVENT(rightButtonDoubleClick); - DETACH_ITEM_EVENT(mouseMove); - DETACH_ITEM_EVENT(mouseEnter); - DETACH_ITEM_EVENT(mouseLeave); + itemSource->largeImageProperty = value; + itemSource->UpdateBindingProperties(); + LargeImagePropertyChanged.Execute(GetNotifyEventArguments()); } } -#undef DETACH_ITEM_EVENT + ItemProperty> GuiBindableListView::GetSmallImageProperty() + { + return itemSource->smallImageProperty; + } - GuiListControl::GuiListControl(theme::ThemeName themeName, IItemProvider* _itemProvider, bool acceptFocus) - :GuiScrollView(themeName) - , itemProvider(_itemProvider) + void GuiBindableListView::SetSmallImageProperty(const ItemProperty>& value) { - ContextChanged.AttachMethod(this, &GuiListControl::OnContextChanged); - VisuallyEnabledChanged.AttachMethod(this, &GuiListControl::OnVisuallyEnabledChanged); - containerComposition->BoundsChanged.AttachMethod(this, &GuiListControl::OnClientBoundsChanged); + if (itemSource->smallImageProperty != value) + { + itemSource->smallImageProperty = value; + itemSource->UpdateBindingProperties(); + SmallImagePropertyChanged.Execute(GetNotifyEventArguments()); + } + } - ItemTemplateChanged.SetAssociatedComposition(boundsComposition); - ArrangerChanged.SetAssociatedComposition(boundsComposition); - AxisChanged.SetAssociatedComposition(boundsComposition); - AdoptedSizeInvalidated.SetAssociatedComposition(boundsComposition); + description::Value GuiBindableListView::GetSelectedItem() + { + vint index = GetSelectedItemIndex(); + if (index == -1) return Value(); + return itemSource->Get(index); + } - ItemLeftButtonDown.SetAssociatedComposition(boundsComposition); - ItemLeftButtonUp.SetAssociatedComposition(boundsComposition); - ItemLeftButtonDoubleClick.SetAssociatedComposition(boundsComposition); - ItemMiddleButtonDown.SetAssociatedComposition(boundsComposition); - ItemMiddleButtonUp.SetAssociatedComposition(boundsComposition); - ItemMiddleButtonDoubleClick.SetAssociatedComposition(boundsComposition); - ItemRightButtonDown.SetAssociatedComposition(boundsComposition); - ItemRightButtonUp.SetAssociatedComposition(boundsComposition); - ItemRightButtonDoubleClick.SetAssociatedComposition(boundsComposition); - ItemMouseMove.SetAssociatedComposition(boundsComposition); - ItemMouseEnter.SetAssociatedComposition(boundsComposition); - ItemMouseLeave.SetAssociatedComposition(boundsComposition); +/*********************************************************************** +GuiBindableTreeView::ItemSourceNode +***********************************************************************/ - callback = new ItemCallback(this); - itemProvider->AttachCallback(callback.Obj()); - axis = new GuiDefaultAxis; + Ptr GuiBindableTreeView::ItemSourceNode::PrepareValueList(const description::Value& inputItemSource) + { + if (auto value = ReadProperty(inputItemSource, rootProvider->childrenProperty)) + { + if (auto ol = value.Cast()) + { + return ol; + } + else if (auto rl = value.Cast()) + { + return rl; + } + else + { + return IValueList::Create(GetLazyList(value)); + } + } + else + { + return IValueList::Create(); + } + } - if (acceptFocus) + void GuiBindableTreeView::ItemSourceNode::PrepareChildren(Ptr newValueList) + { + if (!childrenVirtualList) { - boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); - SetFocusableComposition(boundsComposition); + childrenVirtualList = newValueList; + if (auto ol = childrenVirtualList.Cast()) + { + itemChangedEventHandler = ol->ItemChanged.Add([this](vint start, vint oldCount, vint newCount) + { + callback->OnBeforeItemModified(this, start, oldCount, newCount); + children.RemoveRange(start, oldCount); + for (vint i = 0; i < newCount; i++) + { + Value value = childrenVirtualList->Get(start + i); + auto node = Ptr(new ItemSourceNode(value, this)); + children.Insert(start + i, node); + } + callback->OnAfterItemModified(this, start, oldCount, newCount); + }); + } + + vint count = childrenVirtualList->GetCount(); + for (vint i = 0; i < count; i++) + { + Value value = childrenVirtualList->Get(i); + auto node = Ptr(new ItemSourceNode(value, this)); + children.Add(node); + } } } - GuiListControl::~GuiListControl() + void GuiBindableTreeView::ItemSourceNode::UnprepareChildren() { - if(itemArranger) + if (itemChangedEventHandler) { - itemProvider->DetachCallback(itemArranger.Obj()); + auto ol = childrenVirtualList.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); + itemChangedEventHandler = nullptr; } - callback->ClearCache(); - itemStyleProperty = {}; - itemArranger = nullptr; + childrenVirtualList = nullptr; + for (auto node : children) + { + node->UnprepareChildren(); + } + children.Clear(); } - GuiListControl::IItemProvider* GuiListControl::GetItemProvider() + GuiBindableTreeView::ItemSourceNode::ItemSourceNode(const description::Value& _itemSource, ItemSourceNode* _parent) + :itemSource(_itemSource) + , rootProvider(_parent->rootProvider) + , parent(_parent) + , callback(_parent->callback) { - return itemProvider.Obj(); } - GuiListControl::ItemStyleProperty GuiListControl::GetItemTemplate() + GuiBindableTreeView::ItemSourceNode::ItemSourceNode(ItemSource* _rootProvider) + :rootProvider(_rootProvider) + , parent(nullptr) + , callback(_rootProvider) { - return itemStyleProperty; } - void GuiListControl::SetItemTemplate(ItemStyleProperty value) + GuiBindableTreeView::ItemSourceNode::~ItemSourceNode() { - SetStyleAndArranger(value, itemArranger); - ItemTemplateChanged.Execute(GetNotifyEventArguments()); + if (itemChangedEventHandler) + { + auto ol = childrenVirtualList.Cast(); + ol->ItemChanged.Remove(itemChangedEventHandler); + } } - GuiListControl::IItemArranger* GuiListControl::GetArranger() + description::Value GuiBindableTreeView::ItemSourceNode::GetItemSource() { - return itemArranger.Obj(); + return itemSource; } - void GuiListControl::SetArranger(Ptr value) + void GuiBindableTreeView::ItemSourceNode::SetItemSource(const description::Value& _itemSource) { - SetStyleAndArranger(itemStyleProperty, value); - ArrangerChanged.Execute(GetNotifyEventArguments()); + auto newVirtualList = PrepareValueList(_itemSource); + vint oldCount = childrenVirtualList ? childrenVirtualList->GetCount() : 0; + vint newCount = newVirtualList->GetCount(); + + callback->OnBeforeItemModified(this, 0, oldCount, newCount); + UnprepareChildren(); + itemSource = _itemSource; + PrepareChildren(newVirtualList); + callback->OnAfterItemModified(this, 0, oldCount, newCount); } - compositions::IGuiAxis* GuiListControl::GetAxis() + bool GuiBindableTreeView::ItemSourceNode::GetExpanding() { - return axis.Obj(); + return this == rootProvider->rootNode.Obj() ? true : expanding; } - void GuiListControl::SetAxis(Ptr value) + void GuiBindableTreeView::ItemSourceNode::SetExpanding(bool value) { - Ptr old = axis; - axis = value; - SetStyleAndArranger(itemStyleProperty, itemArranger); - AxisChanged.Execute(GetNotifyEventArguments()); + if (this != rootProvider->rootNode.Obj() && expanding != value) + { + expanding = value; + if (expanding) + { + callback->OnItemExpanded(this); + } + else + { + callback->OnItemCollapsed(this); + } + } } - bool GuiListControl::EnsureItemVisible(vint itemIndex) + vint GuiBindableTreeView::ItemSourceNode::CalculateTotalVisibleNodes() { - if (itemIndex < 0 || itemIndex >= itemProvider->Count()) + if (!GetExpanding()) { - return false; + return 1; } - if (!itemArranger) return false; - auto result = itemArranger->EnsureItemVisible(itemIndex); - if (result == EnsureItemVisibleResult::Moved) + if (!childrenVirtualList) { - if (auto host = GetBoundsComposition()->GetRelatedGraphicsHost()) - { - auto flag = GetDisposedFlag(); - host->InvokeAfterRendering([=]() - { - if (!flag->IsDisposed()) - { - EnsureItemVisible(itemIndex); - } - }, { this,0 }); - } + PrepareChildren(PrepareValueList(itemSource)); } - return result != EnsureItemVisibleResult::ItemNotExists; + vint count = 1; + for (auto child : children) + { + count += child->CalculateTotalVisibleNodes(); + } + return count; } - Size GuiListControl::GetAdoptedSize(Size expectedSize) + vint GuiBindableTreeView::ItemSourceNode::GetChildCount() { - if (itemArranger) + if (!childrenVirtualList) { - Size controlSize = boundsComposition->GetBounds().GetSize(); - Size viewSize = containerComposition->GetBounds().GetSize(); - vint x = controlSize.x - viewSize.x; - vint y = controlSize.y - viewSize.y; - - Size expectedViewSize(expectedSize.x - x, expectedSize.y - y); - if (axis) - { - expectedViewSize = axis->RealSizeToVirtualSize(expectedViewSize); - } - Size adoptedViewSize = itemArranger->GetAdoptedSize(expectedViewSize); - if (axis) - { - adoptedViewSize = axis->VirtualSizeToRealSize(adoptedViewSize); - } - return Size(adoptedViewSize.x + x, adoptedViewSize.y + y); + PrepareChildren(PrepareValueList(itemSource)); } - return expectedSize; + return children.Count(); } - - bool GuiListControl::GetDisplayItemBackground() + + Ptr GuiBindableTreeView::ItemSourceNode::GetParent() { - return displayItemBackground; + return Ptr(parent); } - void GuiListControl::SetDisplayItemBackground(bool value) + Ptr GuiBindableTreeView::ItemSourceNode::GetChild(vint index) { - if (displayItemBackground != value) + if (!childrenVirtualList) { - displayItemBackground = value; - SetStyleAndArranger(itemStyleProperty, itemArranger); + PrepareChildren(PrepareValueList(itemSource)); + } + if (0 <= index && index < children.Count()) + { + return children[index]; } + return nullptr; } /*********************************************************************** -GuiSelectableListControl +GuiBindableTreeView::ItemSource ***********************************************************************/ - void GuiSelectableListControl::NotifySelectionChanged() + GuiBindableTreeView::ItemSource::ItemSource() { - SelectionChanged.Execute(GetNotifyEventArguments()); + rootNode = Ptr(new ItemSourceNode(this)); } - void GuiSelectableListControl::OnItemModified(vint start, vint count, vint newCount) + GuiBindableTreeView::ItemSource::~ItemSource() { - GuiListControl::OnItemModified(start, count, newCount); - if(count!=newCount) - { - ClearSelection(); - } } - void GuiSelectableListControl::OnStyleInstalled(vint itemIndex, ItemStyle* style) + description::Value GuiBindableTreeView::ItemSource::GetItemSource() { - GuiListControl::OnStyleInstalled(itemIndex, style); - style->SetSelected(selectedItems.Contains(itemIndex)); + return rootNode->GetItemSource(); } - void GuiSelectableListControl::OnItemSelectionChanged(vint itemIndex, bool value) + void GuiBindableTreeView::ItemSource::SetItemSource(const description::Value& _itemSource) { - if(auto style = itemArranger->GetVisibleStyle(itemIndex)) - { - style->SetSelected(value); - } + rootNode->SetItemSource(_itemSource); } - void GuiSelectableListControl::OnItemSelectionCleared() + void GuiBindableTreeView::ItemSource::UpdateBindingProperties(bool updateChildrenProperty) { - for (auto style : visibleStyles.Keys()) + vint oldCount = rootNode->GetChildCount(); + if (updateChildrenProperty) { - style->SetSelected(false); + rootNode->UnprepareChildren(); } + vint newCount = rootNode->GetChildCount(); + OnBeforeItemModified(rootNode.Obj(), 0, oldCount, newCount); + OnAfterItemModified(rootNode.Obj(), 0, oldCount, newCount); } - void GuiSelectableListControl::OnItemLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + // ===================== tree::INodeRootProvider ===================== + + Ptr GuiBindableTreeView::ItemSource::GetRootNode() { - if(GetVisuallyEnabled()) - { - SelectItemsByClick(arguments.itemIndex, arguments.ctrl, arguments.shift, true); - } + return rootNode; } - void GuiSelectableListControl::OnItemRightButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + WString GuiBindableTreeView::ItemSource::GetTextValue(tree::INodeProvider* node) { - if(GetVisuallyEnabled()) - { - SelectItemsByClick(arguments.itemIndex, arguments.ctrl, arguments.shift, false); - } + return ReadProperty(GetBindingValue(node), textProperty); } - void GuiSelectableListControl::NormalizeSelectedItemIndexStartEnd() + description::Value GuiBindableTreeView::ItemSource::GetBindingValue(tree::INodeProvider* node) { - if (selectedItemIndexStart < 0 || selectedItemIndexStart >= itemProvider->Count()) - { - selectedItemIndexStart = 0; - } - if (selectedItemIndexEnd < 0 || selectedItemIndexEnd >= itemProvider->Count()) + if (auto itemSourceNode = dynamic_cast(node)) { - selectedItemIndexEnd = 0; + return itemSourceNode->GetItemSource(); } + return Value(); } - void GuiSelectableListControl::SetMultipleItemsSelectedSilently(vint start, vint end, bool selected) + IDescriptable* GuiBindableTreeView::ItemSource::RequestView(const WString& identifier) { - if(start>end) + if(identifier==ITreeViewItemView::Identifier) { - vint temp=start; - start=end; - end=temp; + return (ITreeViewItemView*)this; } - vint count=itemProvider->Count(); - if(start<0) start=0; - if(end>=count) end=count-1; - for(vint i=start;i<=end;i++) + else { - if(selected) - { - if(!selectedItems.Contains(i)) - { - selectedItems.Add(i); - } - } - else - { - selectedItems.Remove(i); - } - OnItemSelectionChanged(i, selected); + return 0; } } - void GuiSelectableListControl::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) - { - if(GetVisuallyEnabled()) - { - if(SelectItemsByKey(arguments.code, arguments.ctrl, arguments.shift)) - { - arguments.handled=true; - } - } - } + // ===================== tree::ITreeViewItemView ===================== - GuiSelectableListControl::GuiSelectableListControl(theme::ThemeName themeName, IItemProvider* _itemProvider) - :GuiListControl(themeName, _itemProvider, true) - , multiSelect(false) - , selectedItemIndexStart(-1) - , selectedItemIndexEnd(-1) + Ptr GuiBindableTreeView::ItemSource::GetNodeImage(tree::INodeProvider* node) { - SelectionChanged.SetAssociatedComposition(boundsComposition); - ItemLeftButtonDown.AttachMethod(this, &GuiSelectableListControl::OnItemLeftButtonDown); - ItemRightButtonDown.AttachMethod(this, &GuiSelectableListControl::OnItemRightButtonDown); - if (focusableComposition) + if (auto itemSourceNode = dynamic_cast(node)) { - focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiSelectableListControl::OnKeyDown); + return ReadProperty(itemSourceNode->GetItemSource(), imageProperty); } + return nullptr; } - GuiSelectableListControl::~GuiSelectableListControl() +/*********************************************************************** +GuiBindableTreeView +***********************************************************************/ + + GuiBindableTreeView::GuiBindableTreeView(theme::ThemeName themeName) + :GuiVirtualTreeView(themeName, Ptr(new ItemSource)) { + itemSource = dynamic_cast(GetNodeRootProvider()); + + TextPropertyChanged.SetAssociatedComposition(boundsComposition); + ImagePropertyChanged.SetAssociatedComposition(boundsComposition); + ChildrenPropertyChanged.SetAssociatedComposition(boundsComposition); } - bool GuiSelectableListControl::GetMultiSelect() + GuiBindableTreeView::~GuiBindableTreeView() { - return multiSelect; } - void GuiSelectableListControl::SetMultiSelect(bool value) + description::Value GuiBindableTreeView::GetItemSource() { - if (multiSelect != value) - { - multiSelect = value; - ClearSelection(); - } + return itemSource->GetItemSource(); } - const collections::SortedList& GuiSelectableListControl::GetSelectedItems() + void GuiBindableTreeView::SetItemSource(description::Value _itemSource) { - return selectedItems; + itemSource->SetItemSource(_itemSource); } - vint GuiSelectableListControl::GetSelectedItemIndex() + ItemProperty GuiBindableTreeView::GetTextProperty() { - return selectedItems.Count() == 1 ? selectedItems[0] : -1; + return itemSource->textProperty; } - WString GuiSelectableListControl::GetSelectedItemText() + void GuiBindableTreeView::SetTextProperty(const ItemProperty& value) { - vint index = GetSelectedItemIndex(); - if (index != -1) + if (itemSource->textProperty != value) { - return itemProvider->GetTextValue(index); + itemSource->textProperty = value; + itemSource->UpdateBindingProperties(false); + TextPropertyChanged.Execute(GetNotifyEventArguments()); } - return L""; } - bool GuiSelectableListControl::GetSelected(vint itemIndex) + ItemProperty> GuiBindableTreeView::GetImageProperty() { - return selectedItems.Contains(itemIndex); + return itemSource->imageProperty; } - void GuiSelectableListControl::SetSelected(vint itemIndex, bool value) - { - if(value) - { - if(!selectedItems.Contains(itemIndex)) - { - if(!multiSelect) - { - selectedItems.Clear(); - OnItemSelectionCleared(); - } - selectedItems.Add(itemIndex); - OnItemSelectionChanged(itemIndex, value); - NotifySelectionChanged(); - } - } - else - { - if(selectedItems.Remove(itemIndex)) - { - OnItemSelectionChanged(itemIndex, value); - NotifySelectionChanged(); - } - } - } - - bool GuiSelectableListControl::SelectItemsByClick(vint itemIndex, bool ctrl, bool shift, bool leftButton) + void GuiBindableTreeView::SetImageProperty(const ItemProperty>& value) { - NormalizeSelectedItemIndexStartEnd(); - if (0 <= itemIndex && itemIndex < itemProvider->Count()) + if (itemSource->imageProperty != value) { - if (!leftButton) - { - if (selectedItems.Contains(itemIndex)) - { - return true; - } - } - if (!multiSelect) - { - shift = false; - ctrl = false; - } - - if (shift) - { - if (!ctrl) - { - selectedItems.Clear(); - OnItemSelectionCleared(); - } - selectedItemIndexEnd = itemIndex; - SetMultipleItemsSelectedSilently(selectedItemIndexStart, selectedItemIndexEnd, true); - NotifySelectionChanged(); - } - else - { - if (ctrl) - { - vint index = selectedItems.IndexOf(itemIndex); - if (index == -1) - { - selectedItems.Add(itemIndex); - } - else - { - selectedItems.RemoveAt(index); - } - OnItemSelectionChanged(itemIndex, index == -1); - NotifySelectionChanged(); - } - else - { - selectedItems.Clear(); - OnItemSelectionCleared(); - selectedItems.Add(itemIndex); - OnItemSelectionChanged(itemIndex, true); - NotifySelectionChanged(); - } - selectedItemIndexStart = itemIndex; - selectedItemIndexEnd = itemIndex; - } - return true; + itemSource->imageProperty = value; + itemSource->UpdateBindingProperties(false); + ImagePropertyChanged.Execute(GetNotifyEventArguments()); } - return false; } - bool GuiSelectableListControl::SelectItemsByKey(VKEY code, bool ctrl, bool shift) + ItemProperty> GuiBindableTreeView::GetChildrenProperty() { - if (!GetArranger()) return false; - - NormalizeSelectedItemIndexStartEnd(); - KeyDirection keyDirection = KeyDirection::Up; - switch (code) - { - case VKEY::KEY_UP: - keyDirection = KeyDirection::Up; - break; - case VKEY::KEY_DOWN: - keyDirection = KeyDirection::Down; - break; - case VKEY::KEY_LEFT: - keyDirection = KeyDirection::Left; - break; - case VKEY::KEY_RIGHT: - keyDirection = KeyDirection::Right; - break; - case VKEY::KEY_HOME: - keyDirection = KeyDirection::Home; - break; - case VKEY::KEY_END: - keyDirection = KeyDirection::End; - break; - case VKEY::KEY_PRIOR: - keyDirection = KeyDirection::PageUp; - break; - case VKEY::KEY_NEXT: - keyDirection = KeyDirection::PageDown; - break; - default: - return false; - } - - if (GetAxis()) - { - keyDirection = GetAxis()->RealKeyDirectionToVirtualKeyDirection(keyDirection); - } - vint itemIndex = GetArranger()->FindItem(selectedItemIndexEnd, keyDirection); - if (SelectItemsByClick(itemIndex, ctrl, shift, true)) - { - return EnsureItemVisible(itemIndex); - } - else - { - return false; - } + return itemSource->childrenProperty; } - void GuiSelectableListControl::ClearSelection() + void GuiBindableTreeView::SetChildrenProperty(const ItemProperty>& value) { - if(selectedItems.Count()>0) + if (itemSource->childrenProperty != value) { - selectedItems.Clear(); - OnItemSelectionCleared(); - NotifySelectionChanged(); + itemSource->childrenProperty = value; + itemSource->UpdateBindingProperties(true); + ChildrenPropertyChanged.Execute(GetNotifyEventArguments()); } } - namespace list + description::Value GuiBindableTreeView::GetSelectedItem() { + vint index = GetSelectedItemIndex(); + if (index == -1) return Value(); -/*********************************************************************** -ItemProviderBase -***********************************************************************/ - - void ItemProviderBase::InvokeOnItemModified(vint start, vint count, vint newCount) - { - CHECK_ERROR(!callingOnItemModified, L"ItemProviderBase::InvokeOnItemModified(vint, vint, vint)#Canning modify the observable data source during its item modified event, which will cause this event to be executed recursively."); - callingOnItemModified = true; - for (vint i = 0; i < callbacks.Count(); i++) - { - callbacks[i]->OnItemModified(start, count, newCount); - } - callingOnItemModified = false; - } - - ItemProviderBase::ItemProviderBase() - { - } - - ItemProviderBase::~ItemProviderBase() - { - for(vint i=0;iOnAttached(0); - } - } - - bool ItemProviderBase::AttachCallback(GuiListControl::IItemProviderCallback* value) - { - if(callbacks.Contains(value)) - { - return false; - } - else - { - callbacks.Add(value); - value->OnAttached(this); - return true; - } - } - - bool ItemProviderBase::DetachCallback(GuiListControl::IItemProviderCallback* value) + Value result; + if (auto node = nodeItemView->RequestNode(index)) { - vint index=callbacks.IndexOf(value); - if(index==-1) - { - return false; - } - else + if (auto itemSourceNode = node.Cast()) { - value->OnAttached(0); - callbacks.Remove(value); - return true; + result = itemSourceNode->GetItemSource(); } } - - void ItemProviderBase::PushEditing() - { - editingCounter++; - } - - bool ItemProviderBase::PopEditing() - { - if (editingCounter == 0)return false; - editingCounter--; - return true; - } - - bool ItemProviderBase::IsEditing() - { - return editingCounter > 0; - } + return result; } } } } + /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUILISTVIEWCONTROLS.CPP +.\CONTROLS\LISTCONTROLPACKAGE\GUICOMBOCONTROLS.CPP ***********************************************************************/ namespace vl @@ -10423,1577 +9827,1556 @@ namespace vl { namespace controls { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; /*********************************************************************** -GuiListViewColumnHeader +GuiComboBoxBase ***********************************************************************/ - void GuiListViewColumnHeader::BeforeControlTemplateUninstalled_() + void GuiComboBoxBase::BeforeControlTemplateUninstalled_() { } - void GuiListViewColumnHeader::AfterControlTemplateInstalled_(bool initialize) - { - TypedControlTemplateObject(true)->SetSortingState(columnSortingState); - } - - GuiListViewColumnHeader::GuiListViewColumnHeader(theme::ThemeName themeName) - :GuiMenuButton(themeName) + void GuiComboBoxBase::AfterControlTemplateInstalled_(bool initialize) { } - GuiListViewColumnHeader::~GuiListViewColumnHeader() + IGuiMenuService::Direction GuiComboBoxBase::GetSubMenuDirection() { + return IGuiMenuService::Horizontal; } - bool GuiListViewColumnHeader::IsAltAvailable() + void GuiComboBoxBase::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return false; + Size size=GetPreferredMenuClientSize(); + size.x=boundsComposition->GetBounds().Width(); + SetPreferredMenuClientSize(size); } - ColumnSortingState GuiListViewColumnHeader::GetColumnSortingState() + GuiComboBoxBase::GuiComboBoxBase(theme::ThemeName themeName) + :GuiMenuButton(themeName) { - return columnSortingState; + CreateSubMenu(); + SetCascadeAction(false); + + boundsComposition->BoundsChanged.AttachMethod(this, &GuiComboBoxBase::OnBoundsChanged); } - void GuiListViewColumnHeader::SetColumnSortingState(ColumnSortingState value) + GuiComboBoxBase::~GuiComboBoxBase() { - if (columnSortingState != value) - { - columnSortingState = value; - TypedControlTemplateObject(true)->SetSortingState(columnSortingState); - } } /*********************************************************************** -GuiListViewBase +GuiComboButton ***********************************************************************/ - void GuiListViewBase::BeforeControlTemplateUninstalled_() + GuiComboButton::GuiComboButton(theme::ThemeName themeName, GuiControl* _dropdownControl) + :GuiComboBoxBase(themeName) + , dropdownControl(_dropdownControl) { + dropdownControl->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + GetSubMenu()->GetContainerComposition()->AddChild(dropdownControl->GetBoundsComposition()); } - void GuiListViewBase::AfterControlTemplateInstalled_(bool initialize) + GuiComboButton::~GuiComboButton() { } - GuiListViewBase::GuiListViewBase(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) - :GuiSelectableListControl(themeName, _itemProvider) +/*********************************************************************** +GuiComboBoxListControl +***********************************************************************/ + + void GuiComboBoxListControl::UpdateDisplayFont() { - ColumnClicked.SetAssociatedComposition(boundsComposition); + GuiControl::UpdateDisplayFont(); + if (itemStyleController) + { + itemStyleController->SetFont(GetDisplayFont()); + } + AdoptSubMenuSize(); } - GuiListViewBase::~GuiListViewBase() + void GuiComboBoxListControl::BeforeControlTemplateUninstalled() { + GuiComboBoxBase::BeforeControlTemplateUninstalled(); } - namespace list + void GuiComboBoxListControl::AfterControlTemplateInstalled(bool initialize) { + GuiComboBoxBase::AfterControlTemplateInstalled(initialize); + TypedControlTemplateObject(true)->SetTextVisible(!itemStyleProperty); + } - const wchar_t* const IListViewItemView::Identifier = L"vl::presentation::controls::list::IListViewItemView"; - -/*********************************************************************** -ListViewColumnItemArranger::ColumnItemViewCallback -***********************************************************************/ - - ListViewColumnItemArranger::ColumnItemViewCallback::ColumnItemViewCallback(ListViewColumnItemArranger* _arranger) - :arranger(_arranger) - { - } - - ListViewColumnItemArranger::ColumnItemViewCallback::~ColumnItemViewCallback() + void GuiComboBoxListControl::RemoveStyleController() + { + if (itemStyleController) { + SafeDeleteComposition(itemStyleController); + itemStyleController = nullptr; } + } - void ListViewColumnItemArranger::ColumnItemViewCallback::OnColumnChanged() + void GuiComboBoxListControl::InstallStyleController(vint itemIndex) + { + if (itemStyleProperty) { - arranger->RebuildColumns(); - for (auto style : arranger->visibleStyles) + if (itemIndex != -1) { - if (auto callback = dynamic_cast(style.key)) + auto item = containedListControl->GetItemProvider()->GetBindingValue(itemIndex); + if (!item.IsNull()) { - callback->OnColumnChanged(); + if (auto style = itemStyleProperty(item)) + { + itemStyleController = style; + itemStyleController->SetText(GetText()); + itemStyleController->SetFont(GetDisplayFont()); + itemStyleController->SetContext(GetContext()); + itemStyleController->SetVisuallyEnabled(GetVisuallyEnabled()); + itemStyleController->SetAlignmentToParent(Margin(0, 0, 0, 0)); + containerComposition->AddChild(itemStyleController); + } } } } - -/*********************************************************************** -ListViewColumnItemArranger -***********************************************************************/ - - const wchar_t* const ListViewColumnItemArranger::IColumnItemView::Identifier = L"vl::presentation::controls::list::ListViewColumnItemArranger::IColumnItemView"; + } - void ListViewColumnItemArranger::ColumnClicked(vint index, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiComboBoxListControl::DisplaySelectedContent(vint itemIndex) + { + if (itemIndex == -1) { - GuiItemEventArgs args(listView->ColumnClicked.GetAssociatedComposition()); - args.itemIndex=index; - listView->ColumnClicked.Execute(args); + SetText(L""); } - - void ListViewColumnItemArranger::ColumnBoundsChanged(vint index, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + else { - GuiBoundsComposition* buttonBounds=columnHeaderButtons[index]->GetBoundsComposition(); - vint size=buttonBounds->GetBounds().Width(); - if(size>columnItemView->GetColumnSize(index)) - { - columnItemView->SetColumnSize(index, size); - } + WString text = containedListControl->GetItemProvider()->GetTextValue(itemIndex); + SetText(text); } - void ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + RemoveStyleController(); + InstallStyleController(itemIndex); + if (selectedIndex != itemIndex) { - if(listView->GetVisuallyEnabled()) - { - arguments.handled=true; - splitterDragging=true; - splitterLatestX=arguments.x; - } + selectedIndex = itemIndex; + SelectedIndexChanged.Execute(GetNotifyEventArguments()); } + } - void ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + void GuiComboBoxListControl::AdoptSubMenuSize() + { + if (auto subMenu = GetSubMenu()) { - if(listView->GetVisuallyEnabled()) - { - arguments.handled=true; - splitterDragging=false; - splitterLatestX=0; - } - } + Size expectedSize(0, GetDisplayFont().size * 20); + Size adoptedSize = containedListControl->GetAdoptedSize(expectedSize); - void ListViewColumnItemArranger::ColumnHeaderSplitterMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - if(splitterDragging) + Size clientSize = GetPreferredMenuClientSize(); + vint height = adoptedSize.y + subMenu->GetClientSize().y - containedListControl->GetBoundsComposition()->GetBounds().Height(); + if (clientSize.y != height) { - vint offset=arguments.x-splitterLatestX; - vint index=columnHeaderSplitters.IndexOf(dynamic_cast(sender)); - if(index!=-1) - { - GuiBoundsComposition* buttonBounds=columnHeaderButtons[index]->GetBoundsComposition(); - Rect bounds=buttonBounds->GetBounds(); - Rect newBounds(bounds.LeftTop(), Size(bounds.Width()+offset, bounds.Height())); - buttonBounds->SetBounds(newBounds); - - vint finalSize=buttonBounds->GetBounds().Width(); - columnItemView->SetColumnSize(index, finalSize); - } + clientSize.y = height; + SetPreferredMenuClientSize(clientSize); } } + } - void ListViewColumnItemArranger::RearrangeItemBounds() + void GuiComboBoxListControl::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (itemStyleController) { - FixedHeightItemArranger::RearrangeItemBounds(); - vint count = columnHeaders->GetParent()->Children().Count(); - columnHeaders->GetParent()->MoveChild(columnHeaders, count - 1); - columnHeaders->SetBounds(Rect(Point(-viewBounds.Left(), 0), Size(0, 0))); + itemStyleController->SetText(GetText()); } + } - vint ListViewColumnItemArranger::GetWidth() + void GuiComboBoxListControl::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (itemStyleController) { - vint width=columnHeaders->GetBounds().Width()-SplitterWidth; - if(widthSetContext(GetContext()); } + AdoptSubMenuSize(); + } - vint ListViewColumnItemArranger::GetYOffset() + void GuiComboBoxListControl::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (itemStyleController) { - return columnHeaders->GetBounds().Height(); + itemStyleController->SetVisuallyEnabled(GetVisuallyEnabled()); } + } - Size ListViewColumnItemArranger::OnCalculateTotalSize() - { - Size size=FixedHeightItemArranger::OnCalculateTotalSize(); - size.x+=SplitterWidth; - return size; - } + void GuiComboBoxListControl::OnAfterSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + containedListControl->SelectItemsByClick(selectedIndex, false, false, true); + containedListControl->EnsureItemVisible(selectedIndex); + } - void ListViewColumnItemArranger::DeleteColumnButtons() + void GuiComboBoxListControl::OnListControlAdoptedSizeInvalidated(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + AdoptSubMenuSize(); + } + + void GuiComboBoxListControl::OnListControlBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + auto flag = GetDisposedFlag(); + GetApplication()->InvokeLambdaInMainThread(GetRelatedControlHost(), [=]() { - for(vint i=columnHeaders->GetStackItems().Count()-1;i>=0;i--) + if (!flag->IsDisposed()) { - GuiStackItemComposition* item=columnHeaders->GetStackItems().Get(i); - columnHeaders->RemoveChild(item); + AdoptSubMenuSize(); + } + }); + } - GuiControl* button=item->Children().Get(0)->GetAssociatedControl(); - if(button) - { - item->RemoveChild(button->GetBoundsComposition()); - delete button; - } - delete item; + void GuiComboBoxListControl::OnListControlItemMouseDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + { + DisplaySelectedContent(containedListControl->GetSelectedItemIndex()); + GetSubMenu()->Hide(); + } + + void GuiComboBoxListControl::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (!arguments.autoRepeatKeyDown) + { + switch (arguments.code) + { + case VKEY::KEY_RETURN: + DisplaySelectedContent(containedListControl->GetSelectedItemIndex()); + arguments.handled = true; + case VKEY::KEY_ESCAPE: + GetSubMenu()->Hide(); + arguments.handled = true; + break; + default: + containedListControl->SelectItemsByKey(arguments.code, arguments.ctrl, arguments.shift); } - columnHeaderButtons.Clear(); - columnHeaderSplitters.Clear(); } + } - void ListViewColumnItemArranger::RebuildColumns() + void GuiComboBoxListControl::OnAttached(GuiListControl::IItemProvider* provider) + { + } + + void GuiComboBoxListControl::OnItemModified(vint start, vint count, vint newCount) + { + if (count == newCount) { - if (columnItemView && columnHeaderButtons.Count() == listViewItemView->GetColumnCount()) + if (start <= selectedIndex && selectedIndex < start + count) { - for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) - { - GuiListViewColumnHeader* button = columnHeaderButtons[i]; - button->SetText(listViewItemView->GetColumnText(i)); - button->SetSubMenu(columnItemView->GetDropdownPopup(i), false); - button->SetColumnSortingState(columnItemView->GetSortingState(i)); - button->GetBoundsComposition()->SetBounds(Rect(Point(0, 0), Size(columnItemView->GetColumnSize(i), 0))); - } + DisplaySelectedContent(selectedIndex); } - else - { - DeleteColumnButtons(); - if (columnItemView && listViewItemView) - { - for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) - { - GuiBoundsComposition* splitterComposition = new GuiBoundsComposition; - splitterComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - splitterComposition->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeWE)); - splitterComposition->SetAlignmentToParent(Margin(0, 0, -1, 0)); - splitterComposition->SetPreferredMinSize(Size(SplitterWidth, 0)); - columnHeaderSplitters.Add(splitterComposition); + } + else + { + DisplaySelectedContent(-1); + } + } - splitterComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonDown); - splitterComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonUp); - splitterComposition->GetEventReceiver()->mouseMove.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterMouseMove); - } - for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) - { - GuiListViewColumnHeader* button = new GuiListViewColumnHeader(theme::ThemeName::Unknown); - button->SetAutoFocus(false); - button->SetControlTemplate(listView->TypedControlTemplateObject(true)->GetColumnHeaderTemplate()); - button->SetText(listViewItemView->GetColumnText(i)); - button->SetSubMenu(columnItemView->GetDropdownPopup(i), false); - button->SetColumnSortingState(columnItemView->GetSortingState(i)); - button->GetBoundsComposition()->SetBounds(Rect(Point(0, 0), Size(columnItemView->GetColumnSize(i), 0))); - button->Clicked.AttachLambda(Curry(Func(this, &ListViewColumnItemArranger::ColumnClicked))(i)); - button->GetBoundsComposition()->BoundsChanged.AttachLambda(Curry(Func(this, &ListViewColumnItemArranger::ColumnBoundsChanged))(i)); - columnHeaderButtons.Add(button); - if (i > 0) - { - button->GetContainerComposition()->AddChild(columnHeaderSplitters[i - 1]); - } + GuiComboBoxListControl::GuiComboBoxListControl(theme::ThemeName themeName, GuiSelectableListControl* _containedListControl) + :GuiComboBoxBase(themeName) + , containedListControl(_containedListControl) + { + TextChanged.AttachMethod(this, &GuiComboBoxListControl::OnTextChanged); + ContextChanged.AttachMethod(this, &GuiComboBoxListControl::OnContextChanged); + VisuallyEnabledChanged.AttachMethod(this, &GuiComboBoxListControl::OnVisuallyEnabledChanged); + AfterSubMenuOpening.AttachMethod(this, &GuiComboBoxListControl::OnAfterSubMenuOpening); - GuiStackItemComposition* item = new GuiStackItemComposition; - item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - item->AddChild(button->GetBoundsComposition()); - columnHeaders->AddChild(item); - } - if (listViewItemView->GetColumnCount() > 0) - { - GuiBoundsComposition* splitterComposition = columnHeaderSplitters[listViewItemView->GetColumnCount() - 1]; + containedListControl->GetItemProvider()->AttachCallback(this); + containedListControl->SetMultiSelect(false); + containedListControl->AdoptedSizeInvalidated.AttachMethod(this, &GuiComboBoxListControl::OnListControlAdoptedSizeInvalidated); + containedListControl->ItemLeftButtonDown.AttachMethod(this, &GuiComboBoxListControl::OnListControlItemMouseDown); + containedListControl->ItemRightButtonDown.AttachMethod(this, &GuiComboBoxListControl::OnListControlItemMouseDown); + boundsChangedHandler = containedListControl->GetBoundsComposition()->BoundsChanged.AttachMethod(this, &GuiComboBoxListControl::OnListControlBoundsChanged); + boundsComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiComboBoxListControl::OnKeyDown); - GuiStackItemComposition* item = new GuiStackItemComposition; - item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - item->AddChild(splitterComposition); - columnHeaders->AddChild(item); - } - } - } - callback->OnTotalSizeChanged(); - } + auto itemProvider = containedListControl->GetItemProvider(); - ListViewColumnItemArranger::ListViewColumnItemArranger() - { - columnHeaders = new GuiStackComposition; - columnHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - columnItemViewCallback = new ColumnItemViewCallback(this); - } + SelectedIndexChanged.SetAssociatedComposition(boundsComposition); - ListViewColumnItemArranger::~ListViewColumnItemArranger() - { - if(!columnHeaders->GetParent()) - { - DeleteColumnButtons(); - delete columnHeaders; - } - } + containedListControl->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + GetSubMenu()->GetContainerComposition()->AddChild(containedListControl->GetBoundsComposition()); + SetFont(GetFont()); + } - void ListViewColumnItemArranger::AttachListControl(GuiListControl* value) + GuiComboBoxListControl::~GuiComboBoxListControl() + { + containedListControl->GetItemProvider()->DetachCallback(this); + containedListControl->GetBoundsComposition()->BoundsChanged.Detach(boundsChangedHandler); + boundsChangedHandler = nullptr; + } + + GuiSelectableListControl* GuiComboBoxListControl::GetContainedListControl() + { + return containedListControl; + } + + GuiComboBoxListControl::ItemStyleProperty GuiComboBoxListControl::GetItemTemplate() + { + return itemStyleProperty; + } + + void GuiComboBoxListControl::SetItemTemplate(ItemStyleProperty value) + { + RemoveStyleController(); + itemStyleProperty = value; + TypedControlTemplateObject(true)->SetTextVisible(!itemStyleProperty); + InstallStyleController(selectedIndex); + ItemTemplateChanged.Execute(GetNotifyEventArguments()); + } + + vint GuiComboBoxListControl::GetSelectedIndex() + { + return selectedIndex; + } + + void GuiComboBoxListControl::SetSelectedIndex(vint value) + { + if (selectedIndex != value) { - FixedHeightItemArranger::AttachListControl(value); - listView = dynamic_cast(value); - if (listView) + if (0 <= value && value < containedListControl->GetItemProvider()->Count()) { - listViewItemView = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier)); - columnItemView = dynamic_cast(listView->GetItemProvider()->RequestView(IColumnItemView::Identifier)); - listView->GetContainerComposition()->AddChild(columnHeaders); - if (columnItemView) - { - columnItemView->AttachCallback(columnItemViewCallback.Obj()); - RebuildColumns(); - } + DisplaySelectedContent(value); } } + GetSubMenu()->Hide(); + } - void ListViewColumnItemArranger::DetachListControl() + description::Value GuiComboBoxListControl::GetSelectedItem() + { + if (selectedIndex != -1) { - if (listView) - { - if (columnItemView) - { - columnItemView->DetachCallback(columnItemViewCallback.Obj()); - columnItemView = nullptr; - } - listViewItemView = nullptr; - listView->GetContainerComposition()->RemoveChild(columnHeaders); - listView = nullptr; - } - FixedHeightItemArranger::DetachListControl(); + return containedListControl->GetItemProvider()->GetBindingValue(selectedIndex); } + return description::Value(); + } + + GuiListControl::IItemProvider* GuiComboBoxListControl::GetItemProvider() + { + return containedListControl->GetItemProvider(); + } + } + } +} + /*********************************************************************** -ListViewSubItems +.\CONTROLS\LISTCONTROLPACKAGE\GUIDATAGRIDCONTROLS.CPP ***********************************************************************/ - void ListViewSubItems::NotifyUpdateInternal(vint start, vint count, vint newCount) - { - owner->NotifyUpdate(); - } +namespace vl +{ + namespace presentation + { + namespace controls + { + namespace list + { + using namespace compositions; + using namespace collections; + using namespace description; + using namespace templates; + + const wchar_t* const IDataGridView::Identifier = L"vl::presentation::controls::list::IDataGridView"; /*********************************************************************** -ListViewItem +DefaultDataGridItemTemplate ***********************************************************************/ - void ListViewItem::NotifyUpdate() + IDataVisualizerFactory* DefaultDataGridItemTemplate::GetDataVisualizerFactory(vint row, vint column) { - if (owner) + if (auto dataGrid = dynamic_cast(listControl)) { - vint index = owner->IndexOf(this); - owner->NotifyUpdateInternal(index, 1, 1); - } - } - - ListViewItem::ListViewItem() - :owner(0) - { - subItems.owner = this; - } + if (auto factory = dataGrid->dataGridView->GetCellDataVisualizerFactory(row, column)) + { + return factory; + } - ListViewSubItems& ListViewItem::GetSubItems() - { - return subItems; - } + if (column == 0) + { + return dataGrid->defaultMainColumnVisualizerFactory.Obj(); + } + else + { + return dataGrid->defaultSubColumnVisualizerFactory.Obj(); + } - Ptr ListViewItem::GetSmallImage() - { - return smallImage; - } + } - void ListViewItem::SetSmallImage(Ptr value) - { - smallImage = value; - NotifyUpdate(); + return nullptr; } - Ptr ListViewItem::GetLargeImage() - { - return largeImage; - } - - void ListViewItem::SetLargeImage(Ptr value) + IDataEditorFactory* DefaultDataGridItemTemplate::GetDataEditorFactory(vint row, vint column) { - largeImage = value; - NotifyUpdate(); + if (auto dataGrid = dynamic_cast(listControl)) + { + return dataGrid->dataGridView->GetCellDataEditorFactory(row, column); + } + return nullptr; } - const WString& ListViewItem::GetText() + vint DefaultDataGridItemTemplate::GetCellColumnIndex(compositions::GuiGraphicsComposition* composition) { - return text; + for (vint i = 0; i < textTable->GetColumns(); i++) + { + auto cell = textTable->GetSitedCell(0, i); + if (composition == cell) + { + return i; + } + } + return -1; } - void ListViewItem::SetText(const WString& value) + bool DefaultDataGridItemTemplate::IsInEditor(GuiVirtualDataGrid* dataGrid, compositions::GuiMouseEventArgs& arguments) { - text = value; - NotifyUpdate(); - } + if (!dataGrid->currentEditor) return false; + auto editorComposition = dataGrid->currentEditor->GetTemplate(); + auto currentComposition = arguments.eventSource; - description::Value ListViewItem::GetTag() - { - return tag; - } + while (currentComposition) + { + if (currentComposition == editorComposition) + { + return true; + } + else if (currentComposition == this) + { + break; + } + else + { + currentComposition = currentComposition->GetParent(); + } + } - void ListViewItem::SetTag(const description::Value& value) - { - tag = value; - NotifyUpdate(); + return false; } -/*********************************************************************** -ListViewColumn -***********************************************************************/ - - void ListViewColumn::NotifyUpdate(bool affectItem) + void DefaultDataGridItemTemplate::OnCellButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if (owner) + if (auto dataGrid = dynamic_cast(listControl)) { - vint index = owner->IndexOf(this); - owner->NotifyColumnUpdated(index, affectItem); + if (IsInEditor(dataGrid, arguments)) + { + arguments.handled = true; + } } } - ListViewColumn::ListViewColumn(const WString& _text, vint _size) - :text(_text) - ,size(_size) + void DefaultDataGridItemTemplate::OnCellLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { + if (auto dataGrid = dynamic_cast(listControl)) + { + if (IsInEditor(dataGrid, arguments)) + { + arguments.handled = true; + } + else if (dataGrid->GetVisuallyEnabled()) + { + vint index = GetCellColumnIndex(sender); + if (index != -1) + { + vint currentRow = GetIndex(); + dataGrid->SelectCell({ currentRow,index }, true); + } + } + } } - ListViewColumn::~ListViewColumn() + void DefaultDataGridItemTemplate::OnCellRightButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if (dropdownPopup && ownPopup) + if (auto dataGrid = dynamic_cast(listControl)) { - SafeDeleteControl(dropdownPopup); + if (IsInEditor(dataGrid, arguments)) + { + arguments.handled = true; + } + else if (dataGrid->GetVisuallyEnabled()) + { + vint index = GetCellColumnIndex(sender); + if (index != -1) + { + vint currentRow = GetIndex(); + dataGrid->SelectCell({ currentRow,index }, false); + } + } } } - const WString& ListViewColumn::GetText() + void DefaultDataGridItemTemplate::OnColumnChanged() { - return text; + UpdateSubItemSize(); } - void ListViewColumn::SetText(const WString& value) + void DefaultDataGridItemTemplate::OnInitialize() { - if (text != value) + DefaultListViewItemTemplate::OnInitialize(); { - text = value; - NotifyUpdate(false); + textTable = new GuiTableComposition; + textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + textTable->SetRowsAndColumns(1, 1); + textTable->SetRowOption(0, GuiCellOption::MinSizeOption()); + textTable->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); + AddChild(textTable); } - } - ItemProperty ListViewColumn::GetTextProperty() - { - return textProperty; - } + if (auto dataGrid = dynamic_cast(listControl)) + { + vint columnCount = dataGrid->listViewItemView->GetColumnCount(); + vint itemIndex = GetIndex(); - void ListViewColumn::SetTextProperty(const ItemProperty& value) - { - textProperty = value; - NotifyUpdate(true); - } + dataVisualizers.Resize(columnCount); + for (vint i = 0; i < dataVisualizers.Count(); i++) + { + auto factory = GetDataVisualizerFactory(itemIndex, i); + dataVisualizers[i] = factory->CreateVisualizer(dataGrid); + } - vint ListViewColumn::GetSize() - { - return size; - } + textTable->SetRowsAndColumns(1, columnCount); + for (vint i = 0; i < columnCount; i++) + { + auto cell = new GuiCellComposition; + textTable->AddChild(cell); + cell->SetSite(0, i, 1, 1); + cell->GetEventReceiver()->leftButtonDown.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellButtonDown); + cell->GetEventReceiver()->rightButtonDown.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellButtonDown); + cell->GetEventReceiver()->leftButtonUp.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellLeftButtonUp); + cell->GetEventReceiver()->rightButtonUp.AttachMethod(this, &DefaultDataGridItemTemplate::OnCellRightButtonUp); - void ListViewColumn::SetSize(vint value) - { - if (size != value) - { - size = value; - NotifyUpdate(false); + auto composition = dataVisualizers[i]->GetTemplate(); + composition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + cell->AddChild(composition); + } + + for (vint i = 0; i < dataVisualizers.Count(); i++) + { + dataVisualizers[i]->BeforeVisualizeCell(dataGrid->GetItemProvider(), itemIndex, i); + } + + GridPos selectedCell = dataGrid->GetSelectedCell(); + if (selectedCell.row == itemIndex) + { + NotifySelectCell(selectedCell.column); + } + else + { + NotifySelectCell(-1); + } + UpdateSubItemSize(); } - } - bool ListViewColumn::GetOwnPopup() - { - return ownPopup; - } + SelectedChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnSelectedChanged); + FontChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnFontChanged); + ContextChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnContextChanged); + VisuallyEnabledChanged.AttachMethod(this, &DefaultDataGridItemTemplate::OnVisuallyEnabledChanged); - void ListViewColumn::SetOwnPopup(bool value) - { - ownPopup = value; + SelectedChanged.Execute(compositions::GuiEventArgs(this)); + FontChanged.Execute(compositions::GuiEventArgs(this)); + ContextChanged.Execute(compositions::GuiEventArgs(this)); + VisuallyEnabledChanged.Execute(compositions::GuiEventArgs(this)); } - GuiMenu* ListViewColumn::GetDropdownPopup() + void DefaultDataGridItemTemplate::OnSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return dropdownPopup; + if (!GetSelected()) + { + NotifySelectCell(-1); + } } - void ListViewColumn::SetDropdownPopup(GuiMenu* value) + void DefaultDataGridItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if (dropdownPopup != value) + for (auto visualizer : dataVisualizers) { - dropdownPopup = value; - NotifyUpdate(false); + visualizer->GetTemplate()->SetFont(GetFont()); + } + if (currentEditor) + { + currentEditor->GetTemplate()->SetFont(GetFont()); } } - ColumnSortingState ListViewColumn::GetSortingState() + void DefaultDataGridItemTemplate::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return sortingState; + for (auto visualizer : dataVisualizers) + { + visualizer->GetTemplate()->SetContext(GetContext()); + } + if (currentEditor) + { + currentEditor->GetTemplate()->SetContext(GetContext()); + } } - void ListViewColumn::SetSortingState(ColumnSortingState value) + void DefaultDataGridItemTemplate::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if (sortingState != value) + for (auto visualizer : dataVisualizers) { - sortingState = value; - NotifyUpdate(false); + visualizer->GetTemplate()->SetVisuallyEnabled(GetVisuallyEnabled()); + } + if (currentEditor) + { + currentEditor->GetTemplate()->SetVisuallyEnabled(GetVisuallyEnabled()); } } -/*********************************************************************** -ListViewDataColumns -***********************************************************************/ - - void ListViewDataColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) + DefaultDataGridItemTemplate::DefaultDataGridItemTemplate() { - itemProvider->NotifyAllItemsUpdate(); } - ListViewDataColumns::ListViewDataColumns(IListViewItemProvider* _itemProvider) - :itemProvider(_itemProvider) + DefaultDataGridItemTemplate::~DefaultDataGridItemTemplate() { + for (auto visualizer : dataVisualizers) + { + visualizer->NotifyDeletedTemplate(); + } + if (currentEditor) + { + currentEditor->NotifyDeletedTemplate(); + } } - ListViewDataColumns::~ListViewDataColumns() + void DefaultDataGridItemTemplate::UpdateSubItemSize() { + if (auto dataGrid = dynamic_cast(listControl)) + { + vint columnCount = dataGrid->listViewItemView->GetColumnCount(); + if (columnCount > textTable->GetColumns()) + { + columnCount = textTable->GetColumns(); + } + for (vint i = 0; i < columnCount; i++) + { + textTable->SetColumnOption(i, GuiCellOption::AbsoluteOption(dataGrid->columnItemView->GetColumnSize(i))); + } + textTable->UpdateCellBounds(); + } } -/*********************************************************************** -ListViewColumns -***********************************************************************/ - - void ListViewColumns::NotifyColumnUpdated(vint column, bool affectItem) + bool DefaultDataGridItemTemplate::IsEditorOpened() { - affectItemFlag = affectItem; - NotifyUpdate(column, 1); - affectItemFlag = true; + return currentEditor != nullptr; } - void ListViewColumns::AfterInsert(vint index, const Ptr& value) + void DefaultDataGridItemTemplate::NotifyOpenEditor(vint column, IDataEditor* editor) { - collections::ObservableListBase>::AfterInsert(index, value); - value->owner = this; - } - - void ListViewColumns::BeforeRemove(vint index, const Ptr& value) - { - value->owner = 0; - collections::ObservableListBase>::BeforeRemove(index, value); + currentEditor = editor; + if (currentEditor) + { + auto cell = textTable->GetSitedCell(0, column); + auto* editorBounds = currentEditor->GetTemplate(); + editorBounds->SetFont(GetFont()); + editorBounds->SetContext(GetContext()); + if (editorBounds->GetParent() && editorBounds->GetParent() != cell) + { + editorBounds->GetParent()->RemoveChild(editorBounds); + } + editorBounds->SetAlignmentToParent(Margin(0, 0, 0, 0)); + cell->AddChild(editorBounds); + if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) + { + focusControl->SetFocused(); + } + dataVisualizers[column]->GetTemplate()->SetVisible(false); + } } - void ListViewColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) + void DefaultDataGridItemTemplate::NotifyCloseEditor() { - itemProvider->NotifyAllColumnsUpdate(); - if (affectItemFlag) + if (currentEditor) { - itemProvider->NotifyAllItemsUpdate(); + for (vint i = 0; i < dataVisualizers.Count(); i++) + { + dataVisualizers[i]->GetTemplate()->SetVisible(true); + } + auto composition = currentEditor->GetTemplate(); + if (composition->GetParent()) + { + composition->GetParent()->RemoveChild(composition); + } + currentEditor = nullptr; } } - ListViewColumns::ListViewColumns(IListViewItemProvider* _itemProvider) - :itemProvider(_itemProvider) + void DefaultDataGridItemTemplate::NotifySelectCell(vint column) { + for (vint i = 0; i < dataVisualizers.Count(); i++) + { + dataVisualizers[i]->SetSelected(i == column); + } } - ListViewColumns::~ListViewColumns() + void DefaultDataGridItemTemplate::NotifyCellEdited() { + for (vint i = 0; i < dataVisualizers.Count(); i++) + { + dataVisualizers[i]->BeforeVisualizeCell(listControl->GetItemProvider(), GetIndex(), i); + } } - + } + /*********************************************************************** -ListViewItemProvider +GuiVirtualDataGrid (Editor) ***********************************************************************/ - void ListViewItemProvider::AfterInsert(vint index, const Ptr& value) - { - ListProvider>::AfterInsert(index, value); - value->owner = this; - } + using namespace list; - void ListViewItemProvider::BeforeRemove(vint index, const Ptr& value) + compositions::IGuiAltActionHost* GuiVirtualDataGrid::GetActivatingAltHost() + { + if (currentEditor) { - value->owner = 0; - ListProvider>::AfterInsert(index, value); + if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) + { + if (auto action = focusControl->QueryTypedService()) + { + if (action->IsAltAvailable() && action->IsAltEnabled()) + { + SetAltComposition(currentEditor->GetTemplate()); + SetAltControl(focusControl, true); + return this; + } + } + } } + SetAltComposition(nullptr); + SetAltControl(nullptr, false); + return GuiVirtualListView::GetActivatingAltHost(); + } - void ListViewItemProvider::NotifyAllItemsUpdate() + void GuiVirtualDataGrid::OnItemModified(vint start, vint count, vint newCount) + { + GuiVirtualListView::OnItemModified(start, count, newCount); + if(!GetItemProvider()->IsEditing()) { - NotifyUpdate(0, Count()); + StopEdit(); } + } - void ListViewItemProvider::NotifyAllColumnsUpdate() + void GuiVirtualDataGrid::OnStyleInstalled(vint index, ItemStyle* style) + { + GuiVirtualListView::OnStyleInstalled(index, style); + if (auto itemStyle = dynamic_cast(style)) { - for (vint i = 0; i < columnItemViewCallbacks.Count(); i++) + if (selectedCell.row == index && selectedCell.column != -1) { - columnItemViewCallbacks[i]->OnColumnChanged(); + itemStyle->NotifySelectCell(selectedCell.column); } } + } - Ptr ListViewItemProvider::GetSmallImage(vint itemIndex) + void GuiVirtualDataGrid::OnStyleUninstalled(ItemStyle* style) + { + GuiVirtualListView::OnStyleUninstalled(style); + if (auto itemStyle = dynamic_cast(style)) { - return Get(itemIndex)->smallImage; + if (itemStyle->IsEditorOpened()) + { + itemStyle->NotifyCloseEditor(); + currentEditor = nullptr; + currentEditorPos = { -1,-1 }; + } } + } - Ptr ListViewItemProvider::GetLargeImage(vint itemIndex) + void GuiVirtualDataGrid::NotifyCloseEditor() + { + if (currentEditorPos.row != -1 && GetArranger()) { - return Get(itemIndex)->largeImage; + auto style = GetArranger()->GetVisibleStyle(currentEditorPos.row); + if (auto itemStyle = dynamic_cast(style)) + { + itemStyle->NotifyCloseEditor(); + } } + } - WString ListViewItemProvider::GetText(vint itemIndex) + void GuiVirtualDataGrid::NotifySelectCell(vint row, vint column) + { + if (selectedCell.row != row || selectedCell.column != column) { - return Get(itemIndex)->text; - } + selectedCell = { row, column }; + SelectedCellChanged.Execute(GetNotifyEventArguments()); - WString ListViewItemProvider::GetSubItem(vint itemIndex, vint index) - { - Ptr item=Get(itemIndex); - if(index<0 || index>=item->GetSubItems().Count()) - { - return L""; - } - else + auto style = GetArranger()->GetVisibleStyle(row); + if (auto itemStyle = dynamic_cast(style)) { - return item->GetSubItems()[index]; + itemStyle->NotifySelectCell(column); } } + } - vint ListViewItemProvider::GetDataColumnCount() + bool GuiVirtualDataGrid::StartEdit(vint row, vint column) + { + StopEdit(); + NotifySelectCell(row, column); + + auto style = GetArranger()->GetVisibleStyle(row); + if (auto itemStyle = dynamic_cast(style)) { - return dataColumns.Count(); + if (auto factory = dataGridView->GetCellDataEditorFactory(row, column)) + { + currentEditorOpeningEditor = true; + currentEditorPos = { row,column }; + currentEditor = factory->CreateEditor(this); + if (auto focusControl = currentEditor->GetTemplate()->GetFocusControl()) + { + focusControl->SetAlt(L"E"); + } + currentEditor->BeforeEditCell(GetItemProvider(), row, column); + itemStyle->NotifyOpenEditor(column, currentEditor.Obj()); + currentEditorOpeningEditor = false; + return true; + } } + return false; + } - vint ListViewItemProvider::GetDataColumn(vint index) + void GuiVirtualDataGrid::StopEdit() + { + if (GetItemProvider()->IsEditing()) { - return dataColumns[index]; + NotifyCloseEditor(); } - - vint ListViewItemProvider::GetColumnCount() + else { - return columns.Count(); + if (currentEditorPos != GridPos{-1, -1}) + { + if (currentEditor) + { + NotifyCloseEditor(); + } + } } + SetAltComposition(nullptr); + SetAltControl(nullptr, false); + currentEditor = nullptr; + currentEditorPos = { -1,-1 }; + } - WString ListViewItemProvider::GetColumnText(vint index) +/*********************************************************************** +GuiVirtualDataGrid (IDataGridContext) +***********************************************************************/ + + templates::GuiListViewTemplate* GuiVirtualDataGrid::GetListViewControlTemplate() + { + return TypedControlTemplateObject(true); + } + + void GuiVirtualDataGrid::RequestSaveData() + { + if (currentEditor && !currentEditorOpeningEditor) { - if (index<0 || index >= columns.Count()) + GuiControl* focusedControl = nullptr; + if (auto controlHost = GetRelatedControlHost()) { - return L""; + if (auto graphicsHost = controlHost->GetGraphicsHost()) + { + if (auto focusComposition = graphicsHost->GetFocusedComposition()) + { + focusedControl = focusComposition->GetRelatedControl(); + } + } } - else + + GetItemProvider()->PushEditing(); + dataGridView->SetBindingCellValue(currentEditorPos.row, currentEditorPos.column, currentEditor->GetTemplate()->GetCellValue()); + GetItemProvider()->PopEditing(); + + auto style = GetArranger()->GetVisibleStyle(currentEditorPos.row); + if (auto itemStyle = dynamic_cast(style)) { - return columns[index]->GetText(); + itemStyle->NotifyCellEdited(); } - } - bool ListViewItemProvider::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) - { - if(columnItemViewCallbacks.Contains(value)) + if (currentEditor && focusedControl) { - return false; + focusedControl->SetFocused(); } - else + } + } + +/*********************************************************************** +GuiVirtualDataGrid +***********************************************************************/ + + void GuiVirtualDataGrid::OnColumnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + { + if(dataGridView->IsColumnSortable(arguments.itemIndex)) + { + switch(columnItemView->GetSortingState(arguments.itemIndex)) { - columnItemViewCallbacks.Add(value); - return true; + case ColumnSortingState::NotSorted: + dataGridView->SortByColumn(arguments.itemIndex, true); + break; + case ColumnSortingState::Ascending: + dataGridView->SortByColumn(arguments.itemIndex, false); + break; + case ColumnSortingState::Descending: + dataGridView->SortByColumn(-1, false); + break; } } + } - bool ListViewItemProvider::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) + void GuiVirtualDataGrid::OnSelectionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (!skipOnSelectionChanged) { - vint index=columnItemViewCallbacks.IndexOf(value); - if(index==-1) + vint row = GetSelectedItemIndex(); + if (row != -1) { - return false; + if (selectedCell.row != row && selectedCell.column != -1) + { + SelectCell({ row,selectedCell.column }, false); + } + else + { + SelectCell({ row,0 }, false); + } } else { - columnItemViewCallbacks.Remove(value); - return true; + StopEdit(); + NotifySelectCell(-1, -1); } } + } - vint ListViewItemProvider::GetColumnSize(vint index) + void GuiVirtualDataGrid::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if (selectedCell.row != -1) { - if(index<0 || index>=columns.Count()) + if (arguments.code == VKEY::KEY_RETURN) { - return 0; + RequestSaveData(); + SelectCell(selectedCell, !currentEditor); + arguments.handled = true; + if (!currentEditor) + { + SetFocused(); + } + arguments.handled = true; + } + else if (arguments.code == VKEY::KEY_ESCAPE) + { + if (currentEditor) + { + SelectCell(currentEditorPos, false); + SetFocused(); + arguments.handled = true; + } } else { - return columns[index]->GetSize(); + vint columnOffset = 0; + switch (arguments.code) + { + case VKEY::KEY_LEFT: + columnOffset = -1; + arguments.handled = true; + break; + case VKEY::KEY_RIGHT: + columnOffset = 1; + arguments.handled = true; + break; + default: + return; + } + + vint column = selectedCell.column + columnOffset; + if (column < 0) + { + column = 0; + } + else if (column >= listViewItemView->GetColumnCount()) + { + column = listViewItemView->GetColumnCount(); + } + SelectCell({ selectedCell.row, column }, false); } } + } + + void GuiVirtualDataGrid::OnKeyUp(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + } + + GuiVirtualDataGrid::GuiVirtualDataGrid(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) + :GuiVirtualListView(themeName, _itemProvider) + { + listViewItemView = dynamic_cast(_itemProvider->RequestView(IListViewItemView::Identifier)); + columnItemView = dynamic_cast(_itemProvider->RequestView(ListViewColumnItemArranger::IColumnItemView::Identifier)); + dataGridView = dynamic_cast(_itemProvider->RequestView(IDataGridView::Identifier)); - void ListViewItemProvider::SetColumnSize(vint index, vint value) { - if(index>=0 && indexSetSize(value); - } + auto mainProperty = [](const Value&) { return new MainColumnVisualizerTemplate; }; + auto subProperty = [](const Value&) { return new SubColumnVisualizerTemplate; }; + auto focusRectangleProperty = [](const Value&) { return new FocusRectangleVisualizerTemplate; }; + auto cellBorderProperty = [](const Value&) { return new CellBorderVisualizerTemplate; }; + + defaultMainColumnVisualizerFactory = + Ptr(new DataVisualizerFactory(cellBorderProperty, + Ptr(new DataVisualizerFactory(focusRectangleProperty, + Ptr(new DataVisualizerFactory(mainProperty) + ))))); + defaultSubColumnVisualizerFactory = + Ptr(new DataVisualizerFactory(cellBorderProperty, + Ptr(new DataVisualizerFactory(focusRectangleProperty, + Ptr(new DataVisualizerFactory(subProperty) + ))))); } - GuiMenu* ListViewItemProvider::GetDropdownPopup(vint index) + CHECK_ERROR(listViewItemView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing IListViewItemView from item provider."); + CHECK_ERROR(columnItemView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing ListViewColumnItemArranger::IColumnItemView from item provider."); + CHECK_ERROR(dataGridView != nullptr, L"GuiVirtualDataGrid::GuiVirtualDataGrid(IStyleController*, GuiListControl::IItemProvider*)#Missing IDataGridView from item provider."); + + SetViewToDefault(); + + ColumnClicked.AttachMethod(this, &GuiVirtualDataGrid::OnColumnClicked); + SelectionChanged.AttachMethod(this, &GuiVirtualDataGrid::OnSelectionChanged); + focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiVirtualDataGrid::OnKeyDown); + focusableComposition->GetEventReceiver()->keyUp.AttachMethod(this, &GuiVirtualDataGrid::OnKeyUp); + SelectedCellChanged.SetAssociatedComposition(boundsComposition); + } + + GuiVirtualDataGrid::~GuiVirtualDataGrid() + { + } + + GuiListControl::IItemProvider* GuiVirtualDataGrid::GetItemProvider() + { + return GuiVirtualListView::GetItemProvider(); + } + + void GuiVirtualDataGrid::SetViewToDefault() + { + SetStyleAndArranger( + [](const Value&) { return new list::DefaultDataGridItemTemplate; }, + Ptr(new list::ListViewColumnItemArranger) + ); + } + + GridPos GuiVirtualDataGrid::GetSelectedCell() + { + return selectedCell; + } + + bool GuiVirtualDataGrid::SelectCell(const GridPos& value, bool openEditor) + { + bool validPos = 0 <= value.row && value.row < GetItemProvider()->Count() && 0 <= value.column && value.column < listViewItemView->GetColumnCount(); + + if (validPos && selectedCell == value) { - if(index<0 || index>=columns.Count()) + if (currentEditor && !openEditor) { - return 0; + StopEdit(); } - else + else if (!currentEditor && openEditor) { - return columns[index]->GetDropdownPopup(); + StartEdit(value.row, value.column); } + return currentEditor != nullptr; } - ColumnSortingState ListViewItemProvider::GetSortingState(vint index) + StopEdit(); + if (validPos) { - if (index < 0 || index >= columns.Count()) - { - return ColumnSortingState::NotSorted; - } - else + NotifySelectCell(value.row, value.column); + if (openEditor) { - return columns[index]->GetSortingState(); + EnsureItemVisible(value.row); + if (GetMultiSelect()) + { + ClearSelection(); + } + + skipOnSelectionChanged = true; + SetSelected(value.row, true); + skipOnSelectionChanged = false; + return StartEdit(value.row, value.column); } } + else + { + NotifySelectCell(-1, -1); + ClearSelection(); + } + return false; + } + } + } +} - WString ListViewItemProvider::GetTextValue(vint itemIndex) +/*********************************************************************** +.\CONTROLS\LISTCONTROLPACKAGE\GUIDATAGRIDEXTENSIONS.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace controls + { + namespace list + { + using namespace compositions; + using namespace elements; + using namespace theme; + using namespace templates; + +/*********************************************************************** +DataVisualizerBase +***********************************************************************/ + + DataVisualizerBase::DataVisualizerBase() { - return GetText(itemIndex); } - description::Value ListViewItemProvider::GetBindingValue(vint itemIndex) + DataVisualizerBase::~DataVisualizerBase() { - return Value::From(Get(itemIndex)); + if (visualizerTemplate) + { + SafeDeleteComposition(visualizerTemplate); + } } - ListViewItemProvider::ListViewItemProvider() - :columns(this) - , dataColumns(this) + IDataVisualizerFactory* DataVisualizerBase::GetFactory() { + return factory; } - ListViewItemProvider::~ListViewItemProvider() + templates::GuiGridVisualizerTemplate* DataVisualizerBase::GetTemplate() { + return visualizerTemplate; } - IDescriptable* ListViewItemProvider::RequestView(const WString& identifier) + void DataVisualizerBase::NotifyDeletedTemplate() { - if (identifier == IListViewItemView::Identifier) - { - return (IListViewItemView*)this; - } - else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) + visualizerTemplate = nullptr; + } + + void DataVisualizerBase::BeforeVisualizeCell(GuiListControl::IItemProvider* itemProvider, vint row, vint column) + { + if (auto listViewItemView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IListViewItemView::Identifier))) { - return (ListViewColumnItemArranger::IColumnItemView*)this; + auto style = dataGridContext->GetListViewControlTemplate(); + visualizerTemplate->SetPrimaryTextColor(style->GetPrimaryTextColor()); + visualizerTemplate->SetSecondaryTextColor(style->GetSecondaryTextColor()); + visualizerTemplate->SetItemSeparatorColor(style->GetItemSeparatorColor()); + + visualizerTemplate->SetLargeImage(listViewItemView->GetLargeImage(row)); + visualizerTemplate->SetSmallImage(listViewItemView->GetSmallImage(row)); + visualizerTemplate->SetText(column == 0 ? listViewItemView->GetText(row) : listViewItemView->GetSubItem(row, column - 1)); } - else + if (auto dataGridView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IDataGridView::Identifier))) { - return 0; + visualizerTemplate->SetRowValue(itemProvider->GetBindingValue(row)); + visualizerTemplate->SetCellValue(dataGridView->GetBindingCellValue(row, column)); } } - ListViewDataColumns& ListViewItemProvider::GetDataColumns() + void DataVisualizerBase::SetSelected(bool value) { - return dataColumns; + if (visualizerTemplate) + { + visualizerTemplate->SetSelected(value); + } } - ListViewColumns& ListViewItemProvider::GetColumns() - { - return columns; - } - } - /*********************************************************************** -GuiListView +DataVisualizerFactory ***********************************************************************/ - void GuiVirtualListView::OnStyleInstalled(vint itemIndex, ItemStyle* style) - { - GuiListViewBase::OnStyleInstalled(itemIndex, style); - } + DataVisualizerFactory::ItemTemplate* DataVisualizerFactory::CreateItemTemplate(controls::list::IDataGridContext* dataGridContext) + { + ItemTemplate* itemTemplate = templateFactory({}); + CHECK_ERROR(itemTemplate, L"DataVisualizerFactory::CreateItemTemplate(IDataGridContext*)#An instance of GuiGridEditorTemplate is expected."); + if (decoratedFactory) + { + auto childTemplate = decoratedFactory->CreateItemTemplate(dataGridContext); + childTemplate->SetAlignmentToParent(Margin(0, 0, 0, 0)); + itemTemplate->GetContainerComposition()->AddChild(childTemplate); - void GuiVirtualListView::OnItemTemplateChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - view = ListViewView::Unknown; - } +#define FORWARD_EVENT(NAME)\ + itemTemplate->NAME##Changed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments)\ + {\ + childTemplate->Set##NAME(itemTemplate->Get##NAME());\ + });\ - GuiVirtualListView::GuiVirtualListView(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) - :GuiListViewBase(themeName, _itemProvider) - { - SetView(ListViewView::Detail); - } +#define FORWARD_EVENT_IMPL(CLASS, TYPE, NAME, VALUE) FORWARD_EVENT(NAME) - GuiVirtualListView::~GuiVirtualListView() - { - } + GuiTemplate_PROPERTIES(FORWARD_EVENT_IMPL) + GuiControlTemplate_PROPERTIES(FORWARD_EVENT_IMPL) + GuiGridCellTemplate_PROPERTIES(FORWARD_EVENT_IMPL) + GuiGridVisualizerTemplate_PROPERTIES(FORWARD_EVENT_IMPL) - ListViewView GuiVirtualListView::GetView() - { - return view; - } +#undef FORWARD_EVENT_IMPL +#undef FORWARD_EVENT + } + return itemTemplate; + } - void GuiVirtualListView::SetView(ListViewView _view) - { - switch (_view) + DataVisualizerFactory::DataVisualizerFactory(TemplateProperty _templateFactory, Ptr _decoratedFactory) + :templateFactory(_templateFactory) + , decoratedFactory(_decoratedFactory) { - case ListViewView::BigIcon: - SetStyleAndArranger( - [](const Value&) { return new list::BigIconListViewItemTemplate; }, - new list::FixedSizeMultiColumnItemArranger - ); - break; - case ListViewView::SmallIcon: - SetStyleAndArranger( - [](const Value&) { return new list::SmallIconListViewItemTemplate; }, - new list::FixedSizeMultiColumnItemArranger - ); - break; - case ListViewView::List: - SetStyleAndArranger( - [](const Value&) { return new list::ListListViewItemTemplate; }, - new list::FixedHeightMultiColumnItemArranger - ); - break; - case ListViewView::Tile: - SetStyleAndArranger( - [](const Value&) { return new list::TileListViewItemTemplate; }, - new list::FixedSizeMultiColumnItemArranger - ); - break; - case ListViewView::Information: - SetStyleAndArranger( - [](const Value&) { return new list::InformationListViewItemTemplate; }, - new list::FixedHeightItemArranger - ); - break; - case ListViewView::Detail: - SetStyleAndArranger( - [](const Value&) { return new list::DetailListViewItemTemplate; }, - new list::ListViewColumnItemArranger - ); - break; - default:; } - view = _view; - } - -/*********************************************************************** -GuiListView -***********************************************************************/ - - GuiListView::GuiListView(theme::ThemeName themeName) - :GuiVirtualListView(themeName, new list::ListViewItemProvider) - { - items=dynamic_cast(itemProvider.Obj()); - } - - GuiListView::~GuiListView() - { - } - - list::ListViewItemProvider& GuiListView::GetItems() - { - return *items; - } - - list::ListViewDataColumns& GuiListView::GetDataColumns() - { - return items->GetDataColumns(); - } - list::ListViewColumns& GuiListView::GetColumns() - { - return items->GetColumns(); - } + DataVisualizerFactory::~DataVisualizerFactory() + { + } - Ptr GuiListView::GetSelectedItem() - { - vint index = GetSelectedItemIndex(); - if (index == -1) return 0; - return items->Get(index); - } - } - } -} + Ptr DataVisualizerFactory::CreateVisualizer(controls::list::IDataGridContext* dataGridContext) + { + auto dataVisualizer = Ptr(new DataVisualizerBase); + dataVisualizer->factory = this; + dataVisualizer->dataGridContext = dataGridContext; + dataVisualizer->visualizerTemplate = CreateItemTemplate(dataGridContext); + return dataVisualizer; + } + /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUILISTVIEWITEMTEMPLATES.CPP +DataEditorBase ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace collections; - using namespace reflection::description; + void DataEditorBase::OnCellValueChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + dataGridContext->RequestSaveData(); + } - namespace list - { + DataEditorBase::DataEditorBase() + { + } -/*********************************************************************** -DefaultListViewItemTemplate -***********************************************************************/ + DataEditorBase::~DataEditorBase() + { + if (editorTemplate) + { + SafeDeleteComposition(editorTemplate); + } + } - DefaultListViewItemTemplate::DefaultListViewItemTemplate() + IDataEditorFactory* DataEditorBase::GetFactory() { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + return factory; } - DefaultListViewItemTemplate::~DefaultListViewItemTemplate() + templates::GuiGridEditorTemplate* DataEditorBase::GetTemplate() { + return editorTemplate; } -/*********************************************************************** -BigIconListViewItemTemplate -***********************************************************************/ + void DataEditorBase::NotifyDeletedTemplate() + { + editorTemplate = nullptr; + } - void BigIconListViewItemTemplate::OnInitialize() + void DataEditorBase::BeforeEditCell(GuiListControl::IItemProvider* itemProvider, vint row, vint column) { - DefaultListViewItemTemplate::OnInitialize(); + if (auto listViewItemView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IListViewItemView::Identifier))) { - auto table = new GuiTableComposition; - AddChild(table); - table->SetRowsAndColumns(2, 3); - table->SetRowOption(0, GuiCellOption::MinSizeOption()); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetColumnOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(1, GuiCellOption::MinSizeOption()); - table->SetColumnOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(5); - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 1, 1); - cell->SetPreferredMinSize(Size(32, 32)); - - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetMinSizeLimitation(GuiGraphicsComposition::NoLimit); - cell->SetSite(1, 0, 1, 3); - cell->SetPreferredMinSize(Size(64, 40)); + auto style = dataGridContext->GetListViewControlTemplate(); + editorTemplate->SetPrimaryTextColor(style->GetPrimaryTextColor()); + editorTemplate->SetSecondaryTextColor(style->GetSecondaryTextColor()); + editorTemplate->SetItemSeparatorColor(style->GetItemSeparatorColor()); - text = GuiSolidLabelElement::Create(); - text->SetAlignments(Alignment::Center, Alignment::Top); - text->SetWrapLine(true); - text->SetEllipse(true); - cell->SetOwnedElement(text); - } + editorTemplate->SetLargeImage(listViewItemView->GetLargeImage(row)); + editorTemplate->SetSmallImage(listViewItemView->GetSmallImage(row)); + editorTemplate->SetText(column == 0 ? listViewItemView->GetText(row) : listViewItemView->GetSubItem(row, column - 1)); + } + if (auto dataGridView = dynamic_cast(dataGridContext->GetItemProvider()->RequestView(IDataGridView::Identifier))) + { + editorTemplate->SetRowValue(itemProvider->GetBindingValue(row)); + editorTemplate->SetCellValue(dataGridView->GetBindingCellValue(row, column)); } + editorTemplate->CellValueChanged.AttachMethod(this, &DataEditorBase::OnCellValueChanged); + } - if (auto listView = dynamic_cast(listControl)) + bool DataEditorBase::GetCellValueSaved() + { + if (editorTemplate) { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetLargeImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(nullptr); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - } + return editorTemplate->GetCellValueSaved(); } + return true; + } - FontChanged.AttachMethod(this, &BigIconListViewItemTemplate::OnFontChanged); +/*********************************************************************** +DataEditorFactory +***********************************************************************/ - FontChanged.Execute(compositions::GuiEventArgs(this)); + DataEditorFactory::DataEditorFactory(TemplateProperty _templateFactory) + :templateFactory(_templateFactory) + { } - void BigIconListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + DataEditorFactory::~DataEditorFactory() { - text->SetFont(GetFont()); } - BigIconListViewItemTemplate::BigIconListViewItemTemplate() + Ptr DataEditorFactory::CreateEditor(controls::list::IDataGridContext* dataGridContext) { + auto editor = Ptr(new DataEditorBase); + editor->factory = this; + editor->dataGridContext = dataGridContext; + + ItemTemplate* itemTemplate = templateFactory({}); + CHECK_ERROR(itemTemplate, L"DataEditorFactory::CreateEditor(IDataGridContext*)#An instance of GuiGridEditorTemplate is expected."); + editor->editorTemplate = itemTemplate; + return editor; } + +/*********************************************************************** +MainColumnVisualizerTemplate +***********************************************************************/ - BigIconListViewItemTemplate::~BigIconListViewItemTemplate() + void MainColumnVisualizerTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + text->SetText(GetText()); } -/*********************************************************************** -SmallIconListViewItemTemplate -***********************************************************************/ + void MainColumnVisualizerTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + text->SetFont(GetFont()); + } - void SmallIconListViewItemTemplate::OnInitialize() + void MainColumnVisualizerTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - DefaultListViewItemTemplate::OnInitialize(); + text->SetColor(GetPrimaryTextColor()); + } + + void MainColumnVisualizerTemplate::OnSmallImageChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + auto imageData = GetSmallImage(); + if (imageData) { - auto table = new GuiTableComposition; - AddChild(table); - table->SetRowsAndColumns(3, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::MinSizeOption()); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(2); - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(16, 16)); + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + } - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetPreferredMinSize(Size(192, 0)); + MainColumnVisualizerTemplate::MainColumnVisualizerTemplate() + { + GuiTableComposition* table = new GuiTableComposition; + table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + table->SetRowsAndColumns(3, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); + table->SetCellPadding(2); + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(16, 16)); - text = GuiSolidLabelElement::Create(); - text->SetAlignments(Alignment::Left, Alignment::Center); - text->SetEllipse(true); - cell->SetOwnedElement(text); - } + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); } - - if (auto listView = dynamic_cast(listControl)) { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetSmallImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(nullptr); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - } + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetMargin(Margin(0, 0, 8, 0)); + + text = GuiSolidLabelElement::Create(); + text->SetAlignments(Alignment::Left, Alignment::Center); + text->SetEllipse(true); + cell->SetOwnedElement(Ptr(text)); } + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - FontChanged.AttachMethod(this, &SmallIconListViewItemTemplate::OnFontChanged); + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + AddChild(table); + TextChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnTextChanged); + FontChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnFontChanged); + PrimaryTextColorChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnTextColorChanged); + SmallImageChanged.AttachMethod(this, &MainColumnVisualizerTemplate::OnSmallImageChanged); + + TextChanged.Execute(compositions::GuiEventArgs(this)); FontChanged.Execute(compositions::GuiEventArgs(this)); + PrimaryTextColorChanged.Execute(compositions::GuiEventArgs(this)); + SmallImageChanged.Execute(compositions::GuiEventArgs(this)); } - void SmallIconListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + MainColumnVisualizerTemplate::~MainColumnVisualizerTemplate() { - text->SetFont(GetFont()); } + +/*********************************************************************** +SubColumnVisualizerTemplate +***********************************************************************/ - SmallIconListViewItemTemplate::SmallIconListViewItemTemplate() + void SubColumnVisualizerTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + text->SetText(GetText()); } - SmallIconListViewItemTemplate::~SmallIconListViewItemTemplate() + void SubColumnVisualizerTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + text->SetFont(GetFont()); } -/*********************************************************************** -ListListViewItemTemplate -***********************************************************************/ - - void ListListViewItemTemplate::OnInitialize() + void SubColumnVisualizerTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - DefaultListViewItemTemplate::OnInitialize(); - { - auto table = new GuiTableComposition; - AddChild(table); - table->SetRowsAndColumns(3, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::MinSizeOption()); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(2); - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(16, 16)); + text->SetColor(GetSecondaryTextColor()); + } - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetMargin(Margin(0, 0, 16, 0)); + void SubColumnVisualizerTemplate::Initialize(bool fixTextColor) + { + text = GuiSolidLabelElement::Create(); + text->SetVerticalAlignment(Alignment::Center); + text->SetEllipse(true); - text = GuiSolidLabelElement::Create(); - text->SetAlignments(Alignment::Left, Alignment::Center); - cell->SetOwnedElement(text); - } - } + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + SetMargin(Margin(8, 0, 8, 0)); + SetOwnedElement(Ptr(text)); - if (auto listView = dynamic_cast(listControl)) + TextChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnTextChanged); + FontChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnFontChanged); + if (!fixTextColor) { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetSmallImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(nullptr); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - } + SecondaryTextColorChanged.AttachMethod(this, &SubColumnVisualizerTemplate::OnTextColorChanged); } - FontChanged.AttachMethod(this, &ListListViewItemTemplate::OnFontChanged); - + TextChanged.Execute(compositions::GuiEventArgs(this)); FontChanged.Execute(compositions::GuiEventArgs(this)); + if (!fixTextColor) + { + SecondaryTextColorChanged.Execute(compositions::GuiEventArgs(this)); + } } - void ListListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + SubColumnVisualizerTemplate::SubColumnVisualizerTemplate(bool fixTextColor) { - text->SetFont(GetFont()); + Initialize(fixTextColor); } - ListListViewItemTemplate::ListListViewItemTemplate() + SubColumnVisualizerTemplate::SubColumnVisualizerTemplate() { + Initialize(false); } - ListListViewItemTemplate::~ListListViewItemTemplate() + SubColumnVisualizerTemplate::~SubColumnVisualizerTemplate() { } - + /*********************************************************************** -TileListViewItemTemplate +HyperlinkVisualizerTemplate ***********************************************************************/ - elements::GuiSolidLabelElement* TileListViewItemTemplate::CreateTextElement(vint textRow) + void HyperlinkVisualizerTemplate::label_MouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - auto cell = new GuiCellComposition; - textTable->AddChild(cell); - cell->SetSite(textRow + 1, 0, 1, 1); - - auto textElement = GuiSolidLabelElement::Create(); - textElement->SetAlignments(Alignment::Left, Alignment::Center); - textElement->SetEllipse(true); - cell->SetOwnedElement(textElement); - return textElement; + FontProperties font = text->GetFont(); + font.underline = true; + text->SetFont(font); } - void TileListViewItemTemplate::ResetTextTable(vint textRows) + void HyperlinkVisualizerTemplate::label_MouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - textTable->SetRowsAndColumns(textRows + 2, 1); - textTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - for (vint i = 0; iSetRowOption(i + 1, GuiCellOption::MinSizeOption()); - } - textTable->SetRowOption(textRows + 1, GuiCellOption::PercentageOption(0.5)); - textTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); + FontProperties font = text->GetFont(); + font.underline = false; + text->SetFont(font); } - void TileListViewItemTemplate::OnInitialize() + HyperlinkVisualizerTemplate::HyperlinkVisualizerTemplate() + :SubColumnVisualizerTemplate(true) { - DefaultListViewItemTemplate::OnInitialize(); - { - auto table = new GuiTableComposition; - AddChild(table); - table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - table->SetRowsAndColumns(3, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::MinSizeOption()); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(4); - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(32, 32)); - - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetPreferredMinSize(Size(224, 0)); - - textTable = new GuiTableComposition; - textTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - textTable->SetCellPadding(1); - ResetTextTable(1); - textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - cell->AddChild(textTable); - { - text = CreateTextElement(0); - } - } - } - - if (auto listView = dynamic_cast(listControl)) - { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetLargeImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(nullptr); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - - vint dataColumnCount = view->GetDataColumnCount(); - ResetTextTable(dataColumnCount + 1); - dataTexts.Resize(dataColumnCount); - for (vint i = 0; i < dataColumnCount; i++) - { - dataTexts[i] = CreateTextElement(i + 1); - dataTexts[i]->SetText(view->GetSubItem(itemIndex, view->GetDataColumn(i))); - dataTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); - } - } - } - - FontChanged.AttachMethod(this, &TileListViewItemTemplate::OnFontChanged); - - FontChanged.Execute(compositions::GuiEventArgs(this)); + text->SetColor(Color(0, 0, 255)); + text->SetEllipse(true); + GetEventReceiver()->mouseEnter.AttachMethod(this, &HyperlinkVisualizerTemplate::label_MouseEnter); + GetEventReceiver()->mouseLeave.AttachMethod(this, &HyperlinkVisualizerTemplate::label_MouseLeave); + SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Hand)); } - void TileListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + HyperlinkVisualizerTemplate::~HyperlinkVisualizerTemplate() { - text->SetFont(GetFont()); - if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - vint dataColumnCount = view->GetDataColumnCount(); - for (vint i = 0; i < dataColumnCount; i++) - { - dataTexts[i]->SetFont(GetFont()); - } - } } + +/*********************************************************************** +CellBorderVisualizerTemplate +***********************************************************************/ - TileListViewItemTemplate::TileListViewItemTemplate() + void FocusRectangleVisualizerTemplate::OnSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + focusComposition->SetVisible(GetSelected()); } - TileListViewItemTemplate::~TileListViewItemTemplate() + FocusRectangleVisualizerTemplate::FocusRectangleVisualizerTemplate() { - } - -/*********************************************************************** -InformationListViewItemTemplate -***********************************************************************/ + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - void InformationListViewItemTemplate::OnInitialize() - { - DefaultListViewItemTemplate::OnInitialize(); + focusComposition = new GuiBoundsComposition(); { - bottomLine = GuiSolidBackgroundElement::Create(); - bottomLineComposition = new GuiBoundsComposition; - bottomLineComposition->SetOwnedElement(bottomLine); - bottomLineComposition->SetAlignmentToParent(Margin(8, -1, 8, 0)); - bottomLineComposition->SetPreferredMinSize(Size(0, 1)); - AddChild(bottomLineComposition); - - auto table = new GuiTableComposition; - AddChild(table); - table->SetRowsAndColumns(3, 3); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); - table->SetColumnOption(2, GuiCellOption::MinSizeOption()); - table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(4); - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(32, 32)); - - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - - text = GuiSolidLabelElement::Create(); - text->SetEllipse(true); - cell->SetOwnedElement(text); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 2, 3, 1); - cell->SetPreferredMinSize(Size(224, 0)); - - textTable = new GuiTableComposition; - textTable->SetCellPadding(4); - textTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - cell->AddChild(textTable); - } + auto focus = Ptr(GuiFocusRectangleElement::Create()); + focusComposition->SetOwnedElement(focus); + focusComposition->SetAlignmentToParent(Margin(1, 1, 1, 1)); } - - if (auto listView = dynamic_cast(listControl)) + auto container = new GuiBoundsComposition(); { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetLargeImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(nullptr); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - bottomLine->SetColor(listView->TypedControlTemplateObject(true)->GetItemSeparatorColor()); - - vint dataColumnCount = view->GetDataColumnCount(); - columnTexts.Resize(dataColumnCount); - dataTexts.Resize(dataColumnCount); - - textTable->SetRowsAndColumns(dataColumnCount + 2, 1); - textTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - for (vint i = 0; i < dataColumnCount; i++) - { - textTable->SetRowOption(i + 1, GuiCellOption::MinSizeOption()); - } - textTable->SetRowOption(dataColumnCount + 1, GuiCellOption::PercentageOption(0.5)); - textTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); - - for (vint i = 0; i < dataColumnCount; i++) - { - auto cell = new GuiCellComposition; - textTable->AddChild(cell); - cell->SetSite(i + 1, 0, 1, 1); - - auto dataTable = new GuiTableComposition; - dataTable->SetRowsAndColumns(1, 2); - dataTable->SetRowOption(0, GuiCellOption::MinSizeOption()); - dataTable->SetColumnOption(0, GuiCellOption::MinSizeOption()); - dataTable->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); - dataTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - dataTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - cell->AddChild(dataTable); - { - auto cell = new GuiCellComposition; - dataTable->AddChild(cell); - cell->SetSite(0, 0, 1, 1); - - columnTexts[i] = GuiSolidLabelElement::Create(); - columnTexts[i]->SetText(view->GetColumnText(view->GetDataColumn(i) + 1) + L": "); - columnTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); - cell->SetOwnedElement(columnTexts[i]); - } - { - auto cell = new GuiCellComposition; - dataTable->AddChild(cell); - cell->SetSite(0, 1, 1, 1); - - dataTexts[i]= GuiSolidLabelElement::Create(); - dataTexts[i]->SetEllipse(true); - dataTexts[i]->SetText(view->GetSubItem(itemIndex, view->GetDataColumn(i))); - dataTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - cell->SetOwnedElement(dataTexts[i]); - } - } - } + container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + container->SetAlignmentToParent(Margin(2, 2, 2, 2)); } - FontChanged.AttachMethod(this, &InformationListViewItemTemplate::OnFontChanged); - - FontChanged.Execute(compositions::GuiEventArgs(this)); - } + AddChild(focusComposition); + AddChild(container); + SetContainerComposition(container); - void InformationListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - { - auto font = GetFont(); - font.size = (vint)(font.size * 1.2); - text->SetFont(font); - } - if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - vint dataColumnCount = view->GetDataColumnCount(); - for (vint i = 0; i < dataColumnCount; i++) - { - columnTexts[i]->SetFont(GetFont()); - dataTexts[i]->SetFont(GetFont()); - } - } + SelectedChanged.AttachMethod(this, &FocusRectangleVisualizerTemplate::OnSelectedChanged); + SelectedChanged.Execute(compositions::GuiEventArgs(this)); } - InformationListViewItemTemplate::InformationListViewItemTemplate() + FocusRectangleVisualizerTemplate::~FocusRectangleVisualizerTemplate() { } + +/*********************************************************************** +CellBorderVisualizerTemplate +***********************************************************************/ - InformationListViewItemTemplate::~InformationListViewItemTemplate() + void CellBorderVisualizerTemplate::OnItemSeparatorColorChanged(GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + border1->SetColor(GetItemSeparatorColor()); + border2->SetColor(GetItemSeparatorColor()); } -/*********************************************************************** -DetailListViewItemTemplate -***********************************************************************/ - - void DetailListViewItemTemplate::OnInitialize() + CellBorderVisualizerTemplate::CellBorderVisualizerTemplate() { - DefaultListViewItemTemplate::OnInitialize(); - columnItemView = dynamic_cast(listControl->GetItemProvider()->RequestView(ListViewColumnItemArranger::IColumnItemView::Identifier)); + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + auto bounds1 = new GuiBoundsComposition; { - textTable = new GuiTableComposition; - textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - textTable->SetRowsAndColumns(1, 1); - textTable->SetRowOption(0, GuiCellOption::MinSizeOption()); - textTable->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); - AddChild(textTable); - { - auto cell = new GuiCellComposition; - textTable->AddChild(cell); - cell->SetSite(0, 0, 1, 1); - - auto table = new GuiTableComposition; - cell->AddChild(table); - table->SetRowsAndColumns(3, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(2); - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->SetPreferredMinSize(Size(16, 16)); - - image = GuiImageFrameElement::Create(); - image->SetStretch(true); - cell->SetOwnedElement(image); - } - { - auto cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetMargin(Margin(0, 0, 8, 0)); - - text = GuiSolidLabelElement::Create(); - text->SetAlignments(Alignment::Left, Alignment::Center); - text->SetEllipse(true); - cell->SetOwnedElement(text); - } - } + border1 = GuiSolidBorderElement::Create(); + bounds1->SetOwnedElement(Ptr(border1)); + bounds1->SetAlignmentToParent(Margin(-1, 0, 0, 0)); } - - if (auto listView = dynamic_cast(listControl)) + auto bounds2 = new GuiBoundsComposition; { - auto itemIndex = GetIndex(); - if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - auto imageData = view->GetSmallImage(itemIndex); - if (imageData) - { - image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); - } - else - { - image->SetImage(0); - } - text->SetText(view->GetText(itemIndex)); - text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - - vint columnCount = view->GetColumnCount() - 1; - subItems.Resize(columnCount); - textTable->SetRowsAndColumns(1, columnCount + 1); - for (vint i = 0; i < columnCount; i++) - { - auto cell = new GuiCellComposition; - textTable->AddChild(cell); - cell->SetSite(0, i + 1, 1, 1); - cell->SetMargin(Margin(8, 0, 8, 0)); - - subItems[i] = GuiSolidLabelElement::Create(); - subItems[i]->SetAlignments(Alignment::Left, Alignment::Center); - subItems[i]->SetFont(text->GetFont()); - subItems[i]->SetEllipse(true); - subItems[i]->SetText(view->GetSubItem(itemIndex, i)); - subItems[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); - cell->SetOwnedElement(subItems[i]); - } - OnColumnChanged(); - } + border2 = GuiSolidBorderElement::Create(); + bounds2->SetOwnedElement(Ptr(border2)); + bounds2->SetAlignmentToParent(Margin(0, -1, 0, 0)); } - - FontChanged.AttachMethod(this, &DetailListViewItemTemplate::OnFontChanged); - - FontChanged.Execute(compositions::GuiEventArgs(this)); - } - - void DetailListViewItemTemplate::OnColumnChanged() - { - if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + auto container = new GuiBoundsComposition(); { - if (columnItemView) - { - vint columnCount = view->GetColumnCount(); - if (columnCount>textTable->GetColumns()) - { - columnCount = textTable->GetColumns(); - } - for (vint i = 0; iSetColumnOption(i, GuiCellOption::AbsoluteOption(columnItemView->GetColumnSize(i))); - } - textTable->UpdateCellBounds(); - } + container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + container->SetAlignmentToParent(Margin(0, 0, 1, 1)); } - } - void DetailListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - text->SetFont(GetFont()); - if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) - { - vint columnCount = view->GetColumnCount() - 1; - for (vint i = 0; i < columnCount; i++) - { - subItems[i]->SetFont(GetFont()); - } - } - } + AddChild(bounds1); + AddChild(bounds2); + AddChild(container); + SetContainerComposition(container); - DetailListViewItemTemplate::DetailListViewItemTemplate() - { + ItemSeparatorColorChanged.AttachMethod(this, &CellBorderVisualizerTemplate::OnItemSeparatorColorChanged); + ItemSeparatorColorChanged.Execute(compositions::GuiEventArgs(this)); } - DetailListViewItemTemplate::~DetailListViewItemTemplate() + CellBorderVisualizerTemplate::~CellBorderVisualizerTemplate() { } } @@ -12002,7 +11385,7 @@ DetailListViewItemTemplate } /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUITEXTLISTCONTROLS.CPP +.\CONTROLS\LISTCONTROLPACKAGE\GUILISTCONTROLITEMARRANGERS.CPP ***********************************************************************/ namespace vl @@ -12014,2546 +11397,2991 @@ namespace vl using namespace collections; using namespace elements; using namespace compositions; - using namespace reflection::description; namespace list { - const wchar_t* const ITextItemView::Identifier = L"vl::presentation::controls::list::ITextItemView"; /*********************************************************************** -DefaultTextListItemTemplate +RangedItemArrangerBase ***********************************************************************/ - TemplateProperty DefaultTextListItemTemplate::CreateBulletStyle() + void RangedItemArrangerBase::InvalidateAdoptedSize() { - return {}; + if (listControl) + { + listControl->AdoptedSizeInvalidated.Execute(listControl->GetNotifyEventArguments()); + } } - void DefaultTextListItemTemplate::OnInitialize() + vint RangedItemArrangerBase::CalculateAdoptedSize(vint expectedSize, vint count, vint itemSize) { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - - textElement = GuiSolidLabelElement::Create(); - textElement->SetAlignments(Alignment::Left, Alignment::Center); - - GuiBoundsComposition* textComposition = new GuiBoundsComposition; - textComposition->SetOwnedElement(textElement); - textComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); - - if (auto bulletStyleController = CreateBulletStyle()) + vint visibleCount = expectedSize / itemSize; + if (count < visibleCount) { - bulletButton = new GuiSelectableButton(theme::ThemeName::Unknown); - bulletButton->SetAutoFocus(false); - bulletButton->SetControlTemplate(bulletStyleController); - bulletButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - bulletButton->SelectedChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnBulletSelectedChanged); - - GuiTableComposition* table = new GuiTableComposition; - AddChild(table); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - table->SetRowsAndColumns(1, 2); - table->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 0, 1, 1); - cell->AddChild(bulletButton->GetBoundsComposition()); - } + visibleCount = count; + } + else if (count > visibleCount) + { + vint deltaA = expectedSize - count * itemSize; + vint deltaB = itemSize - deltaA; + if (deltaB < deltaA) { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 1, 1); - cell->AddChild(textComposition); - textComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + visibleCount++; } } - else + return visibleCount * itemSize; + } + + RangedItemArrangerBase::ItemStyleRecord RangedItemArrangerBase::CreateStyle(vint index) + { + GuiSelectableButton* backgroundButton = nullptr; + if (listControl->GetDisplayItemBackground()) { - AddChild(textComposition); - textComposition->SetAlignmentToParent(Margin(5, 2, 0, 2)); + backgroundButton = new GuiSelectableButton(theme::ThemeName::ListItemBackground); + if (auto style = listControl->TypedControlTemplateObject(true)->GetBackgroundTemplate()) + { + backgroundButton->SetControlTemplate(style); + } + backgroundButton->SetAutoFocus(false); + backgroundButton->SetAutoSelection(false); } - FontChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnFontChanged); - TextChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnTextChanged); - TextColorChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnTextColorChanged); - CheckedChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnCheckedChanged); - - FontChanged.Execute(compositions::GuiEventArgs(this)); - TextChanged.Execute(compositions::GuiEventArgs(this)); - TextColorChanged.Execute(compositions::GuiEventArgs(this)); - CheckedChanged.Execute(compositions::GuiEventArgs(this)); - } + auto itemStyle = callback->RequestItem(index, backgroundButton->GetBoundsComposition()); + if (backgroundButton) + { + itemStyle->SetAlignmentToParent(Margin(0, 0, 0, 0)); + itemStyle->SelectedChanged.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + backgroundButton->SetSelected(itemStyle->GetSelected()); + }); - void DefaultTextListItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - textElement->SetFont(GetFont()); + backgroundButton->SetSelected(itemStyle->GetSelected()); + backgroundButton->GetContainerComposition()->AddChild(itemStyle); + } + return { itemStyle, backgroundButton }; } - void DefaultTextListItemTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void RangedItemArrangerBase::DeleteStyle(ItemStyleRecord style) { - textElement->SetText(GetText()); + callback->ReleaseItem(style.key); + if (style.value) + { + SafeDeleteControl(style.value); + } } - void DefaultTextListItemTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + compositions::GuiBoundsComposition* RangedItemArrangerBase::GetStyleBounds(ItemStyleRecord style) { - textElement->SetColor(GetTextColor()); + return style.value ? style.value->GetBoundsComposition() : style.key; } - void DefaultTextListItemTemplate::OnCheckedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void RangedItemArrangerBase::ClearStyles() { - if (bulletButton) + startIndex = 0; + if (callback) { - supressEdit = true; - bulletButton->SetSelected(GetChecked()); - supressEdit = false; + for (vint i = 0; i < visibleStyles.Count(); i++) + { + DeleteStyle(visibleStyles[i]); + } } + visibleStyles.Clear(); + viewBounds = Rect(0, 0, 0, 0); + InvalidateItemSizeCache(); + InvalidateAdoptedSize(); } - void DefaultTextListItemTemplate::OnBulletSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void RangedItemArrangerBase::OnViewChangedInternal(Rect oldBounds, Rect newBounds) { - if (!supressEdit) + vint endIndex = startIndex + visibleStyles.Count() - 1; + vint newStartIndex = 0; + vint itemCount = itemProvider->Count(); + BeginPlaceItem(true, newBounds, newStartIndex); + if (newStartIndex < 0) newStartIndex = 0; + + StyleList newVisibleStyles; + for (vint i = newStartIndex; i < itemCount; i++) { - if (auto textItemView = dynamic_cast(listControl->GetItemProvider()->RequestView(ITextItemView::Identifier))) + bool reuseOldStyle = startIndex <= i && i <= endIndex; + auto style = reuseOldStyle ? visibleStyles[i - startIndex] : CreateStyle(i); + newVisibleStyles.Add(style); + + Rect bounds; + Margin alignmentToParent; + PlaceItem(true, !reuseOldStyle, i, style, newBounds, bounds, alignmentToParent); + if (IsItemOutOfViewBounds(i, style, bounds, newBounds)) { - BeginEditListItem(); - textItemView->SetChecked(GetIndex(), bulletButton->GetSelected()); - EndEditListItem(); + break; + } + + bounds.x1 -= newBounds.x1; + bounds.x2 -= newBounds.x1; + bounds.y1 -= newBounds.y1; + bounds.y2 -= newBounds.y1; + } + + vint newEndIndex = newStartIndex + newVisibleStyles.Count() - 1; + for (vint i = 0; i < visibleStyles.Count(); i++) + { + vint index = startIndex + i; + if (index < newStartIndex || index > newEndIndex) + { + DeleteStyle(visibleStyles[i]); } } + CopyFrom(visibleStyles, newVisibleStyles); + + if (EndPlaceItem(true, newBounds, newStartIndex)) + { + callback->OnTotalSizeChanged(); + InvalidateAdoptedSize(); + } + startIndex = newStartIndex; } - DefaultTextListItemTemplate::DefaultTextListItemTemplate() + void RangedItemArrangerBase::RearrangeItemBounds() { + vint newStartIndex = startIndex; + BeginPlaceItem(false, viewBounds, newStartIndex); + for (vint i = 0; i < visibleStyles.Count(); i++) + { + auto style = visibleStyles[i]; + Rect bounds; + Margin alignmentToParent(-1, -1, -1, -1); + PlaceItem(false, false, startIndex + i, style, viewBounds, bounds, alignmentToParent); + + bounds.x1 -= viewBounds.x1; + bounds.x2 -= viewBounds.x1; + bounds.y1 -= viewBounds.y1; + bounds.y2 -= viewBounds.y1; + + callback->SetStyleAlignmentToParent(GetStyleBounds(style), alignmentToParent); + callback->SetStyleBounds(GetStyleBounds(style), bounds); + } + EndPlaceItem(false, viewBounds, startIndex); } - DefaultTextListItemTemplate::~DefaultTextListItemTemplate() + RangedItemArrangerBase::RangedItemArrangerBase() { } -/*********************************************************************** -DefaultCheckTextListItemTemplate -***********************************************************************/ + RangedItemArrangerBase::~RangedItemArrangerBase() + { + } - TemplateProperty DefaultCheckTextListItemTemplate::CreateBulletStyle() + void RangedItemArrangerBase::OnAttached(GuiListControl::IItemProvider* provider) { - if (auto textList = dynamic_cast(listControl)) + itemProvider = provider; + if (provider) { - auto style = textList->TypedControlTemplateObject(true)->GetCheckBulletTemplate(); - if (style) return style; + OnItemModified(0, 0, provider->Count()); } - return theme::GetCurrentTheme()->CreateStyle(theme::ThemeName::CheckTextListItem); } -/*********************************************************************** -DefaultRadioTextListItemTemplate -***********************************************************************/ - - TemplateProperty DefaultRadioTextListItemTemplate::CreateBulletStyle() + void RangedItemArrangerBase::OnItemModified(vint start, vint count, vint newCount) { - if (auto textList = dynamic_cast(listControl)) + if (callback && !itemProvider->IsEditing()) { - auto style = textList->TypedControlTemplateObject(true)->GetRadioBulletTemplate(); - if (style) return style; + suppressOnViewChanged = true; + { + vint visibleCount = visibleStyles.Count(); + vint itemCount = itemProvider->Count(); + SortedList reusedStyles; + for (vint i = 0; i < visibleCount; i++) + { + vint index = startIndex + i; + if (index >= itemCount) + { + break; + } + + vint oldIndex = -1; + if (index < start) + { + oldIndex = index; + } + else if (index >= start + newCount) + { + oldIndex = index - newCount + count; + } + + if (oldIndex != -1) + { + if (oldIndex >= startIndex && oldIndex < startIndex + visibleCount) + { + auto style = visibleStyles[oldIndex - startIndex]; + reusedStyles.Add(style); + visibleStyles.Add(style); + } + else + { + oldIndex = -1; + } + } + if (oldIndex == -1) + { + visibleStyles.Add(CreateStyle(index)); + } + } + + for (vint i = 0; i < visibleCount; i++) + { + auto style = visibleStyles[i]; + if (!reusedStyles.Contains(style)) + { + DeleteStyle(style); + } + } + + visibleStyles.RemoveRange(0, visibleCount); + for (vint i = 0; i < visibleStyles.Count(); i++) + { + visibleStyles[i].key->SetIndex(startIndex + i); + } + } + suppressOnViewChanged = false; + + callback->OnTotalSizeChanged(); + callback->SetViewLocation(viewBounds.LeftTop()); + InvalidateAdoptedSize(); } - return theme::GetCurrentTheme()->CreateStyle(theme::ThemeName::RadioTextListItem); } -/*********************************************************************** -TextItem -***********************************************************************/ - - TextItem::TextItem() - :owner(0) - , checked(false) + void RangedItemArrangerBase::AttachListControl(GuiListControl* value) { + listControl = value; + InvalidateAdoptedSize(); } - TextItem::TextItem(const WString& _text, bool _checked) - :owner(0) - , text(_text) - , checked(_checked) + void RangedItemArrangerBase::DetachListControl() { + listControl = 0; } - TextItem::~TextItem() + GuiListControl::IItemArrangerCallback* RangedItemArrangerBase::GetCallback() { + return callback; } - bool TextItem::operator==(const TextItem& value)const + void RangedItemArrangerBase::SetCallback(GuiListControl::IItemArrangerCallback* value) { - return text==value.text; + if (callback != value) + { + ClearStyles(); + callback = value; + } } - bool TextItem::operator!=(const TextItem& value)const + Size RangedItemArrangerBase::GetTotalSize() { - return text!=value.text; + if (callback) + { + return OnCalculateTotalSize(); + } + else + { + return Size(0, 0); + } } - const WString& TextItem::GetText() + GuiListControl::ItemStyle* RangedItemArrangerBase::GetVisibleStyle(vint itemIndex) { - return text; + if (startIndex <= itemIndex && itemIndex < startIndex + visibleStyles.Count()) + { + return visibleStyles[itemIndex - startIndex].key; + } + else + { + return nullptr; + } } - void TextItem::SetText(const WString& value) + vint RangedItemArrangerBase::GetVisibleIndex(GuiListControl::ItemStyle* style) { - if (text != value) + for (vint i = 0; i < visibleStyles.Count(); i++) { - text = value; - if (owner) + if (visibleStyles[i].key == style) { - vint index = owner->IndexOf(this); - owner->InvokeOnItemModified(index, 1, 1); + return i + startIndex; } } + return -1; } - bool TextItem::GetChecked() + void RangedItemArrangerBase::ReloadVisibleStyles() { - return checked; + ClearStyles(); } - void TextItem::SetChecked(bool value) + void RangedItemArrangerBase::OnViewChanged(Rect bounds) { - if (checked != value) + if (!suppressOnViewChanged) { - checked = value; - if (owner) + suppressOnViewChanged = true; + Rect oldBounds = viewBounds; + viewBounds = bounds; + if (callback) { - vint index = owner->IndexOf(this); - owner->InvokeOnItemModified(index, 1, 1); - - GuiItemEventArgs arguments; - arguments.itemIndex = index; - owner->listControl->ItemChecked.Execute(arguments); + OnViewChangedInternal(oldBounds, viewBounds); + RearrangeItemBounds(); } + suppressOnViewChanged = false; } } /*********************************************************************** -TextItemProvider +FreeHeightItemArranger ***********************************************************************/ - void TextItemProvider::AfterInsert(vint item, const Ptr& value) + void FreeHeightItemArranger::EnsureOffsetForItem(vint itemIndex) { - ListProvider>::AfterInsert(item, value); - value->owner = this; + if (heights.Count() == 0) return; + + if (availableOffsetCount == 0) + { + availableOffsetCount = 1; + offsets[0] = 0; + } + + for (vint i = availableOffsetCount; i < itemIndex && i < heights.Count(); i++) + { + offsets[i] = offsets[i - 1] + heights[i - 1]; + } } - void TextItemProvider::BeforeRemove(vint item, const Ptr& value) + void FreeHeightItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) { - value->owner = 0; - ListProvider>::BeforeRemove(item, value); + pim_heightUpdated = false; + EnsureOffsetForItem(heights.Count() - 1); + if (forMoving) + { + for (vint i = 0; i < heights.Count(); i++) + { + if (offsets[i] + heights[i] >= newBounds.Top()) + { + newStartIndex = i; + break; + } + } + } } - WString TextItemProvider::GetTextValue(vint itemIndex) + void FreeHeightItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) { - return Get(itemIndex)->GetText(); + vint styleHeight = heights[index]; + { + auto composition = GetStyleBounds(style); + auto currentBounds = callback->GetStyleBounds(composition); + callback->SetStyleBounds(composition, Rect(bounds.LeftTop(), Size(viewBounds.Width(), bounds.Height()))); + vint newStyleHeight = callback->GetStylePreferredSize(composition).y; + callback->SetStyleBounds(composition, currentBounds); + + if (!newCreatedStyle || styleHeight < newStyleHeight) + { + styleHeight = newStyleHeight; + } + } + + if (heights[index] != styleHeight) + { + heights[index] = styleHeight; + pim_heightUpdated = true; + } + + vint styleOffset = index == 0 ? 0 : offsets[index - 1] + heights[index - 1]; + if (availableOffsetCount <= index || offsets[index] != styleOffset) + { + offsets[index] = styleOffset; + availableOffsetCount = index; + } + + bounds = Rect(Point(0, offsets[index]), Size(viewBounds.Width(), heights[index])); } - description::Value TextItemProvider::GetBindingValue(vint itemIndex) + bool FreeHeightItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) { - return Value::From(Get(itemIndex)); + return bounds.Top() >= viewBounds.Bottom(); } - bool TextItemProvider::GetChecked(vint itemIndex) + bool FreeHeightItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) { - return Get(itemIndex)->GetChecked(); + if (forMoving) + { + return pim_heightUpdated; + } + return false; } - void TextItemProvider::SetChecked(vint itemIndex, bool value) + void FreeHeightItemArranger::InvalidateItemSizeCache() { - return Get(itemIndex)->SetChecked(value); + availableOffsetCount = 0; + for (vint i = 0; i < heights.Count(); i++) + { + heights[i] = 1; + } } - TextItemProvider::TextItemProvider() - :listControl(0) + Size FreeHeightItemArranger::OnCalculateTotalSize() { + if (heights.Count() == 0) return Size(0, 0); + EnsureOffsetForItem(heights.Count()); + return Size(viewBounds.Width(), offsets[heights.Count() - 1] + heights[heights.Count() - 1]); } - TextItemProvider::~TextItemProvider() + FreeHeightItemArranger::FreeHeightItemArranger() { } - IDescriptable* TextItemProvider::RequestView(const WString& identifier) + FreeHeightItemArranger::~FreeHeightItemArranger() { - if (identifier == ITextItemView::Identifier) + } + + void FreeHeightItemArranger::OnAttached(GuiListControl::IItemProvider* provider) + { + if (provider) { - return (ITextItemView*)this; + vint itemCount = provider->Count(); + heights.Resize(itemCount); + offsets.Resize(itemCount); + for (vint i = 0; i < heights.Count(); i++) + { + heights[i] = 1; + } + availableOffsetCount = 0; } else { - return nullptr; + heights.Resize(0); + offsets.Resize(0); + availableOffsetCount = 0; } + RangedItemArrangerBase::OnAttached(provider); } - } -/*********************************************************************** -GuiTextList -***********************************************************************/ + void FreeHeightItemArranger::OnItemModified(vint start, vint count, vint newCount) + { + availableOffsetCount = start; + vint itemCount = heights.Count() + newCount - count; - void GuiVirtualTextList::BeforeControlTemplateUninstalled_() - { - } + if (count < newCount) + { + heights.Resize(itemCount); + if (start + newCount < itemCount) + { + memmove(&heights[start + newCount], &heights[start + count], sizeof(vint) * (itemCount - start - newCount)); + } + } + else if (count > newCount) + { + if (start + newCount < itemCount) + { + memmove(&heights[start + newCount], &heights[start + count], sizeof(vint) * (itemCount - start - newCount)); + } + heights.Resize(itemCount); + } - void GuiVirtualTextList::AfterControlTemplateInstalled_(bool initialize) - { - } + for (vint i = 0; i < newCount; i++) + { + heights[start + i] = 1; + } + offsets.Resize(itemCount); - void GuiVirtualTextList::OnStyleInstalled(vint itemIndex, ItemStyle* style) - { - GuiSelectableListControl::OnStyleInstalled(itemIndex, style); - if (auto textItemStyle = dynamic_cast(style)) + RangedItemArrangerBase::OnItemModified(start, count, newCount); + } + + vint FreeHeightItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) { - textItemStyle->SetTextColor(TypedControlTemplateObject(true)->GetTextColor()); - if (auto textItemView = dynamic_cast(itemProvider->RequestView(list::ITextItemView::Identifier))) + vint count = itemProvider->Count(); + if (count == 0) return -1; + switch (key) { - textItemStyle->SetChecked(textItemView->GetChecked(itemIndex)); + case KeyDirection::Up: + itemIndex--; + break; + case KeyDirection::Down: + itemIndex++; + break; + case KeyDirection::Home: + itemIndex = 0; + break; + case KeyDirection::End: + itemIndex = count; + break; + case KeyDirection::PageUp: + itemIndex -= visibleStyles.Count(); + break; + case KeyDirection::PageDown: + itemIndex += visibleStyles.Count(); + break; + default: + return -1; } + + if (itemIndex < 0) return 0; + else if (itemIndex >= count) return count - 1; + else return itemIndex; } - } - void GuiVirtualTextList::OnItemTemplateChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - view = TextListView::Unknown; - } + GuiListControl::EnsureItemVisibleResult FreeHeightItemArranger::EnsureItemVisible(vint itemIndex) + { + if (callback) + { + bool moved = false; + while (true) + { + if (itemIndex < 0 || itemIndex >= itemProvider->Count()) + { + return GuiListControl::EnsureItemVisibleResult::ItemNotExists; + } - GuiVirtualTextList::GuiVirtualTextList(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) - :GuiSelectableListControl(themeName, _itemProvider) - { - ItemTemplateChanged.AttachMethod(this, &GuiVirtualTextList::OnItemTemplateChanged); - ItemChecked.SetAssociatedComposition(boundsComposition); + EnsureOffsetForItem(itemIndex); + vint offset = viewBounds.y1; + vint top = offsets[itemIndex]; + vint bottom = top + heights[itemIndex]; + vint height = viewBounds.Height(); - SetView(TextListView::Text); - } + Point location = viewBounds.LeftTop(); - GuiVirtualTextList::~GuiVirtualTextList() - { - } + if (offset >= top && offset + height <= bottom) + { + break; + } + else if (offset > top) + { + location.y = top; + } + else if (offset < bottom - height) + { + location.y = bottom - height; + } + else + { + break; + } - TextListView GuiVirtualTextList::GetView() - { - return view; - } + auto oldLeftTop = viewBounds.LeftTop(); + callback->SetViewLocation(location); + moved |= viewBounds.LeftTop() != oldLeftTop; + if (viewBounds.LeftTop() != location) break; + } + return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; + } + return GuiListControl::EnsureItemVisibleResult::NotMoved; + } - void GuiVirtualTextList::SetView(TextListView _view) - { - switch (_view) + Size FreeHeightItemArranger::GetAdoptedSize(Size expectedSize) { - case TextListView::Text: - SetStyleAndArranger( - [](const Value&) { return new list::DefaultTextListItemTemplate; }, - new list::FixedHeightItemArranger - ); - break; - case TextListView::Check: - SetStyleAndArranger( - [](const Value&) { return new list::DefaultCheckTextListItemTemplate; }, - new list::FixedHeightItemArranger - ); - break; - case TextListView::Radio: - SetStyleAndArranger( - [](const Value&) { return new list::DefaultRadioTextListItemTemplate; }, - new list::FixedHeightItemArranger - ); - break; - default:; + vint h = expectedSize.x * 2; + if (expectedSize.y < h) expectedSize.y = h; + return expectedSize; } - view = _view; - } - -/*********************************************************************** -GuiTextList -***********************************************************************/ - - GuiTextList::GuiTextList(theme::ThemeName themeName) - :GuiVirtualTextList(themeName, new list::TextItemProvider) - { - items=dynamic_cast(itemProvider.Obj()); - items->listControl=this; - } - - GuiTextList::~GuiTextList() - { - } - - list::TextItemProvider& GuiTextList::GetItems() - { - return *items; - } - - Ptr GuiTextList::GetSelectedItem() - { - vint index = GetSelectedItemIndex(); - if (index == -1) return 0; - return items->Get(index); - } - } - } -} /*********************************************************************** -.\CONTROLS\LISTCONTROLPACKAGE\GUITREEVIEWCONTROLS.CPP +FixedHeightItemArranger ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace compositions; - using namespace reflection::description; + vint FixedHeightItemArranger::GetWidth() + { + return -1; + } - namespace tree - { - const wchar_t* const INodeItemView::Identifier = L"vl::presentation::controls::tree::INodeItemView"; + vint FixedHeightItemArranger::GetYOffset() + { + return 0; + } -/*********************************************************************** -NodeItemProvider -***********************************************************************/ + void FixedHeightItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) + { + pi_width = GetWidth(); + if (forMoving) + { + pim_rowHeight = rowHeight; + newStartIndex = (newBounds.Top() - GetYOffset()) / rowHeight; + } + } - Ptr NodeItemProvider::GetNodeByOffset(Ptr provider, vint offset) + void FixedHeightItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) { - if (offset == 0) return provider; - Ptr result; - if (provider->GetExpanding() && offset > 0) + vint top = GetYOffset() + index * rowHeight; + if (pi_width == -1) { - offset -= 1; - vint count = provider->GetChildCount(); - for (vint i = 0; (!result && i < count); i++) + alignmentToParent = Margin(0, -1, 0, -1); + bounds = Rect(Point(0, top), Size(0, rowHeight)); + } + else + { + alignmentToParent = Margin(-1, -1, -1, -1); + bounds = Rect(Point(0, top), Size(pi_width, rowHeight)); + } + if (forMoving) + { + vint styleHeight = callback->GetStylePreferredSize(GetStyleBounds(style)).y; + if (pim_rowHeight < styleHeight) { - auto child = provider->GetChild(i); - vint visibleCount = child->CalculateTotalVisibleNodes(); - if (offset < visibleCount) - { - result = GetNodeByOffset(child, offset); - } - else - { - offset -= visibleCount; - } + pim_rowHeight = styleHeight; } } - return result; } - void NodeItemProvider::OnAttached(INodeRootProvider* provider) + bool FixedHeightItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) { + return bounds.Top() >= viewBounds.Bottom(); } - void NodeItemProvider::OnBeforeItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) + bool FixedHeightItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) { - vint offset = 0; - vint base = CalculateNodeVisibilityIndexInternal(parentNode); - if (base != -2 && parentNode->GetExpanding()) + if (forMoving) { - for (vint i = 0; i < count; i++) + if (pim_rowHeight != rowHeight) { - auto child = parentNode->GetChild(start + i); - offset += child->CalculateTotalVisibleNodes(); + vint offset = (pim_rowHeight - rowHeight) * newStartIndex; + rowHeight = pim_rowHeight; + callback->SetViewLocation(Point(0, newBounds.Top() + offset)); + return true; } } - offsetBeforeChildModifieds.Set(parentNode, offset); + return false; } - void NodeItemProvider::OnAfterItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) + void FixedHeightItemArranger::InvalidateItemSizeCache() { - vint offsetBeforeChildModified = 0; + rowHeight = 1; + } + + Size FixedHeightItemArranger::OnCalculateTotalSize() + { + vint width = GetWidth(); + if (width < 0) width = 0; + return Size(width, rowHeight * itemProvider->Count() + GetYOffset()); + } + + FixedHeightItemArranger::FixedHeightItemArranger() + { + } + + FixedHeightItemArranger::~FixedHeightItemArranger() + { + } + + vint FixedHeightItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) + { + vint count = itemProvider->Count(); + if (count == 0) return -1; + vint groupCount = viewBounds.Height() / rowHeight; + if (groupCount == 0) groupCount = 1; + switch (key) { - vint index = offsetBeforeChildModifieds.Keys().IndexOf(parentNode); - if (index != -1) - { - offsetBeforeChildModified = offsetBeforeChildModifieds.Values().Get(index); - offsetBeforeChildModifieds.Remove(parentNode); - } + case KeyDirection::Up: + itemIndex--; + break; + case KeyDirection::Down: + itemIndex++; + break; + case KeyDirection::Home: + itemIndex = 0; + break; + case KeyDirection::End: + itemIndex = count; + break; + case KeyDirection::PageUp: + itemIndex -= groupCount; + break; + case KeyDirection::PageDown: + itemIndex += groupCount; + break; + default: + return -1; } - vint base = CalculateNodeVisibilityIndexInternal(parentNode); - if (base != -2 && parentNode->GetExpanding()) + if (itemIndex < 0) return 0; + else if (itemIndex >= count) return count - 1; + else return itemIndex; + } + + GuiListControl::EnsureItemVisibleResult FixedHeightItemArranger::EnsureItemVisible(vint itemIndex) + { + if (callback) { - vint offset = 0; - vint firstChildStart = -1; - for (vint i = 0; i < newCount; i++) + if (itemIndex < 0 || itemIndex >= itemProvider->Count()) { - auto child = parentNode->GetChild(start + i); - if (i == 0) + return GuiListControl::EnsureItemVisibleResult::ItemNotExists; + } + bool moved = false; + while (true) + { + vint yOffset = GetYOffset(); + vint top = itemIndex*rowHeight; + vint bottom = top + rowHeight + yOffset; + + if (viewBounds.Height() < rowHeight) { - firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); + if (viewBounds.Top() < bottom && top < viewBounds.Bottom()) + { + break; + } } - offset += child->CalculateTotalVisibleNodes(); - } - if (firstChildStart == -1) - { - vint childCount = parentNode->GetChildCount(); - if (childCount == 0) + Point location = viewBounds.LeftTop(); + if (viewBounds.y1 >= top && viewBounds.y2 <= bottom) { - firstChildStart = base + 1; + break; } - else if (start < childCount) + else if (top < viewBounds.Top()) { - auto child = parentNode->GetChild(start); - firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); + location.y = top; + } + else if (viewBounds.Bottom() < bottom) + { + location.y = bottom - viewBounds.Height(); } else { - auto child = parentNode->GetChild(start - 1); - firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); - firstChildStart += child->CalculateTotalVisibleNodes(); + break; } + + auto oldLeftTop = viewBounds.LeftTop(); + callback->SetViewLocation(location); + moved |= viewBounds.LeftTop() != oldLeftTop; + if (viewBounds.LeftTop() != location) break; } - InvokeOnItemModified(firstChildStart, offsetBeforeChildModified, offset); + return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; } + return GuiListControl::EnsureItemVisibleResult::NotMoved; } - void NodeItemProvider::OnItemExpanded(INodeProvider* node) + Size FixedHeightItemArranger::GetAdoptedSize(Size expectedSize) { - vint base = CalculateNodeVisibilityIndexInternal(node); - if (base != -2) + if (itemProvider) { - vint visibility = node->CalculateTotalVisibleNodes(); - InvokeOnItemModified(base + 1, 0, visibility - 1); + vint yOffset = GetYOffset(); + vint y = expectedSize.y - yOffset; + vint itemCount = itemProvider->Count(); + return Size(expectedSize.x, yOffset + CalculateAdoptedSize(y, itemCount, rowHeight)); } + return expectedSize; } - void NodeItemProvider::OnItemCollapsed(INodeProvider* node) +/*********************************************************************** +FixedSizeMultiColumnItemArranger +***********************************************************************/ + + void FixedSizeMultiColumnItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) { - vint base = CalculateNodeVisibilityIndexInternal(node); - if (base != -2) + if (forMoving) { - vint visibility = 0; - vint count = node->GetChildCount(); - for (vint i = 0; i < count; i++) - { - auto child = node->GetChild(i); - visibility += child->CalculateTotalVisibleNodes(); - } - InvokeOnItemModified(base + 1, visibility, 0); + pim_itemSize = itemSize; + vint rows = newBounds.Top() / itemSize.y; + if (rows < 0) rows = 0; + vint cols = newBounds.Width() / itemSize.x; + if (cols < 1) cols = 1; + newStartIndex = rows * cols; } } - vint NodeItemProvider::CalculateNodeVisibilityIndexInternal(INodeProvider* node) + void FixedSizeMultiColumnItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) { - auto parent = node->GetParent(); - if (!parent) - { - return -1; - } - if (!parent->GetExpanding()) - { - return -2; - } + vint rowItems = viewBounds.Width() / itemSize.x; + if (rowItems < 1) rowItems = 1; - vint index = CalculateNodeVisibilityIndexInternal(parent.Obj()); - if (index == -2) + vint row = index / rowItems; + vint col = index % rowItems; + bounds = Rect(Point(col * itemSize.x, row * itemSize.y), itemSize); + if (forMoving) { - return -2; + Size styleSize = callback->GetStylePreferredSize(GetStyleBounds(style)); + if (pim_itemSize.x < styleSize.x) pim_itemSize.x = styleSize.x; + if (pim_itemSize.y < styleSize.y) pim_itemSize.y = styleSize.y; } + } - vint count = parent->GetChildCount(); - for (vint i = 0; i < count; i++) + bool FixedSizeMultiColumnItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + { + return bounds.Top() >= viewBounds.Bottom(); + } + + bool FixedSizeMultiColumnItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + { + if (forMoving) { - auto child = parent->GetChild(i); - bool findResult = child == node; - if (findResult) - { - index++; - } - else - { - index += child->CalculateTotalVisibleNodes(); - } - if (findResult) + if (pim_itemSize != itemSize) { - return index; + itemSize = pim_itemSize; + return true; } } - return -1; + return false; } - vint NodeItemProvider::CalculateNodeVisibilityIndex(INodeProvider* node) + void FixedSizeMultiColumnItemArranger::CalculateRange(Size itemSize, Rect bounds, vint count, vint& start, vint& end) { - vint result = CalculateNodeVisibilityIndexInternal(node); - return result < 0 ? -1 : result; - } + vint startRow = bounds.Top() / itemSize.y; + if (startRow < 0) startRow = 0; + vint endRow = (bounds.Bottom() - 1) / itemSize.y; + vint cols = bounds.Width() / itemSize.x; + if (cols < 1) cols = 1; - Ptr NodeItemProvider::RequestNode(vint index) - { - if(root->CanGetNodeByVisibleIndex()) - { - return root->GetNodeByVisibleIndex(index+1); - } - else - { - return GetNodeByOffset(root->GetRootNode(), index+1); - } + start = startRow*cols; + end = (endRow + 1)*cols - 1; + if (end >= count) end = count - 1; } - NodeItemProvider::NodeItemProvider(Ptr _root) - :root(_root) + void FixedSizeMultiColumnItemArranger::InvalidateItemSizeCache() { - root->AttachCallback(this); + itemSize = Size(1, 1); } - NodeItemProvider::~NodeItemProvider() + Size FixedSizeMultiColumnItemArranger::OnCalculateTotalSize() { - root->DetachCallback(this); + vint rowItems = viewBounds.Width() / itemSize.x; + if (rowItems < 1) rowItems = 1; + vint rows = itemProvider->Count() / rowItems; + if (itemProvider->Count() % rowItems) rows++; + + return Size(itemSize.x * rowItems, itemSize.y*rows); } - Ptr NodeItemProvider::GetRoot() + FixedSizeMultiColumnItemArranger::FixedSizeMultiColumnItemArranger() { - return root; } - vint NodeItemProvider::Count() + FixedSizeMultiColumnItemArranger::~FixedSizeMultiColumnItemArranger() { - return root->GetRootNode()->CalculateTotalVisibleNodes()-1; } - WString NodeItemProvider::GetTextValue(vint itemIndex) + vint FixedSizeMultiColumnItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) { - if (auto node = RequestNode(itemIndex)) + vint count = itemProvider->Count(); + vint columnCount = viewBounds.Width() / itemSize.x; + if (columnCount == 0) columnCount = 1; + vint rowCount = viewBounds.Height() / itemSize.y; + if (rowCount == 0) rowCount = 1; + + switch (key) { - return root->GetTextValue(node.Obj()); + case KeyDirection::Up: + itemIndex -= columnCount; + break; + case KeyDirection::Down: + itemIndex += columnCount; + break; + case KeyDirection::Left: + itemIndex--; + break; + case KeyDirection::Right: + itemIndex++; + break; + case KeyDirection::Home: + itemIndex = 0; + break; + case KeyDirection::End: + itemIndex = count; + break; + case KeyDirection::PageUp: + itemIndex -= columnCount*rowCount; + break; + case KeyDirection::PageDown: + itemIndex += columnCount*rowCount; + break; + case KeyDirection::PageLeft: + itemIndex -= itemIndex%columnCount; + break; + case KeyDirection::PageRight: + itemIndex += columnCount - itemIndex%columnCount - 1; + break; + default: + return -1; } - return L""; + + if (itemIndex < 0) return 0; + else if (itemIndex >= count) return count - 1; + else return itemIndex; } - description::Value NodeItemProvider::GetBindingValue(vint itemIndex) + GuiListControl::EnsureItemVisibleResult FixedSizeMultiColumnItemArranger::EnsureItemVisible(vint itemIndex) { - if (auto node = RequestNode(itemIndex)) + if (callback) { - return root->GetBindingValue(node.Obj()); + if (itemIndex < 0 || itemIndex >= itemProvider->Count()) + { + return GuiListControl::EnsureItemVisibleResult::ItemNotExists; + } + bool moved = false; + while (true) + { + vint rowHeight = itemSize.y; + vint columnCount = viewBounds.Width() / itemSize.x; + if (columnCount == 0) columnCount = 1; + vint rowIndex = itemIndex / columnCount; + + vint top = rowIndex*rowHeight; + vint bottom = top + rowHeight; + + if (viewBounds.Height() < rowHeight) + { + if (viewBounds.Top() < bottom && top < viewBounds.Bottom()) + { + break; + } + } + + Point location = viewBounds.LeftTop(); + if (top < viewBounds.Top()) + { + location.y = top; + } + else if (viewBounds.Bottom() < bottom) + { + location.y = bottom - viewBounds.Height(); + } + else + { + break; + } + + auto oldLeftTop = viewBounds.LeftTop(); + callback->SetViewLocation(location); + moved |= viewBounds.LeftTop() != oldLeftTop; + if (viewBounds.LeftTop() != location) break; + } + return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; } - return Value(); + return GuiListControl::EnsureItemVisibleResult::NotMoved; } - IDescriptable* NodeItemProvider::RequestView(const WString& identifier) + Size FixedSizeMultiColumnItemArranger::GetAdoptedSize(Size expectedSize) { - if(identifier==INodeItemView::Identifier) - { - return (INodeItemView*)this; - } - else + if (itemProvider) { - return root->RequestView(identifier); + vint count = itemProvider->Count(); + vint columnCount = viewBounds.Width() / itemSize.x; + vint rowCount = viewBounds.Height() / itemSize.y; + return Size( + CalculateAdoptedSize(expectedSize.x, columnCount, itemSize.x), + CalculateAdoptedSize(expectedSize.y, rowCount, itemSize.y) + ); } + return expectedSize; } /*********************************************************************** -MemoryNodeProvider::NodeCollection +FixedHeightMultiColumnItemArranger ***********************************************************************/ - void MemoryNodeProvider::NodeCollection::OnBeforeChildModified(vint start, vint count, vint newCount) + void FixedHeightMultiColumnItemArranger::CalculateRange(vint itemHeight, Rect bounds, vint& rows, vint& startColumn) { - if (ownerProvider->expanding) - { - for (vint i = 0; i < count; i++) - { - offsetBeforeChildModified += items[start + i]->totalVisibleNodeCount; - } - } - INodeProviderCallback* proxy = ownerProvider->GetCallbackProxyInternal(); - if (proxy) - { - proxy->OnBeforeItemModified(ownerProvider, start, count, newCount); - } + rows = bounds.Height() / itemHeight; + if (rows < 1) rows = 1; + startColumn = bounds.Left() / bounds.Width(); } - void MemoryNodeProvider::NodeCollection::OnAfterChildModified(vint start, vint count, vint newCount) + void FixedHeightMultiColumnItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) { - ownerProvider->childCount += (newCount - count); - if (ownerProvider->expanding) - { - vint offset = 0; - for (vint i = 0; i < newCount; i++) - { - offset += items[start + i]->totalVisibleNodeCount; - } - ownerProvider->OnChildTotalVisibleNodesChanged(offset - offsetBeforeChildModified); - } - offsetBeforeChildModified = 0; - INodeProviderCallback* proxy = ownerProvider->GetCallbackProxyInternal(); - if (proxy) + pi_currentWidth = 0; + pi_totalWidth = 0; + if (forMoving) { - proxy->OnAfterItemModified(ownerProvider, start, count, newCount); + pim_itemHeight = itemHeight; + vint rows = newBounds.Height() / itemHeight; + if (rows < 1) rows = 1; + vint columns = newBounds.Left() / newBounds.Width(); + newStartIndex = rows * columns; } } - bool MemoryNodeProvider::NodeCollection::QueryInsert(vint index, Ptr const& child) - { - return child->parent == 0; - } - - bool MemoryNodeProvider::NodeCollection::QueryRemove(vint index, Ptr const& child) - { - return child->parent == ownerProvider; - } - - void MemoryNodeProvider::NodeCollection::BeforeInsert(vint index, Ptr const& child) - { - OnBeforeChildModified(index, 0, 1); - child->parent = ownerProvider; - } - - void MemoryNodeProvider::NodeCollection::BeforeRemove(vint index, Ptr const& child) - { - OnBeforeChildModified(index, 1, 0); - child->parent = 0; - } - - void MemoryNodeProvider::NodeCollection::AfterInsert(vint index, Ptr const& child) - { - OnAfterChildModified(index, 0, 1); - } - - void MemoryNodeProvider::NodeCollection::AfterRemove(vint index, vint count) - { - OnAfterChildModified(index, count, 0); - } - - MemoryNodeProvider::NodeCollection::NodeCollection() - :ownerProvider(0) + void FixedHeightMultiColumnItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) { - } - -/*********************************************************************** -MemoryNodeProvider -***********************************************************************/ + vint rows = viewBounds.Height() / itemHeight; + if (rows < 1) rows = 1; - INodeProviderCallback* MemoryNodeProvider::GetCallbackProxyInternal() - { - if(parent) + vint row = index % rows; + if (row == 0) { - return parent->GetCallbackProxyInternal(); + pi_totalWidth += pi_currentWidth; + pi_currentWidth = 0; } - else + + Size styleSize = callback->GetStylePreferredSize(GetStyleBounds(style)); + if (pi_currentWidth < styleSize.x) pi_currentWidth = styleSize.x; + bounds = Rect(Point(pi_totalWidth + viewBounds.Left(), itemHeight * row), Size(0, 0)); + if (forMoving) { - return 0; + if (pim_itemHeight < styleSize.y) pim_itemHeight = styleSize.y; } } - void MemoryNodeProvider::OnChildTotalVisibleNodesChanged(vint offset) + bool FixedHeightMultiColumnItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) { - totalVisibleNodeCount+=offset; - if(parent) + return bounds.Left() >= viewBounds.Right(); + } + + bool FixedHeightMultiColumnItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + { + if (forMoving) { - parent->OnChildTotalVisibleNodesChanged(offset); + if (pim_itemHeight != itemHeight) + { + itemHeight = pim_itemHeight; + return true; + } } + return false; } - MemoryNodeProvider::MemoryNodeProvider(Ptr _data) - :data(_data) + void FixedHeightMultiColumnItemArranger::InvalidateItemSizeCache() { - children.ownerProvider=this; + itemHeight = 1; } - MemoryNodeProvider::~MemoryNodeProvider() + Size FixedHeightMultiColumnItemArranger::OnCalculateTotalSize() { + vint rows = viewBounds.Height() / itemHeight; + if (rows < 1) rows = 1; + vint columns = itemProvider->Count() / rows; + if (itemProvider->Count() % rows) columns += 1; + return Size(viewBounds.Width() * columns, 0); } - Ptr MemoryNodeProvider::GetData() + FixedHeightMultiColumnItemArranger::FixedHeightMultiColumnItemArranger() + :itemHeight(1) { - return data; } - void MemoryNodeProvider::SetData(const Ptr& value) + FixedHeightMultiColumnItemArranger::~FixedHeightMultiColumnItemArranger() { - data=value; - NotifyDataModified(); } - void MemoryNodeProvider::NotifyDataModified() + vint FixedHeightMultiColumnItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) { - if(parent) + vint count = itemProvider->Count(); + vint groupCount = viewBounds.Height() / itemHeight; + if (groupCount == 0) groupCount = 1; + switch (key) { - vint index=parent->children.IndexOf(this); - INodeProviderCallback* proxy=GetCallbackProxyInternal(); - if(proxy) - { - proxy->OnBeforeItemModified(parent, index, 1, 1); - proxy->OnAfterItemModified(parent, index, 1, 1); - } + case KeyDirection::Up: + itemIndex--; + break; + case KeyDirection::Down: + itemIndex++; + break; + case KeyDirection::Left: + itemIndex -= groupCount; + break; + case KeyDirection::Right: + itemIndex += groupCount; + break; + case KeyDirection::Home: + itemIndex = 0; + break; + case KeyDirection::End: + itemIndex = count; + break; + case KeyDirection::PageUp: + itemIndex -= itemIndex%groupCount; + break; + case KeyDirection::PageDown: + itemIndex += groupCount - itemIndex%groupCount - 1; + break; + default: + return -1; } - } - - MemoryNodeProvider::NodeCollection& MemoryNodeProvider::Children() - { - return children; - } - bool MemoryNodeProvider::GetExpanding() - { - return expanding; + if (itemIndex < 0) return 0; + else if (itemIndex >= count) return count - 1; + else return itemIndex; } - void MemoryNodeProvider::SetExpanding(bool value) + GuiListControl::EnsureItemVisibleResult FixedHeightMultiColumnItemArranger::EnsureItemVisible(vint itemIndex) { - if(expanding!=value) + if (callback) { - expanding=value; - vint offset=0; - for(vint i=0;i= itemProvider->Count()) { - offset+=children[i]->totalVisibleNodeCount; + return GuiListControl::EnsureItemVisibleResult::ItemNotExists; } - - OnChildTotalVisibleNodesChanged(expanding?offset:-offset); - INodeProviderCallback* proxy=GetCallbackProxyInternal(); - if(proxy) + bool moved = false; + while (true) { - if(expanding) + vint rowCount = viewBounds.Height() / itemHeight; + if (rowCount == 0) rowCount = 1; + vint columnIndex = itemIndex / rowCount; + vint minIndex = startIndex; + vint maxIndex = startIndex + visibleStyles.Count() - 1; + + Point location = viewBounds.LeftTop(); + if (minIndex <= itemIndex && itemIndex <= maxIndex) { - proxy->OnItemExpanded(this); + Rect bounds = callback->GetStyleBounds(GetStyleBounds(visibleStyles[itemIndex - startIndex])); + if (0 < bounds.Bottom() && bounds.Top() < viewBounds.Width() && bounds.Width() > viewBounds.Width()) + { + break; + } + else if (bounds.Left() < 0) + { + location.x -= viewBounds.Width(); + } + else if (bounds.Right() > viewBounds.Width()) + { + location.x += viewBounds.Width(); + } + else + { + break; + } + } + else if (columnIndex < minIndex / rowCount) + { + location.x -= viewBounds.Width(); + } + else if (columnIndex >= maxIndex / rowCount) + { + location.x += viewBounds.Width(); } else { - proxy->OnItemCollapsed(this); + break; } + + auto oldLeftTop = viewBounds.LeftTop(); + callback->SetViewLocation(location); + moved |= viewBounds.LeftTop() != oldLeftTop; + if (viewBounds.LeftTop() != location) break; } + return moved ? GuiListControl::EnsureItemVisibleResult::Moved : GuiListControl::EnsureItemVisibleResult::NotMoved; } + return GuiListControl::EnsureItemVisibleResult::NotMoved; } - vint MemoryNodeProvider::CalculateTotalVisibleNodes() - { - return totalVisibleNodeCount; - } - - vint MemoryNodeProvider::GetChildCount() - { - return childCount; - } - - Ptr MemoryNodeProvider::GetParent() - { - return parent; - } - - Ptr MemoryNodeProvider::GetChild(vint index) + Size FixedHeightMultiColumnItemArranger::GetAdoptedSize(Size expectedSize) { - if(0<=index && indexCount(); + return Size(expectedSize.x, CalculateAdoptedSize(expectedSize.y, count, itemHeight)); } + return expectedSize; } + } + } + } +} /*********************************************************************** -NodeRootProviderBase +.\CONTROLS\LISTCONTROLPACKAGE\GUILISTCONTROLS.CPP ***********************************************************************/ - void NodeRootProviderBase::OnAttached(INodeRootProvider* provider) - { - } - - void NodeRootProviderBase::OnBeforeItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) - { - for(vint i=0;iOnBeforeItemModified(parentNode, start, count, newCount); - } - } - - void NodeRootProviderBase::OnAfterItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) - { - for(vint i=0;iOnAfterItemModified(parentNode, start, count, newCount); - } - } - - void NodeRootProviderBase::OnItemExpanded(INodeProvider* node) - { - for(vint i=0;iOnItemExpanded(node); - } - } - - void NodeRootProviderBase::OnItemCollapsed(INodeProvider* node) - { - for(vint i=0;iOnItemCollapsed(node); - } - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; + using namespace elements; + using namespace compositions; - NodeRootProviderBase::NodeRootProviderBase() - { - } +/*********************************************************************** +GuiListControl::ItemCallback +***********************************************************************/ - NodeRootProviderBase::~NodeRootProviderBase() - { - } + Ptr GuiListControl::ItemCallback::InstallStyle(ItemStyle* style, vint itemIndex, compositions::GuiBoundsComposition* itemComposition) + { + auto handler = style->BoundsChanged.AttachMethod(this, &ItemCallback::OnStyleBoundsChanged); + listControl->GetContainerComposition()->AddChild(itemComposition ? itemComposition : style); + listControl->OnStyleInstalled(itemIndex, style); + return handler; + } - bool NodeRootProviderBase::CanGetNodeByVisibleIndex() - { - return false; - } + GuiListControl::ItemStyle* GuiListControl::ItemCallback::UninstallStyle(vint index) + { + auto style = installedStyles.Keys()[index]; + auto handler = installedStyles.Values()[index]; + listControl->OnStyleUninstalled(style); + listControl->GetContainerComposition()->RemoveChild(style); + style->BoundsChanged.Detach(handler); + return style; + } - Ptr NodeRootProviderBase::GetNodeByVisibleIndex(vint index) - { - return nullptr; - } + void GuiListControl::ItemCallback::OnStyleBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + listControl->CalculateView(); + } - bool NodeRootProviderBase::AttachCallback(INodeProviderCallback* value) - { - if(callbacks.Contains(value)) - { - return false; - } - else - { - callbacks.Add(value); - value->OnAttached(this); - return true; - } - } + GuiListControl::ItemCallback::ItemCallback(GuiListControl* _listControl) + :listControl(_listControl) + { + } - bool NodeRootProviderBase::DetachCallback(INodeProviderCallback* value) - { - vint index=callbacks.IndexOf(value); - if(index==-1) - { - return false; - } - else - { - value->OnAttached(0); - callbacks.Remove(value); - return true; - } - } + GuiListControl::ItemCallback::~ItemCallback() + { + ClearCache(); + } - IDescriptable* NodeRootProviderBase::RequestView(const WString& identifier) + void GuiListControl::ItemCallback::ClearCache() + { + for (vint i = 0; i < installedStyles.Count(); i++) { - return 0; + auto style = UninstallStyle(i); + SafeDeleteComposition(style); } + installedStyles.Clear(); + } -/*********************************************************************** -MemoryNodeRootProvider -***********************************************************************/ - - INodeProviderCallback* MemoryNodeRootProvider::GetCallbackProxyInternal() - { - return this; - } + void GuiListControl::ItemCallback::OnAttached(IItemProvider* provider) + { + itemProvider = provider; + } - MemoryNodeRootProvider::MemoryNodeRootProvider() - { - SetExpanding(true); - } + void GuiListControl::ItemCallback::OnItemModified(vint start, vint count, vint newCount) + { + listControl->OnItemModified(start, count, newCount); + } - MemoryNodeRootProvider::~MemoryNodeRootProvider() - { - } + GuiListControl::ItemStyle* GuiListControl::ItemCallback::RequestItem(vint itemIndex, compositions::GuiBoundsComposition* itemComposition) + { + CHECK_ERROR(0 <= itemIndex && itemIndex < itemProvider->Count(), L"GuiListControl::ItemCallback::RequestItem(vint)#Index out of range."); + CHECK_ERROR(listControl->itemStyleProperty, L"GuiListControl::ItemCallback::RequestItem(vint)#SetItemTemplate function should be called before adding items to the list control."); - Ptr MemoryNodeRootProvider::GetRootNode() - { - return this; - } + auto style = listControl->itemStyleProperty(itemProvider->GetBindingValue(itemIndex)); + auto handler = InstallStyle(style, itemIndex, itemComposition); + installedStyles.Add(style, handler); + return style; + } - MemoryNodeProvider* MemoryNodeRootProvider::GetMemoryNode(INodeProvider* node) + void GuiListControl::ItemCallback::ReleaseItem(ItemStyle* style) + { + vint index = installedStyles.Keys().IndexOf(style); + if (index != -1) { - return dynamic_cast(node); + auto style = UninstallStyle(index); + installedStyles.Remove(style); + SafeDeleteComposition(style); } } -/*********************************************************************** -GuiVirtualTreeListControl -***********************************************************************/ - - void GuiVirtualTreeListControl::BeforeControlTemplateUninstalled_() + void GuiListControl::ItemCallback::SetViewLocation(Point value) { + Rect virtualRect(value, listControl->GetViewSize()); + Rect realRect = listControl->axis->VirtualRectToRealRect(listControl->fullSize, virtualRect); + listControl->SetViewPosition(realRect.LeftTop()); } - void GuiVirtualTreeListControl::AfterControlTemplateInstalled_(bool initialize) + Size GuiListControl::ItemCallback::GetStylePreferredSize(compositions::GuiBoundsComposition* style) { + Size size = style->GetPreferredBounds().GetSize(); + return listControl->axis->RealSizeToVirtualSize(size); } - void GuiVirtualTreeListControl::OnAttached(tree::INodeRootProvider* provider) + void GuiListControl::ItemCallback::SetStyleAlignmentToParent(compositions::GuiBoundsComposition* style, Margin margin) { + Margin newMargin = listControl->axis->VirtualMarginToRealMargin(margin); + style->SetAlignmentToParent(newMargin); } - void GuiVirtualTreeListControl::OnBeforeItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) + Rect GuiListControl::ItemCallback::GetStyleBounds(compositions::GuiBoundsComposition* style) { + Rect bounds = style->GetBounds(); + return listControl->axis->RealRectToVirtualRect(listControl->GetViewSize(), bounds); } - void GuiVirtualTreeListControl::OnAfterItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) + void GuiListControl::ItemCallback::SetStyleBounds(compositions::GuiBoundsComposition* style, Rect bounds) { + Rect newBounds = listControl->axis->VirtualRectToRealRect(listControl->GetViewSize(), bounds); + return style->SetBounds(newBounds); } - void GuiVirtualTreeListControl::OnItemExpanded(tree::INodeProvider* node) + compositions::GuiGraphicsComposition* GuiListControl::ItemCallback::GetContainerComposition() { - GuiNodeEventArgs arguments; - (GuiEventArgs&)arguments=GetNotifyEventArguments(); - arguments.node=node; - NodeExpanded.Execute(arguments); + return listControl->GetContainerComposition(); } - void GuiVirtualTreeListControl::OnItemCollapsed(tree::INodeProvider* node) + void GuiListControl::ItemCallback::OnTotalSizeChanged() { - GuiNodeEventArgs arguments; - (GuiEventArgs&)arguments=GetNotifyEventArguments(); - arguments.node=node; - NodeCollapsed.Execute(arguments); + listControl->CalculateView(); } - void GuiVirtualTreeListControl::OnItemMouseEvent(compositions::GuiNodeMouseEvent& nodeEvent, compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) +/*********************************************************************** +GuiListControl +***********************************************************************/ + + void GuiListControl::BeforeControlTemplateUninstalled_() { - auto node = GetNodeItemView()->RequestNode(arguments.itemIndex); - if (node) - { - GuiNodeMouseEventArgs redirectArguments; - (GuiMouseEventArgs&)redirectArguments = arguments; - redirectArguments.node = node.Obj(); - nodeEvent.Execute(redirectArguments); - (GuiMouseEventArgs&)arguments = redirectArguments; - } } - void GuiVirtualTreeListControl::OnItemNotifyEvent(compositions::GuiNodeNotifyEvent& nodeEvent, compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + void GuiListControl::AfterControlTemplateInstalled_(bool initialize) { - if (auto node = GetNodeItemView()->RequestNode(arguments.itemIndex)) + if (itemArranger) { - GuiNodeEventArgs redirectArguments; - (GuiEventArgs&)redirectArguments = arguments; - redirectArguments.node = node.Obj(); - nodeEvent.Execute(redirectArguments); - (GuiEventArgs&)arguments = redirectArguments; + itemArranger->ReloadVisibleStyles(); + CalculateView(); } } -#define ATTACH_ITEM_MOUSE_EVENT(NODEEVENTNAME, ITEMEVENTNAME)\ - {\ - Func func(this, &GuiVirtualTreeListControl::OnItemMouseEvent);\ - ITEMEVENTNAME.AttachFunction(Curry(func)(NODEEVENTNAME));\ - }\ - -#define ATTACH_ITEM_NOTIFY_EVENT(NODEEVENTNAME, ITEMEVENTNAME)\ - {\ - Func func(this, &GuiVirtualTreeListControl::OnItemNotifyEvent);\ - ITEMEVENTNAME.AttachFunction(Curry(func)(NODEEVENTNAME));\ - }\ - - void GuiVirtualTreeListControl::OnNodeLeftButtonDoubleClick(compositions::GuiGraphicsComposition* sender, compositions::GuiNodeMouseEventArgs& arguments) + void GuiListControl::OnItemModified(vint start, vint count, vint newCount) { - if (arguments.node->GetChildCount() > 0) - { - arguments.node->SetExpanding(!arguments.node->GetExpanding()); - } } - GuiVirtualTreeListControl::GuiVirtualTreeListControl(theme::ThemeName themeName, Ptr _nodeRootProvider) - :GuiSelectableListControl(themeName, new tree::NodeItemProvider(_nodeRootProvider)) + void GuiListControl::OnStyleInstalled(vint itemIndex, ItemStyle* style) { - nodeItemProvider = dynamic_cast(GetItemProvider()); - nodeItemView = dynamic_cast(GetItemProvider()->RequestView(tree::INodeItemView::Identifier)); - - NodeLeftButtonDown.SetAssociatedComposition(boundsComposition); - NodeLeftButtonUp.SetAssociatedComposition(boundsComposition); - NodeLeftButtonDoubleClick.SetAssociatedComposition(boundsComposition); - NodeMiddleButtonDown.SetAssociatedComposition(boundsComposition); - NodeMiddleButtonUp.SetAssociatedComposition(boundsComposition); - NodeMiddleButtonDoubleClick.SetAssociatedComposition(boundsComposition); - NodeRightButtonDown.SetAssociatedComposition(boundsComposition); - NodeRightButtonUp.SetAssociatedComposition(boundsComposition); - NodeRightButtonDoubleClick.SetAssociatedComposition(boundsComposition); - NodeMouseMove.SetAssociatedComposition(boundsComposition); - NodeMouseEnter.SetAssociatedComposition(boundsComposition); - NodeMouseLeave.SetAssociatedComposition(boundsComposition); - NodeExpanded.SetAssociatedComposition(boundsComposition); - NodeCollapsed.SetAssociatedComposition(boundsComposition); - - ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonDown, ItemLeftButtonDown); - ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonUp, ItemLeftButtonUp); - ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonDoubleClick, ItemLeftButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonDown, ItemMiddleButtonDown); - ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonUp, ItemMiddleButtonUp); - ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonDoubleClick, ItemMiddleButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonDown, ItemRightButtonDown); - ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonUp, ItemRightButtonUp); - ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonDoubleClick, ItemRightButtonDoubleClick); - ATTACH_ITEM_MOUSE_EVENT(NodeMouseMove, ItemMouseMove); - ATTACH_ITEM_NOTIFY_EVENT(NodeMouseEnter, ItemMouseEnter); - ATTACH_ITEM_NOTIFY_EVENT(NodeMouseLeave, ItemMouseLeave); - - nodeItemProvider->GetRoot()->AttachCallback(this); - NodeLeftButtonDoubleClick.AttachMethod(this, &GuiVirtualTreeListControl::OnNodeLeftButtonDoubleClick); + style->SetFont(GetDisplayFont()); + style->SetContext(GetContext()); + style->SetText(itemProvider->GetTextValue(itemIndex)); + style->SetVisuallyEnabled(GetVisuallyEnabled()); + style->SetSelected(false); + style->SetIndex(itemIndex); + style->Initialize(this); + AttachItemEvents(style); } -#undef ATTACH_ITEM_MOUSE_EVENT -#undef ATTACH_ITEM_NOTIFY_EVENT - - GuiVirtualTreeListControl::~GuiVirtualTreeListControl() + void GuiListControl::OnStyleUninstalled(ItemStyle* style) { + DetachItemEvents(style); } - tree::INodeItemView* GuiVirtualTreeListControl::GetNodeItemView() + void GuiListControl::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) { - return nodeItemView; + SetStyleAndArranger(itemStyleProperty, itemArranger); + GuiScrollView::OnRenderTargetChanged(renderTarget); } - tree::INodeRootProvider* GuiVirtualTreeListControl::GetNodeRootProvider() + void GuiListControl::OnBeforeReleaseGraphicsHost() { - return nodeItemProvider->GetRoot().Obj(); + GuiScrollView::OnBeforeReleaseGraphicsHost(); + SetStyleAndArranger({}, nullptr); } - namespace tree + Size GuiListControl::QueryFullSize() { + Size virtualSize = itemArranger ? itemArranger->GetTotalSize() : Size(0, 0); + fullSize = axis->VirtualSizeToRealSize(virtualSize); + return fullSize; + } -/*********************************************************************** -TreeViewItem -***********************************************************************/ - - const wchar_t* const ITreeViewItemView::Identifier = L"vl::presentation::controls::tree::ITreeViewItemView"; + void GuiListControl::UpdateView(Rect viewBounds) + { + if (itemArranger) + { + Rect newBounds = axis->RealRectToVirtualRect(fullSize, viewBounds); + itemArranger->OnViewChanged(newBounds); + } + } - TreeViewItem::TreeViewItem() + void GuiListControl::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if(GetVisuallyEnabled()) { + SetFocused(); } + } - TreeViewItem::TreeViewItem(const Ptr& _image, const WString& _text) - :image(_image) - ,text(_text) + void GuiListControl::SetStyleAndArranger(ItemStyleProperty styleProperty, Ptr arranger) + { + if (itemArranger) { + itemArranger->DetachListControl(); + itemArranger->SetCallback(nullptr); + itemProvider->DetachCallback(itemArranger.Obj()); } + callback->ClearCache(); -/*********************************************************************** -TreeViewItemRootProvider -***********************************************************************/ + itemStyleProperty = styleProperty; + itemArranger = arranger; - Ptr TreeViewItemRootProvider::GetNodeImage(INodeProvider* node) + if (auto scroll = GetVerticalScroll()) { - MemoryNodeProvider* memoryNode=dynamic_cast(node); - if(memoryNode) - { - Ptr data=memoryNode->GetData().Cast(); - if(data) - { - return data->image; - } - } - return 0; + scroll->SetPosition(0); } - - WString TreeViewItemRootProvider::GetTextValue(INodeProvider* node) + if (auto scroll = GetHorizontalScroll()) { - MemoryNodeProvider* memoryNode = dynamic_cast(node); - if (memoryNode) - { - Ptr data = memoryNode->GetData().Cast(); - if (data) - { - return data->text; - } - } - return L""; + scroll->SetPosition(0); } - description::Value TreeViewItemRootProvider::GetBindingValue(INodeProvider* node) + if (itemArranger) { - return Value::From(GetTreeViewData(node)); + itemProvider->AttachCallback(itemArranger.Obj()); + itemArranger->SetCallback(callback.Obj()); + itemArranger->AttachListControl(this); } + CalculateView(); + } - TreeViewItemRootProvider::TreeViewItemRootProvider() + void GuiListControl::UpdateDisplayFont() + { + GuiControl::UpdateDisplayFont(); + for (auto style : visibleStyles.Keys()) { + style->SetFont(GetDisplayFont()); } + } - TreeViewItemRootProvider::~TreeViewItemRootProvider() + void GuiListControl::OnClientBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + auto args = GetNotifyEventArguments(); + AdoptedSizeInvalidated.Execute(args); + } + + void GuiListControl::OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + for (auto style : visibleStyles.Keys()) { + style->SetVisuallyEnabled(GetVisuallyEnabled()); } + } - IDescriptable* TreeViewItemRootProvider::RequestView(const WString& identifier) + void GuiListControl::OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + for (auto style : visibleStyles.Keys()) { - if(identifier==ITreeViewItemView::Identifier) - { - return (ITreeViewItemView*)this; - } - else - { - return MemoryNodeRootProvider::RequestView(identifier); - } + style->SetContext(GetContext()); } + } - Ptr TreeViewItemRootProvider::GetTreeViewData(INodeProvider* node) + void GuiListControl::OnItemMouseEvent(compositions::GuiItemMouseEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if (itemArranger && GetVisuallyEnabled()) { - MemoryNodeProvider* memoryNode=GetMemoryNode(node); - if(memoryNode) - { - return memoryNode->GetData().Cast(); - } - else + vint itemIndex = itemArranger->GetVisibleIndex(style); + if (itemIndex != -1) { - return 0; + GuiItemMouseEventArgs redirectArguments; + (GuiMouseEventArgs&)redirectArguments = arguments; + redirectArguments.compositionSource = boundsComposition; + redirectArguments.eventSource = boundsComposition; + redirectArguments.itemIndex = itemIndex; + itemEvent.Execute(redirectArguments); + arguments = redirectArguments; } } + } - void TreeViewItemRootProvider::SetTreeViewData(INodeProvider* node, Ptr value) + void GuiListControl::OnItemNotifyEvent(compositions::GuiItemNotifyEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (itemArranger && GetVisuallyEnabled()) { - MemoryNodeProvider* memoryNode=GetMemoryNode(node); - if(memoryNode) + vint itemIndex = itemArranger->GetVisibleIndex(style); + if (itemIndex != -1) { - memoryNode->SetData(value); + GuiItemEventArgs redirectArguments; + (GuiEventArgs&)redirectArguments = arguments; + redirectArguments.compositionSource = boundsComposition; + redirectArguments.eventSource = boundsComposition; + redirectArguments.itemIndex = itemIndex; + itemEvent.Execute(redirectArguments); + arguments = redirectArguments; } } - - void TreeViewItemRootProvider::UpdateTreeViewData(INodeProvider* node) + } + +#define ATTACH_ITEM_MOUSE_EVENT(EVENTNAME, ITEMEVENTNAME)\ + {\ + helper->EVENTNAME##Handler = style->GetEventReceiver()->EVENTNAME.AttachFunction(\ + [this, style](GuiGraphicsComposition* sender, GuiMouseEventArgs& args){ OnItemMouseEvent(ITEMEVENTNAME, style, sender, args); }\ + );\ + }\ + +#define ATTACH_ITEM_NOTIFY_EVENT(EVENTNAME, ITEMEVENTNAME)\ + {\ + helper->EVENTNAME##Handler = style->GetEventReceiver()->EVENTNAME.AttachFunction(\ + [this, style](GuiGraphicsComposition* sender, GuiEventArgs& args){ OnItemNotifyEvent(ITEMEVENTNAME, style, sender, args); }\ + );\ + }\ + + void GuiListControl::AttachItemEvents(ItemStyle* style) + { + vint index=visibleStyles.Keys().IndexOf(style); + if(index==-1) { - MemoryNodeProvider* memoryNode=GetMemoryNode(node); - if(memoryNode) - { - memoryNode->NotifyDataModified(); - } + auto helper=Ptr(new VisibleStyleHelper); + visibleStyles.Add(style, helper); + + ATTACH_ITEM_MOUSE_EVENT(leftButtonDown, ItemLeftButtonDown); + ATTACH_ITEM_MOUSE_EVENT(leftButtonUp, ItemLeftButtonUp); + ATTACH_ITEM_MOUSE_EVENT(leftButtonDoubleClick, ItemLeftButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(middleButtonDown, ItemMiddleButtonDown); + ATTACH_ITEM_MOUSE_EVENT(middleButtonUp, ItemMiddleButtonUp); + ATTACH_ITEM_MOUSE_EVENT(middleButtonDoubleClick, ItemMiddleButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(rightButtonDown, ItemRightButtonDown); + ATTACH_ITEM_MOUSE_EVENT(rightButtonUp, ItemRightButtonUp); + ATTACH_ITEM_MOUSE_EVENT(rightButtonDoubleClick, ItemRightButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(mouseMove, ItemMouseMove); + ATTACH_ITEM_NOTIFY_EVENT(mouseEnter, ItemMouseEnter); + ATTACH_ITEM_NOTIFY_EVENT(mouseLeave, ItemMouseLeave); } } -/*********************************************************************** -GuiVirtualTreeView -***********************************************************************/ +#undef ATTACH_ITEM_MOUSE_EVENT +#undef ATTACH_ITEM_NOTIFY_EVENT - templates::GuiTreeItemTemplate* GuiVirtualTreeView::GetStyleFromNode(tree::INodeProvider* node) +#define DETACH_ITEM_EVENT(EVENTNAME) style->GetEventReceiver()->EVENTNAME.Detach(helper->EVENTNAME##Handler) + + void GuiListControl::DetachItemEvents(ItemStyle* style) { - if (itemArranger) + vint index=visibleStyles.Keys().IndexOf(style); + if(index!=-1) { - vint index = nodeItemView->CalculateNodeVisibilityIndex(node); - if (index != -1) - { - auto style = itemArranger->GetVisibleStyle(index); - return dynamic_cast(style); - } + Ptr helper=visibleStyles.Values().Get(index); + visibleStyles.Remove(style); + + DETACH_ITEM_EVENT(leftButtonDown); + DETACH_ITEM_EVENT(leftButtonUp); + DETACH_ITEM_EVENT(leftButtonDoubleClick); + DETACH_ITEM_EVENT(middleButtonDown); + DETACH_ITEM_EVENT(middleButtonUp); + DETACH_ITEM_EVENT(middleButtonDoubleClick); + DETACH_ITEM_EVENT(rightButtonDown); + DETACH_ITEM_EVENT(rightButtonUp); + DETACH_ITEM_EVENT(rightButtonDoubleClick); + DETACH_ITEM_EVENT(mouseMove); + DETACH_ITEM_EVENT(mouseEnter); + DETACH_ITEM_EVENT(mouseLeave); } - return nullptr; } - void GuiVirtualTreeView::SetStyleExpanding(tree::INodeProvider* node, bool expanding) +#undef DETACH_ITEM_EVENT + + GuiListControl::GuiListControl(theme::ThemeName themeName, IItemProvider* _itemProvider, bool acceptFocus) + :GuiScrollView(themeName) + , itemProvider(_itemProvider) { - if (auto treeItemStyle = GetStyleFromNode(node)) + ContextChanged.AttachMethod(this, &GuiListControl::OnContextChanged); + VisuallyEnabledChanged.AttachMethod(this, &GuiListControl::OnVisuallyEnabledChanged); + containerComposition->BoundsChanged.AttachMethod(this, &GuiListControl::OnClientBoundsChanged); + + ItemTemplateChanged.SetAssociatedComposition(boundsComposition); + ArrangerChanged.SetAssociatedComposition(boundsComposition); + AxisChanged.SetAssociatedComposition(boundsComposition); + AdoptedSizeInvalidated.SetAssociatedComposition(boundsComposition); + + ItemLeftButtonDown.SetAssociatedComposition(boundsComposition); + ItemLeftButtonUp.SetAssociatedComposition(boundsComposition); + ItemLeftButtonDoubleClick.SetAssociatedComposition(boundsComposition); + ItemMiddleButtonDown.SetAssociatedComposition(boundsComposition); + ItemMiddleButtonUp.SetAssociatedComposition(boundsComposition); + ItemMiddleButtonDoubleClick.SetAssociatedComposition(boundsComposition); + ItemRightButtonDown.SetAssociatedComposition(boundsComposition); + ItemRightButtonUp.SetAssociatedComposition(boundsComposition); + ItemRightButtonDoubleClick.SetAssociatedComposition(boundsComposition); + ItemMouseMove.SetAssociatedComposition(boundsComposition); + ItemMouseEnter.SetAssociatedComposition(boundsComposition); + ItemMouseLeave.SetAssociatedComposition(boundsComposition); + + callback = Ptr(new ItemCallback(this)); + itemProvider->AttachCallback(callback.Obj()); + axis = Ptr(new GuiDefaultAxis); + + if (acceptFocus) { - treeItemStyle->SetExpanding(expanding); + boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiListControl::OnBoundsMouseButtonDown); + SetFocusableComposition(boundsComposition); } } - void GuiVirtualTreeView::SetStyleExpandable(tree::INodeProvider* node, bool expandable) + GuiListControl::~GuiListControl() { - if (auto treeItemStyle = GetStyleFromNode(node)) + if(itemArranger) { - treeItemStyle->SetExpandable(expandable); + itemProvider->DetachCallback(itemArranger.Obj()); } + callback->ClearCache(); + itemStyleProperty = {}; + itemArranger = nullptr; } - void GuiVirtualTreeView::OnAfterItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) + GuiListControl::IItemProvider* GuiListControl::GetItemProvider() { - GuiVirtualTreeListControl::OnAfterItemModified(parentNode, start, count, newCount); - SetStyleExpandable(parentNode, parentNode->GetChildCount() > 0); + return itemProvider.Obj(); } - void GuiVirtualTreeView::OnItemExpanded(tree::INodeProvider* node) + GuiListControl::ItemStyleProperty GuiListControl::GetItemTemplate() { - GuiVirtualTreeListControl::OnItemExpanded(node); - SetStyleExpanding(node, true); + return itemStyleProperty; } - void GuiVirtualTreeView::OnItemCollapsed(tree::INodeProvider* node) + void GuiListControl::SetItemTemplate(ItemStyleProperty value) { - GuiVirtualTreeListControl::OnItemCollapsed(node); - SetStyleExpanding(node, false); + SetStyleAndArranger(value, itemArranger); + ItemTemplateChanged.Execute(GetNotifyEventArguments()); } - - void GuiVirtualTreeView::OnStyleInstalled(vint itemIndex, ItemStyle* style) + + GuiListControl::IItemArranger* GuiListControl::GetArranger() { - GuiVirtualTreeListControl::OnStyleInstalled(itemIndex, style); - if (auto treeItemStyle = dynamic_cast(style)) + return itemArranger.Obj(); + } + + void GuiListControl::SetArranger(Ptr value) + { + SetStyleAndArranger(itemStyleProperty, value); + ArrangerChanged.Execute(GetNotifyEventArguments()); + } + + compositions::IGuiAxis* GuiListControl::GetAxis() + { + return axis.Obj(); + } + + void GuiListControl::SetAxis(Ptr value) + { + Ptr old = axis; + axis = value; + SetStyleAndArranger(itemStyleProperty, itemArranger); + AxisChanged.Execute(GetNotifyEventArguments()); + } + + bool GuiListControl::EnsureItemVisible(vint itemIndex) + { + if (itemIndex < 0 || itemIndex >= itemProvider->Count()) { - treeItemStyle->SetTextColor(TypedControlTemplateObject(true)->GetTextColor()); + return false; + } - if (treeViewItemView) + if (!itemArranger) return false; + auto result = itemArranger->EnsureItemVisible(itemIndex); + if (result == EnsureItemVisibleResult::Moved) + { + if (auto host = GetBoundsComposition()->GetRelatedGraphicsHost()) { - if (auto node = nodeItemView->RequestNode(itemIndex)) + auto flag = GetDisposedFlag(); + host->InvokeAfterRendering([=]() { - treeItemStyle->SetImage(treeViewItemView->GetNodeImage(node.Obj())); - treeItemStyle->SetExpanding(node->GetExpanding()); - treeItemStyle->SetExpandable(node->GetChildCount() > 0); + if (!flag->IsDisposed()) { - vint level = -1; - auto current = node; - while (current->GetParent()) - { - level++; - current = current->GetParent(); - } - treeItemStyle->SetLevel(level); + EnsureItemVisible(itemIndex); } - } + }, { this,0 }); } } + return result != EnsureItemVisibleResult::ItemNotExists; } - GuiVirtualTreeView::GuiVirtualTreeView(theme::ThemeName themeName, Ptr _nodeRootProvider) - :GuiVirtualTreeListControl(themeName, _nodeRootProvider) + Size GuiListControl::GetAdoptedSize(Size expectedSize) { - treeViewItemView = dynamic_cast(GetNodeRootProvider()->RequestView(tree::ITreeViewItemView::Identifier)); - SetStyleAndArranger( - [](const Value&) { return new tree::DefaultTreeItemTemplate; }, - new list::FixedHeightItemArranger - ); + if (itemArranger) + { + Size controlSize = boundsComposition->GetPreviousCalculatedBounds().GetSize(); + Size viewSize = containerComposition->GetPreviousCalculatedBounds().GetSize(); + vint x = controlSize.x - viewSize.x; + vint y = controlSize.y - viewSize.y; + + Size expectedViewSize(expectedSize.x - x, expectedSize.y - y); + if (axis) + { + expectedViewSize = axis->RealSizeToVirtualSize(expectedViewSize); + } + Size adoptedViewSize = itemArranger->GetAdoptedSize(expectedViewSize); + if (axis) + { + adoptedViewSize = axis->VirtualSizeToRealSize(adoptedViewSize); + } + return Size(adoptedViewSize.x + x, adoptedViewSize.y + y); + } + return expectedSize; + } + + bool GuiListControl::GetDisplayItemBackground() + { + return displayItemBackground; } - GuiVirtualTreeView::~GuiVirtualTreeView() + void GuiListControl::SetDisplayItemBackground(bool value) { + if (displayItemBackground != value) + { + displayItemBackground = value; + SetStyleAndArranger(itemStyleProperty, itemArranger); + } } /*********************************************************************** -GuiTreeView +GuiSelectableListControl ***********************************************************************/ - GuiTreeView::GuiTreeView(theme::ThemeName themeName) - :GuiVirtualTreeView(themeName, new tree::TreeViewItemRootProvider) + void GuiSelectableListControl::NotifySelectionChanged() { - nodes = nodeItemProvider->GetRoot().Cast(); + SelectionChanged.Execute(GetNotifyEventArguments()); } - GuiTreeView::~GuiTreeView() + void GuiSelectableListControl::OnItemModified(vint start, vint count, vint newCount) { + GuiListControl::OnItemModified(start, count, newCount); + if(count!=newCount) + { + ClearSelection(); + } } - Ptr GuiTreeView::Nodes() + void GuiSelectableListControl::OnStyleInstalled(vint itemIndex, ItemStyle* style) { - return nodes; + GuiListControl::OnStyleInstalled(itemIndex, style); + style->SetSelected(selectedItems.Contains(itemIndex)); } - Ptr GuiTreeView::GetSelectedItem() + void GuiSelectableListControl::OnItemSelectionChanged(vint itemIndex, bool value) { - Ptr result; - vint index = GetSelectedItemIndex(); - if (index != -1) + if(auto style = itemArranger->GetVisibleStyle(itemIndex)) { - if (auto node = nodeItemView->RequestNode(index)) - { - if (auto memoryNode = node.Cast()) - { - result = memoryNode->GetData().Cast(); - } - } + style->SetSelected(value); } - return result; } - namespace tree + void GuiSelectableListControl::OnItemSelectionCleared() { + for (auto style : visibleStyles.Keys()) + { + style->SetSelected(false); + } + } -/*********************************************************************** -DefaultTreeItemTemplate -***********************************************************************/ - - void DefaultTreeItemTemplate::OnInitialize() + void GuiSelectableListControl::OnItemLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + { + if(GetVisuallyEnabled()) { - templates::GuiTreeItemTemplate::OnInitialize(); - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + SelectItemsByClick(arguments.itemIndex, arguments.ctrl, arguments.shift, true); + } + } - table = new GuiTableComposition; - AddChild(table); - table->SetRowsAndColumns(3, 4); - table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - table->SetRowOption(1, GuiCellOption::MinSizeOption()); - table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - table->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); - table->SetColumnOption(1, GuiCellOption::MinSizeOption()); - table->SetColumnOption(2, GuiCellOption::MinSizeOption()); - table->SetColumnOption(3, GuiCellOption::MinSizeOption()); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetCellPadding(2); - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 1, 3, 1); - cell->SetPreferredMinSize(Size(16, 16)); + void GuiSelectableListControl::OnItemRightButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) + { + if(GetVisuallyEnabled()) + { + SelectItemsByClick(arguments.itemIndex, arguments.ctrl, arguments.shift, false); + } + } - expandingButton = new GuiSelectableButton(theme::ThemeName::TreeItemExpander); - if (auto treeView = dynamic_cast(listControl)) - { - if (auto expanderStyle = treeView->TypedControlTemplateObject(true)->GetExpandingDecoratorTemplate()) - { - expandingButton->SetControlTemplate(expanderStyle); - } - } - expandingButton->SetAutoFocus(false); - expandingButton->SetAutoSelection(false); - expandingButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - expandingButton->GetBoundsComposition()->GetEventReceiver()->leftButtonDoubleClick.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingButtonDoubleClick); - expandingButton->Clicked.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingButtonClicked); - cell->AddChild(expandingButton->GetBoundsComposition()); - } - { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(1, 2, 1, 1); - cell->SetPreferredMinSize(Size(16, 16)); + void GuiSelectableListControl::NormalizeSelectedItemIndexStartEnd() + { + if (selectedItemIndexStart < 0 || selectedItemIndexStart >= itemProvider->Count()) + { + selectedItemIndexStart = 0; + } + if (selectedItemIndexEnd < 0 || selectedItemIndexEnd >= itemProvider->Count()) + { + selectedItemIndexEnd = 0; + } + } - imageElement = GuiImageFrameElement::Create(); - imageElement->SetStretch(true); - cell->SetOwnedElement(imageElement); + void GuiSelectableListControl::SetMultipleItemsSelectedSilently(vint start, vint end, bool selected) + { + if(start>end) + { + vint temp=start; + start=end; + end=temp; + } + vint count=itemProvider->Count(); + if(start<0) start=0; + if(end>=count) end=count-1; + for(vint i=start;i<=end;i++) + { + if(selected) + { + if(!selectedItems.Contains(i)) + { + selectedItems.Add(i); + } } + else { - GuiCellComposition* cell = new GuiCellComposition; - table->AddChild(cell); - cell->SetSite(0, 3, 3, 1); - cell->SetPreferredMinSize(Size(192, 0)); - - textElement = GuiSolidLabelElement::Create(); - textElement->SetAlignments(Alignment::Left, Alignment::Center); - textElement->SetEllipse(true); - cell->SetOwnedElement(textElement); + selectedItems.Remove(i); } - - FontChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnFontChanged); - TextChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnTextChanged); - TextColorChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnTextColorChanged); - ExpandingChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingChanged); - ExpandableChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandableChanged); - LevelChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnLevelChanged); - ImageChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnImageChanged); - - FontChanged.Execute(compositions::GuiEventArgs(this)); - TextChanged.Execute(compositions::GuiEventArgs(this)); - TextColorChanged.Execute(compositions::GuiEventArgs(this)); - ExpandingChanged.Execute(compositions::GuiEventArgs(this)); - ExpandableChanged.Execute(compositions::GuiEventArgs(this)); - LevelChanged.Execute(compositions::GuiEventArgs(this)); - ImageChanged.Execute(compositions::GuiEventArgs(this)); + OnItemSelectionChanged(i, selected); } + } - void DefaultTreeItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiSelectableListControl::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + { + if(GetVisuallyEnabled()) { - textElement->SetFont(GetFont()); + if(SelectItemsByKey(arguments.code, arguments.ctrl, arguments.shift)) + { + arguments.handled=true; + } } + } - void DefaultTreeItemTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - textElement->SetText(GetText()); - } + vint GuiSelectableListControl::FindItemByVirtualKeyDirection(vint index, compositions::KeyDirection keyDirection) + { + return GetArranger()->FindItem(selectedItemIndexEnd, keyDirection); + } - void DefaultTreeItemTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiSelectableListControl::GuiSelectableListControl(theme::ThemeName themeName, IItemProvider* _itemProvider) + :GuiListControl(themeName, _itemProvider, true) + , multiSelect(false) + , selectedItemIndexStart(-1) + , selectedItemIndexEnd(-1) + { + SelectionChanged.SetAssociatedComposition(boundsComposition); + ItemLeftButtonDown.AttachMethod(this, &GuiSelectableListControl::OnItemLeftButtonDown); + ItemRightButtonDown.AttachMethod(this, &GuiSelectableListControl::OnItemRightButtonDown); + if (focusableComposition) { - textElement->SetColor(GetTextColor()); + focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiSelectableListControl::OnKeyDown); } + } - void DefaultTreeItemTemplate::OnExpandingChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - expandingButton->SetSelected(GetExpanding()); - } + GuiSelectableListControl::~GuiSelectableListControl() + { + } - void DefaultTreeItemTemplate::OnExpandableChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + bool GuiSelectableListControl::GetMultiSelect() + { + return multiSelect; + } + + void GuiSelectableListControl::SetMultiSelect(bool value) + { + if (multiSelect != value) { - expandingButton->SetVisible(GetExpandable()); + multiSelect = value; + ClearSelection(); } + } - void DefaultTreeItemTemplate::OnLevelChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + const collections::SortedList& GuiSelectableListControl::GetSelectedItems() + { + return selectedItems; + } + + vint GuiSelectableListControl::GetSelectedItemIndex() + { + return selectedItems.Count() == 1 ? selectedItems[0] : -1; + } + + WString GuiSelectableListControl::GetSelectedItemText() + { + vint index = GetSelectedItemIndex(); + if (index != -1) { - table->SetColumnOption(0, GuiCellOption::AbsoluteOption(GetLevel() * 12)); + return itemProvider->GetTextValue(index); } + return L""; + } - void DefaultTreeItemTemplate::OnImageChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + bool GuiSelectableListControl::GetSelected(vint itemIndex) + { + return selectedItems.Contains(itemIndex); + } + + void GuiSelectableListControl::SetSelected(vint itemIndex, bool value) + { + if(value) { - if (auto imageData = GetImage()) + if(!selectedItems.Contains(itemIndex)) { - imageElement->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + if(!multiSelect) + { + selectedItems.Clear(); + OnItemSelectionCleared(); + } + selectedItems.Add(itemIndex); + OnItemSelectionChanged(itemIndex, value); + NotifySelectionChanged(); } - else + } + else + { + if(selectedItems.Remove(itemIndex)) { - imageElement->SetImage(nullptr); + OnItemSelectionChanged(itemIndex, value); + NotifySelectionChanged(); } } + } - void DefaultTreeItemTemplate::OnExpandingButtonDoubleClick(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + bool GuiSelectableListControl::SelectItemsByClick(vint itemIndex, bool ctrl, bool shift, bool leftButton) + { + NormalizeSelectedItemIndexStartEnd(); + if (0 <= itemIndex && itemIndex < itemProvider->Count()) { - arguments.handled = true; - } + if (!leftButton) + { + if (selectedItems.Contains(itemIndex)) + { + return true; + } + } + if (!multiSelect) + { + shift = false; + ctrl = false; + } - void DefaultTreeItemTemplate::OnExpandingButtonClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (expandingButton->GetVisuallyEnabled()) + if (shift) { - if (auto treeControl = dynamic_cast(listControl)) + if (!ctrl) { - if (auto view = treeControl->GetNodeItemView()) + selectedItems.Clear(); + OnItemSelectionCleared(); + } + selectedItemIndexEnd = itemIndex; + SetMultipleItemsSelectedSilently(selectedItemIndexStart, selectedItemIndexEnd, true); + NotifySelectionChanged(); + } + else + { + if (ctrl) + { + vint index = selectedItems.IndexOf(itemIndex); + if (index == -1) { - vint index = treeControl->GetArranger()->GetVisibleIndex(this); - if (index != -1) - { - if (auto node = view->RequestNode(index)) - { - bool expanding = node->GetExpanding(); - node->SetExpanding(!expanding); - } - } + selectedItems.Add(itemIndex); + } + else + { + selectedItems.RemoveAt(index); } + OnItemSelectionChanged(itemIndex, index == -1); + NotifySelectionChanged(); + } + else + { + selectedItems.Clear(); + OnItemSelectionCleared(); + selectedItems.Add(itemIndex); + OnItemSelectionChanged(itemIndex, true); + NotifySelectionChanged(); } + selectedItemIndexStart = itemIndex; + selectedItemIndexEnd = itemIndex; } + return true; } + return false; + } - DefaultTreeItemTemplate::DefaultTreeItemTemplate() + bool GuiSelectableListControl::SelectItemsByKey(VKEY code, bool ctrl, bool shift) + { + if (!GetArranger()) return false; + + NormalizeSelectedItemIndexStartEnd(); + KeyDirection keyDirection = KeyDirection::Up; + switch (code) { + case VKEY::KEY_UP: + keyDirection = KeyDirection::Up; + break; + case VKEY::KEY_DOWN: + keyDirection = KeyDirection::Down; + break; + case VKEY::KEY_LEFT: + keyDirection = KeyDirection::Left; + break; + case VKEY::KEY_RIGHT: + keyDirection = KeyDirection::Right; + break; + case VKEY::KEY_HOME: + keyDirection = KeyDirection::Home; + break; + case VKEY::KEY_END: + keyDirection = KeyDirection::End; + break; + case VKEY::KEY_PRIOR: + keyDirection = KeyDirection::PageUp; + break; + case VKEY::KEY_NEXT: + keyDirection = KeyDirection::PageDown; + break; + default: + return false; } - DefaultTreeItemTemplate::~DefaultTreeItemTemplate() + if (GetAxis()) + { + keyDirection = GetAxis()->RealKeyDirectionToVirtualKeyDirection(keyDirection); + } + vint itemIndex = FindItemByVirtualKeyDirection(selectedItemIndexEnd, keyDirection); + if (SelectItemsByClick(itemIndex, ctrl, shift, true)) + { + return EnsureItemVisible(itemIndex); + } + else { + return false; } } - } - } -} -/*********************************************************************** -.\CONTROLS\TEMPLATES\GUIANIMATION.CPP -***********************************************************************/ + void GuiSelectableListControl::ClearSelection() + { + if(selectedItems.Count()>0) + { + selectedItems.Clear(); + OnItemSelectionCleared(); + NotifySelectionChanged(); + } + } -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; - using namespace reflection::description; + namespace list + { /*********************************************************************** -GuiTimedAnimation +ItemProviderBase ***********************************************************************/ - class GuiTimedAnimation : public Object, public virtual IGuiAnimation - { - protected: - DateTime startTime; - vuint64_t time; - bool running = false; - - public: - GuiTimedAnimation() - { - } - - ~GuiTimedAnimation() + void ItemProviderBase::InvokeOnItemModified(vint start, vint count, vint newCount) { + CHECK_ERROR(!callingOnItemModified, L"ItemProviderBase::InvokeOnItemModified(vint, vint, vint)#Canning modify the observable data source during its item modified event, which will cause this event to be executed recursively."); + callingOnItemModified = true; + for (vint i = 0; i < callbacks.Count(); i++) + { + callbacks[i]->OnItemModified(start, count, newCount); + } + callingOnItemModified = false; } - void Start()override + ItemProviderBase::ItemProviderBase() { - startTime = DateTime::LocalTime(); - time = 0; - running = true; } - void Pause()override + ItemProviderBase::~ItemProviderBase() { - time = GetTime(); - running = false; + for(vint i=0;iOnAttached(0); + } } - void Resume()override + bool ItemProviderBase::AttachCallback(GuiListControl::IItemProviderCallback* value) { - startTime = DateTime::LocalTime(); - running = true; + if(callbacks.Contains(value)) + { + return false; + } + else + { + callbacks.Add(value); + value->OnAttached(this); + return true; + } } - vuint64_t GetTime() + bool ItemProviderBase::DetachCallback(GuiListControl::IItemProviderCallback* value) { - if (running) + vint index=callbacks.IndexOf(value); + if(index==-1) { - return time + (DateTime::LocalTime().totalMilliseconds - startTime.totalMilliseconds); + return false; } else { - return time; + value->OnAttached(0); + callbacks.Remove(value); + return true; } } - }; - -/*********************************************************************** -GuiFiniteAnimation -***********************************************************************/ - - class GuiFiniteAnimation : public GuiTimedAnimation - { - protected: - vuint64_t length = 0; - vuint64_t currentTime = 0; - Func run; - public: - GuiFiniteAnimation(const Func& _run, vuint64_t _length) - :run(_run) - , length(_length) + void ItemProviderBase::PushEditing() { + editingCounter++; } - ~GuiFiniteAnimation() + bool ItemProviderBase::PopEditing() { + if (editingCounter == 0)return false; + editingCounter--; + return true; } - void Run()override + bool ItemProviderBase::IsEditing() { - currentTime = GetTime(); - if (currentTime < length && run) - { - run(currentTime); - } + return editingCounter > 0; } + } + } + } +} - bool GetStopped()override - { - return currentTime >= length; - } - }; +/*********************************************************************** +.\CONTROLS\LISTCONTROLPACKAGE\GUILISTVIEWCONTROLS.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace collections; + using namespace reflection::description; /*********************************************************************** -GuiInfiniteAnimation +GuiListViewColumnHeader ***********************************************************************/ - class GuiInfiniteAnimation : public GuiTimedAnimation + void GuiListViewColumnHeader::BeforeControlTemplateUninstalled_() { - protected: - Func run; + } - public: - GuiInfiniteAnimation(const Func& _run) - :run(_run) - { - } + void GuiListViewColumnHeader::AfterControlTemplateInstalled_(bool initialize) + { + TypedControlTemplateObject(true)->SetSortingState(columnSortingState); + } + + GuiListViewColumnHeader::GuiListViewColumnHeader(theme::ThemeName themeName) + :GuiMenuButton(themeName) + { + } - ~GuiInfiniteAnimation() - { - } + GuiListViewColumnHeader::~GuiListViewColumnHeader() + { + } - void Run()override - { - if (run) - { - run(GetTime()); - } - } + bool GuiListViewColumnHeader::IsAltAvailable() + { + return false; + } - bool GetStopped()override + ColumnSortingState GuiListViewColumnHeader::GetColumnSortingState() + { + return columnSortingState; + } + + void GuiListViewColumnHeader::SetColumnSortingState(ColumnSortingState value) + { + if (columnSortingState != value) { - return false; + columnSortingState = value; + TypedControlTemplateObject(true)->SetSortingState(columnSortingState); } - }; + } /*********************************************************************** -IGuiAnimation +GuiListViewBase ***********************************************************************/ - Ptr IGuiAnimation::CreateAnimation(const Func& run, vuint64_t milliseconds) + void GuiListViewBase::BeforeControlTemplateUninstalled_() { - return new GuiFiniteAnimation(run, milliseconds); } - Ptr IGuiAnimation::CreateAnimation(const Func& run) + void GuiListViewBase::AfterControlTemplateInstalled_(bool initialize) { - return new GuiInfiniteAnimation(run); } -/*********************************************************************** -IGuiAnimationCoroutine -***********************************************************************/ + GuiListViewBase::GuiListViewBase(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) + :GuiSelectableListControl(themeName, _itemProvider) + { + ColumnClicked.SetAssociatedComposition(boundsComposition); + } - class GuiCoroutineAnimation : public Object, public virtual IGuiAnimationCoroutine::IImpl + GuiListViewBase::~GuiListViewBase() { - protected: - IGuiAnimationCoroutine::Creator creator; - Ptr coroutine; + } - Ptr waitingAnimation; - vint waitingGroup = -1; - Group> groupAnimations; + namespace list + { - public: - GuiCoroutineAnimation(const IGuiAnimationCoroutine::Creator& _creator) - :creator(_creator) + const wchar_t* const IListViewItemView::Identifier = L"vl::presentation::controls::list::IListViewItemView"; + +/*********************************************************************** +ListViewColumnItemArranger::ColumnItemViewCallback +***********************************************************************/ + + ListViewColumnItemArranger::ColumnItemViewCallback::ColumnItemViewCallback(ListViewColumnItemArranger* _arranger) + :arranger(_arranger) { } - ~GuiCoroutineAnimation() + ListViewColumnItemArranger::ColumnItemViewCallback::~ColumnItemViewCallback() { } - void OnPlayAndWait(Ptr animation)override + void ListViewColumnItemArranger::ColumnItemViewCallback::OnColumnChanged() { - CHECK_ERROR(!waitingAnimation && waitingGroup == -1, L"GuiCoroutineAnimation::OnPlayAndWait(Ptr)#Cannot be called when an animation or a group has already been waiting for."); - waitingAnimation = animation; - waitingAnimation->Start(); + arranger->RebuildColumns(); + for (auto style : arranger->visibleStyles) + { + if (auto callback = dynamic_cast(style.key)) + { + callback->OnColumnChanged(); + } + } } + +/*********************************************************************** +ListViewColumnItemArranger +***********************************************************************/ - void OnPlayInGroup(Ptr animation, vint groupId)override + const wchar_t* const ListViewColumnItemArranger::IColumnItemView::Identifier = L"vl::presentation::controls::list::ListViewColumnItemArranger::IColumnItemView"; + + void ListViewColumnItemArranger::ColumnClicked(vint index, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - groupAnimations.Add(groupId, animation); - animation->Start(); + GuiItemEventArgs args(listView->ColumnClicked.GetAssociatedComposition()); + args.itemIndex=index; + listView->ColumnClicked.Execute(args); } - void OnWaitForGroup(vint groupId)override + void ListViewColumnItemArranger::ColumnBoundsChanged(vint index, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - CHECK_ERROR(!waitingAnimation && waitingGroup == -1, L"GuiCoroutineAnimation::OnWaitForGroup(vint)#Cannot be called when an animation or a group has already been waiting for."); - if (groupAnimations.Keys().Contains(groupId)) + GuiBoundsComposition* buttonBounds=columnHeaderButtons[index]->GetBoundsComposition(); + vint size=buttonBounds->GetBounds().Width(); + if(size>columnItemView->GetColumnSize(index)) { - waitingGroup = groupId; + columnItemView->SetColumnSize(index, size); } } - void Start()override + void ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - CHECK_ERROR(!coroutine, L"GuiCoroutineAnimation::Start()#Cannot be called more than once."); - coroutine = creator(this); + if(listView->GetVisuallyEnabled()) + { + arguments.handled=true; + splitterDragging=true; + splitterLatestX=arguments.x; + } } - void Pause()override + void ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if (waitingAnimation) + if(listView->GetVisuallyEnabled()) { - waitingAnimation->Pause(); + arguments.handled=true; + splitterDragging=false; + splitterLatestX=0; } - for (vint i = 0; i < groupAnimations.Count(); i++) + } + + void ListViewColumnItemArranger::ColumnHeaderSplitterMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + if(splitterDragging) { - for (auto animation : groupAnimations.GetByIndex(i)) + vint offset=arguments.x-splitterLatestX; + vint index=columnHeaderSplitters.IndexOf(dynamic_cast(sender)); + if(index!=-1) { - animation->Pause(); + GuiBoundsComposition* buttonBounds=columnHeaderButtons[index]->GetBoundsComposition(); + Rect bounds=buttonBounds->GetBounds(); + Rect newBounds(bounds.LeftTop(), Size(bounds.Width()+offset, bounds.Height())); + buttonBounds->SetBounds(newBounds); + + vint finalSize=buttonBounds->GetBounds().Width(); + columnItemView->SetColumnSize(index, finalSize); } } } - void Resume()override + void ListViewColumnItemArranger::RearrangeItemBounds() { - if (waitingAnimation) + FixedHeightItemArranger::RearrangeItemBounds(); + vint count = columnHeaders->GetParent()->Children().Count(); + columnHeaders->GetParent()->MoveChild(columnHeaders, count - 1); + columnHeaders->SetBounds(Rect(Point(-viewBounds.Left(), 0), Size(0, 0))); + } + + vint ListViewColumnItemArranger::GetWidth() + { + vint width=columnHeaders->GetBounds().Width()-SplitterWidth; + if(widthResume(); + width=SplitterWidth; } - for (vint i = 0; i < groupAnimations.Count(); i++) + return width; + } + + vint ListViewColumnItemArranger::GetYOffset() + { + return columnHeaders->GetBounds().Height(); + } + + Size ListViewColumnItemArranger::OnCalculateTotalSize() + { + Size size=FixedHeightItemArranger::OnCalculateTotalSize(); + size.x+=SplitterWidth; + return size; + } + + void ListViewColumnItemArranger::DeleteColumnButtons() + { + for(vint i=columnHeaders->GetStackItems().Count()-1;i>=0;i--) { - for (auto animation : groupAnimations.GetByIndex(i)) + GuiStackItemComposition* item=columnHeaders->GetStackItems().Get(i); + columnHeaders->RemoveChild(item); + + GuiControl* button=item->Children().Get(0)->GetAssociatedControl(); + if(button) { - animation->Resume(); + item->RemoveChild(button->GetBoundsComposition()); + delete button; } + delete item; } + columnHeaderButtons.Clear(); + columnHeaderSplitters.Clear(); } - void Run()override + void ListViewColumnItemArranger::RebuildColumns() { - CHECK_ERROR(coroutine, L"GuiCoroutineAnimation::Run()#Cannot be called before calling Start."); - - if (waitingAnimation) + if (columnItemView && columnHeaderButtons.Count() == listViewItemView->GetColumnCount()) { - waitingAnimation->Run(); - if (waitingAnimation->GetStopped()) + for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) { - waitingAnimation = nullptr; + GuiListViewColumnHeader* button = columnHeaderButtons[i]; + button->SetText(listViewItemView->GetColumnText(i)); + button->SetSubMenu(columnItemView->GetDropdownPopup(i), false); + button->SetColumnSortingState(columnItemView->GetSortingState(i)); + button->GetBoundsComposition()->SetBounds(Rect(Point(0, 0), Size(columnItemView->GetColumnSize(i), 0))); } } - - for (vint i = groupAnimations.Count() - 1; i >= 0; i--) + else { - auto& animations = groupAnimations.GetByIndex(i); - for (vint j = animations.Count() - 1; j >= 0; j--) + DeleteColumnButtons(); + if (columnItemView && listViewItemView) { - auto animation = animations[j]; - animation->Run(); - if (animation->GetStopped()) + for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) { - groupAnimations.Remove(i, animation.Obj()); + GuiBoundsComposition* splitterComposition = new GuiBoundsComposition; + splitterComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + splitterComposition->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeWE)); + splitterComposition->SetAlignmentToParent(Margin(0, 0, -1, 0)); + splitterComposition->SetPreferredMinSize(Size(SplitterWidth, 0)); + columnHeaderSplitters.Add(splitterComposition); + + splitterComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonDown); + splitterComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterLeftButtonUp); + splitterComposition->GetEventReceiver()->mouseMove.AttachMethod(this, &ListViewColumnItemArranger::ColumnHeaderSplitterMouseMove); + } + for (vint i = 0; i < listViewItemView->GetColumnCount(); i++) + { + GuiListViewColumnHeader* button = new GuiListViewColumnHeader(theme::ThemeName::Unknown); + button->SetAutoFocus(false); + button->SetControlTemplate(listView->TypedControlTemplateObject(true)->GetColumnHeaderTemplate()); + button->SetText(listViewItemView->GetColumnText(i)); + button->SetSubMenu(columnItemView->GetDropdownPopup(i), false); + button->SetColumnSortingState(columnItemView->GetSortingState(i)); + button->GetBoundsComposition()->SetBounds(Rect(Point(0, 0), Size(columnItemView->GetColumnSize(i), 0))); + button->Clicked.AttachLambda([this, i](GuiGraphicsComposition* sender, GuiEventArgs& args) { ColumnClicked(i, sender, args); }); + button->GetBoundsComposition()->BoundsChanged.AttachLambda([this, i](GuiGraphicsComposition* sender, GuiEventArgs& args) { ColumnBoundsChanged(i, sender, args); }); + columnHeaderButtons.Add(button); + if (i > 0) + { + button->GetContainerComposition()->AddChild(columnHeaderSplitters[i - 1]); + } + + GuiStackItemComposition* item = new GuiStackItemComposition; + item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + item->AddChild(button->GetBoundsComposition()); + columnHeaders->AddChild(item); + } + if (listViewItemView->GetColumnCount() > 0) + { + GuiBoundsComposition* splitterComposition = columnHeaderSplitters[listViewItemView->GetColumnCount() - 1]; + + GuiStackItemComposition* item = new GuiStackItemComposition; + item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + item->AddChild(splitterComposition); + columnHeaders->AddChild(item); } } } + callback->OnTotalSizeChanged(); + } - if (waitingGroup != -1 && !groupAnimations.Keys().Contains(waitingGroup)) + ListViewColumnItemArranger::ListViewColumnItemArranger() + { + columnHeaders = new GuiStackComposition; + columnHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + columnItemViewCallback = Ptr(new ColumnItemViewCallback(this)); + } + + ListViewColumnItemArranger::~ListViewColumnItemArranger() + { + if(!columnHeaders->GetParent()) { - waitingGroup = -1; + DeleteColumnButtons(); + delete columnHeaders; } + } - if (coroutine->GetStatus() == CoroutineStatus::Waiting) + void ListViewColumnItemArranger::AttachListControl(GuiListControl* value) + { + FixedHeightItemArranger::AttachListControl(value); + listView = dynamic_cast(value); + if (listView) { - if (waitingAnimation || waitingGroup != -1) + listViewItemView = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier)); + columnItemView = dynamic_cast(listView->GetItemProvider()->RequestView(IColumnItemView::Identifier)); + listView->GetContainerComposition()->AddChild(columnHeaders); + if (columnItemView) { - return; + columnItemView->AttachCallback(columnItemViewCallback.Obj()); + RebuildColumns(); } - coroutine->Resume(true, nullptr); } } - bool GetStopped()override + void ListViewColumnItemArranger::DetachListControl() { - if (!coroutine) return false; - if (coroutine->GetStatus() != CoroutineStatus::Stopped) return false; - if (waitingAnimation || groupAnimations.Count() > 0) return false; - return true; + if (listView) + { + if (columnItemView) + { + columnItemView->DetachCallback(columnItemViewCallback.Obj()); + columnItemView = nullptr; + } + listViewItemView = nullptr; + listView->GetContainerComposition()->RemoveChild(columnHeaders); + listView = nullptr; + } + FixedHeightItemArranger::DetachListControl(); } - }; - - void IGuiAnimationCoroutine::WaitAndPause(IImpl* impl, vuint64_t milliseconds) - { - return PlayAndWaitAndPause(impl, IGuiAnimation::CreateAnimation({}, milliseconds)); - } - - void IGuiAnimationCoroutine::PlayAndWaitAndPause(IImpl* impl, Ptr animation) - { - impl->OnPlayAndWait(animation); - } - - void IGuiAnimationCoroutine::PlayInGroupAndPause(IImpl* impl, Ptr animation, vint groupId) - { - impl->OnPlayInGroup(animation, groupId); - } - - void IGuiAnimationCoroutine::WaitForGroupAndPause(IImpl* impl, vint groupId) - { - impl->OnWaitForGroup(groupId); - } - - void IGuiAnimationCoroutine::ReturnAndExit(IImpl* impl) - { - } - - Ptr IGuiAnimationCoroutine::Create(const Creator& creator) - { - return new GuiCoroutineAnimation(creator); - } - } - } -} /*********************************************************************** -.\CONTROLS\TEMPLATES\GUICOMMONTEMPLATES.CPP +ListViewSubItems ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace templates - { - using namespace elements; - using namespace compositions; - using namespace templates; - using namespace controls; - using namespace theme; + void ListViewSubItems::NotifyUpdateInternal(vint start, vint count, vint newCount) + { + owner->NotifyUpdate(); + } /*********************************************************************** -GuiCommonDatePickerLook +ListViewItem ***********************************************************************/ - vint GetDayCountForMonth(vint year, vint month) - { - bool isLeapYear = (year % 100 == 0) ? (year % 400 == 0) : (year % 4 == 0); - switch (month) + void ListViewItem::NotifyUpdate() { - case 1:case 3:case 5:case 7:case 8:case 10:case 12: - return 31; - case 4:case 6:case 9:case 11: - return 30; - default: - return isLeapYear ? 29 : 28; + if (owner) + { + vint index = owner->IndexOf(this); + owner->NotifyUpdateInternal(index, 1, 1); + } } - } - void StepPreviousMonth(vint& year, vint& month) - { - if (month == 1) + ListViewItem::ListViewItem() + :owner(0) { - year--; - month = 12; + subItems.owner = this; } - else + + ListViewSubItems& ListViewItem::GetSubItems() { - month--; + return subItems; } - } - void StepNextMonth(vint& year, vint& month) - { - if (month == 12) + Ptr ListViewItem::GetSmallImage() { - year++; - month = 1; + return smallImage; } - else + + void ListViewItem::SetSmallImage(Ptr value) { - month++; + smallImage = value; + NotifyUpdate(); } - } - void GuiCommonDatePickerLook::SetDay(const DateTime& day, vint& index, vint monthOffset) - { - dateDays[index] = day; - GuiSolidLabelElement* label = labelDays[index]; - label->SetText(itow(day.day)); - label->SetColor(monthOffset == 0 ? primaryTextColor : secondaryTextColor); + Ptr ListViewItem::GetLargeImage() + { + return largeImage; + } + + void ListViewItem::SetLargeImage(Ptr value) + { + largeImage = value; + NotifyUpdate(); + } - wchar_t alt[] = L"D00"; - if (monthOffset == -1) alt[0] = L'C'; - else if (monthOffset == 1) alt[0] = L'E'; - alt[1] = (wchar_t)(L'0' + day.day / 10); - alt[2] = (wchar_t)(L'0' + day.day % 10); - buttonDays[index]->SetAlt(alt); + const WString& ListViewItem::GetText() + { + return text; + } - index++; - } + void ListViewItem::SetText(const WString& value) + { + text = value; + NotifyUpdate(); + } - void GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (!preventComboEvent) + description::Value ListViewItem::GetTag() { - if (comboYear->GetSelectedIndex() != -1 && comboMonth->GetSelectedIndex() != -1) - { - vint year = comboYear->GetSelectedIndex() + YearFirst; - vint month = comboMonth->GetSelectedIndex() + 1; - SetDate(DateTime::FromDateTime(year, month, 1)); + return tag; + } - GuiEventArgs arguments(this); - DateChanged.Execute(arguments); - commands->NotifyDateChanged(); - commands->NotifyDateNavigated(); - } + void ListViewItem::SetTag(const description::Value& value) + { + tag = value; + NotifyUpdate(); } - } - void GuiCommonDatePickerLook::buttonDay_SelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if (!preventButtonEvent) +/*********************************************************************** +ListViewColumn +***********************************************************************/ + + void ListViewColumn::NotifyUpdate(bool affectItem) { - GuiSelectableButton* button = dynamic_cast(sender->GetRelatedControl()); - if (button->GetSelected()) + if (owner) { - vint index = buttonDays.IndexOf(button); - if (index != -1) - { - DateTime day = dateDays[index]; - if (day.year != currentDate.year || day.month != currentDate.month) - { - SetDate(day); - } - else - { - currentDate = day; - } - - GuiEventArgs arguments(this); - DateChanged.Execute(arguments); - commands->NotifyDateChanged(); - commands->NotifyDateSelected(); - } + vint index = owner->IndexOf(this); + owner->NotifyColumnUpdated(index, affectItem); } } - } - void GuiCommonDatePickerLook::DisplayMonth(vint year, vint month) - { - if (YearFirst <= year && year <= YearLast && 1 <= month && month <= 12) + ListViewColumn::ListViewColumn(const WString& _text, vint _size) + :text(_text) + ,size(_size) { - preventComboEvent = true; - comboYear->SetSelectedIndex(year - YearFirst); - comboMonth->SetSelectedIndex(month - 1); - preventComboEvent = false; } - vint yearPrev = year, yearNext = year, monthPrev = month, monthNext = month; - StepPreviousMonth(yearPrev, monthPrev); - StepNextMonth(yearNext, monthNext); + ListViewColumn::~ListViewColumn() + { + if (dropdownPopup && ownPopup) + { + SafeDeleteControl(dropdownPopup); + } + } - vint countPrev = GetDayCountForMonth(yearPrev, monthPrev); - vint count = GetDayCountForMonth(year, month); - vint countNext = GetDayCountForMonth(yearNext, monthNext); + const WString& ListViewColumn::GetText() + { + return text; + } - DateTime firstDay = DateTime::FromDateTime(year, month, 1); - vint showPrev = firstDay.dayOfWeek; - if (showPrev == 0) showPrev = DaysOfWeek; - vint show = count; - vint showNext = DaysOfWeek*DayRows - showPrev - show; + void ListViewColumn::SetText(const WString& value) + { + if (text != value) + { + text = value; + NotifyUpdate(false); + } + } - vint index = 0; - for (vint i = 0; i < showPrev; i++) + ItemProperty ListViewColumn::GetTextProperty() { - DateTime day = DateTime::FromDateTime(yearPrev, monthPrev, countPrev - (showPrev - i - 1)); - SetDay(day, index, -1); + return textProperty; } - for (vint i = 0; i < show; i++) + + void ListViewColumn::SetTextProperty(const ItemProperty& value) { - DateTime day = DateTime::FromDateTime(year, month, i + 1); - SetDay(day, index, 0); + textProperty = value; + NotifyUpdate(true); } - for (vint i = 0; i < showNext; i++) + + vint ListViewColumn::GetSize() { - DateTime day = DateTime::FromDateTime(yearNext, monthNext, i + 1); - SetDay(day, index, 1); + return size; } - } - void GuiCommonDatePickerLook::SelectDay(vint day) - { - for (vint i = 0; i < dateDays.Count(); i++) + void ListViewColumn::SetSize(vint value) { - const DateTime& dt = dateDays[i]; - if (dt.year == currentDate.year && dt.month == currentDate.month && dt.day == day) + if (size != value) { - preventButtonEvent = true; - buttonDays[i]->SetSelected(true); - preventButtonEvent = false; - break; + size = value; + NotifyUpdate(false); } } - } - - GuiCommonDatePickerLook::GuiCommonDatePickerLook(Color _backgroundColor, Color _primaryTextColor, Color _secondaryTextColor) - :backgroundColor(_backgroundColor) - , primaryTextColor(_primaryTextColor) - , secondaryTextColor(_secondaryTextColor) - { - DateChanged.SetAssociatedComposition(this); - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - GuiTableComposition* monthTable = 0; - GuiTableComposition* dayTable = 0; + bool ListViewColumn::GetOwnPopup() { - listYears = new GuiTextList(theme::ThemeName::TextList); - listYears->SetHorizontalAlwaysVisible(false); - for (vint i = YearFirst; i <= YearLast; i++) - { - listYears->GetItems().Add(new list::TextItem(itow(i))); - } - comboYear = new GuiComboBoxListControl(theme::ThemeName::ComboBox, listYears); - comboYear->SetAlt(L"Y"); - comboYear->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 2, 0)); - comboYear->SelectedIndexChanged.AttachMethod(this, &GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged); + return ownPopup; } + + void ListViewColumn::SetOwnPopup(bool value) { - listMonths = new GuiTextList(theme::ThemeName::TextList); - listMonths->SetHorizontalAlwaysVisible(false); - comboMonth = new GuiComboBoxListControl(theme::ThemeName::ComboBox, listMonths); - comboMonth->SetAlt(L"M"); - comboMonth->GetBoundsComposition()->SetAlignmentToParent(Margin(2, 0, 0, 0)); - comboMonth->SelectedIndexChanged.AttachMethod(this, &GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged); + ownPopup = value; } + + GuiMenu* ListViewColumn::GetDropdownPopup() { - monthTable = new GuiTableComposition; - monthTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - monthTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - monthTable->SetRowsAndColumns(1, 2); - monthTable->SetRowOption(0, GuiCellOption::MinSizeOption()); - monthTable->SetColumnOption(0, GuiCellOption::PercentageOption(0.5)); - monthTable->SetColumnOption(1, GuiCellOption::PercentageOption(0.5)); - { - GuiCellComposition* cell = new GuiCellComposition; - monthTable->AddChild(cell); - cell->SetSite(0, 0, 1, 1); - cell->AddChild(comboYear->GetBoundsComposition()); - } - { - GuiCellComposition* cell = new GuiCellComposition; - monthTable->AddChild(cell); - cell->SetSite(0, 1, 1, 1); - cell->AddChild(comboMonth->GetBoundsComposition()); - } + return dropdownPopup; } - { - dayTable = new GuiTableComposition; - dayTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - dayTable->SetCellPadding(4); - dayTable->SetRowsAndColumns(DayRows + DayRowStart, DaysOfWeek); - for (vint i = 0; i < DayRowStart; i++) - { - dayTable->SetRowOption(i, GuiCellOption::MinSizeOption()); - } - for (vint i = 0; i < DayRows; i++) - { - dayTable->SetRowOption(i + DayRowStart, GuiCellOption::PercentageOption(1.0)); - } - for (vint i = 0; i < DaysOfWeek; i++) + void ListViewColumn::SetDropdownPopup(GuiMenu* value) + { + if (dropdownPopup != value) { - dayTable->SetColumnOption(i, GuiCellOption::PercentageOption(1.0)); + dropdownPopup = value; + NotifyUpdate(false); } + } - { - GuiCellComposition* cell = new GuiCellComposition; - dayTable->AddChild(cell); - cell->SetSite(0, 0, 1, DaysOfWeek); - cell->AddChild(monthTable); - } + ColumnSortingState ListViewColumn::GetSortingState() + { + return sortingState; + } - labelDaysOfWeek.Resize(7); - for (vint i = 0; i < DaysOfWeek; i++) + void ListViewColumn::SetSortingState(ColumnSortingState value) + { + if (sortingState != value) { - GuiCellComposition* cell = new GuiCellComposition; - dayTable->AddChild(cell); - cell->SetSite(1, i, 1, 1); - - GuiSolidLabelElement* element = GuiSolidLabelElement::Create(); - element->SetAlignments(Alignment::Center, Alignment::Center); - element->SetColor(primaryTextColor); - labelDaysOfWeek[i] = element; - cell->SetOwnedElement(element); + sortingState = value; + NotifyUpdate(false); } + } - buttonDays.Resize(DaysOfWeek*DayRows); - labelDays.Resize(DaysOfWeek*DayRows); - dateDays.Resize(DaysOfWeek*DayRows); +/*********************************************************************** +ListViewDataColumns +***********************************************************************/ - auto dayMutexController = new GuiSelectableButton::MutexGroupController; - AddComponent(dayMutexController); + void ListViewDataColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) + { + itemProvider->NotifyAllItemsUpdate(); + } - for (vint i = 0; i < DaysOfWeek; i++) - { - for (vint j = 0; j < DayRows; j++) - { - GuiCellComposition* cell = new GuiCellComposition; - dayTable->AddChild(cell); - cell->SetSite(j + DayRowStart, i, 1, 1); + ListViewDataColumns::ListViewDataColumns(IListViewItemProvider* _itemProvider) + :itemProvider(_itemProvider) + { + } - GuiSelectableButton* button = new GuiSelectableButton(theme::ThemeName::CheckBox); - button->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - button->SetGroupController(dayMutexController); - button->SelectedChanged.AttachMethod(this, &GuiCommonDatePickerLook::buttonDay_SelectedChanged); - cell->AddChild(button->GetBoundsComposition()); - buttonDays[j*DaysOfWeek + i] = button; + ListViewDataColumns::~ListViewDataColumns() + { + } - GuiSolidLabelElement* element = GuiSolidLabelElement::Create(); - element->SetAlignments(Alignment::Center, Alignment::Center); - element->SetText(L"0"); - labelDays[j*DaysOfWeek + i] = element; +/*********************************************************************** +ListViewColumns +***********************************************************************/ - GuiBoundsComposition* elementBounds = new GuiBoundsComposition; - elementBounds->SetOwnedElement(element); - elementBounds->SetAlignmentToParent(Margin(0, 0, 0, 0)); - elementBounds->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); - button->GetContainerComposition()->AddChild(elementBounds); - } - } + void ListViewColumns::NotifyColumnUpdated(vint column, bool affectItem) + { + affectItemFlag = affectItem; + NotifyUpdate(column, 1); + affectItemFlag = true; } + + void ListViewColumns::AfterInsert(vint index, const Ptr& value) { - GuiSolidBackgroundElement* element = GuiSolidBackgroundElement::Create(); - element->SetColor(backgroundColor); - dayTable->SetOwnedElement(element); + collections::ObservableListBase>::AfterInsert(index, value); + value->owner = this; } - dayTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - AddChild(dayTable); + void ListViewColumns::BeforeRemove(vint index, const Ptr& value) + { + value->owner = 0; + collections::ObservableListBase>::BeforeRemove(index, value); + } - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - SetFont(font); - } + void ListViewColumns::NotifyUpdateInternal(vint start, vint count, vint newCount) + { + itemProvider->NotifyAllColumnsUpdate(); + if (affectItemFlag) + { + itemProvider->NotifyAllItemsUpdate(); + } + } - GuiCommonDatePickerLook::~GuiCommonDatePickerLook() - { - FinalizeInstanceRecursively(this); - } + ListViewColumns::ListViewColumns(IListViewItemProvider* _itemProvider) + :itemProvider(_itemProvider) + { + } - controls::IDatePickerCommandExecutor* GuiCommonDatePickerLook::GetCommands() - { - return commands; - } + ListViewColumns::~ListViewColumns() + { + } - void GuiCommonDatePickerLook::SetCommands(controls::IDatePickerCommandExecutor* value) - { - commands = value; - } +/*********************************************************************** +ListViewItemProvider +***********************************************************************/ - TemplateProperty GuiCommonDatePickerLook::GetDateButtonTemplate() - { - return dateButtonTemplate; - } + void ListViewItemProvider::AfterInsert(vint index, const Ptr& value) + { + ListProvider>::AfterInsert(index, value); + value->owner = this; + } - void GuiCommonDatePickerLook::SetDateButtonTemplate(const TemplateProperty& value) - { - dateButtonTemplate = value; - for (auto button : buttonDays) + void ListViewItemProvider::BeforeRemove(vint index, const Ptr& value) { - button->SetControlTemplate(value); + value->owner = 0; + ListProvider>::AfterInsert(index, value); } - } - TemplateProperty GuiCommonDatePickerLook::GetDateTextListTemplate() - { - return dateTextListTemplate; - } + void ListViewItemProvider::NotifyAllItemsUpdate() + { + NotifyUpdate(0, Count()); + } - void GuiCommonDatePickerLook::SetDateTextListTemplate(const TemplateProperty& value) - { - dateTextListTemplate = value; - listYears->SetControlTemplate(value); - listMonths->SetControlTemplate(value); - } + void ListViewItemProvider::NotifyAllColumnsUpdate() + { + for (vint i = 0; i < columnItemViewCallbacks.Count(); i++) + { + columnItemViewCallbacks[i]->OnColumnChanged(); + } + } - TemplateProperty GuiCommonDatePickerLook::GetDateComboBoxTemplate() - { - return dateComboBoxTemplate; - } + Ptr ListViewItemProvider::GetSmallImage(vint itemIndex) + { + return Get(itemIndex)->smallImage; + } - void GuiCommonDatePickerLook::SetDateComboBoxTemplate(const TemplateProperty& value) - { - dateComboBoxTemplate = value; - comboYear->SetControlTemplate(value); - comboMonth->SetControlTemplate(value); - } + Ptr ListViewItemProvider::GetLargeImage(vint itemIndex) + { + return Get(itemIndex)->largeImage; + } - const Locale& GuiCommonDatePickerLook::GetDateLocale() - { - return dateLocale; - } + WString ListViewItemProvider::GetText(vint itemIndex) + { + return Get(itemIndex)->text; + } - void GuiCommonDatePickerLook::SetDateLocale(const Locale& value) - { - if (dateLocale != value) + WString ListViewItemProvider::GetSubItem(vint itemIndex, vint index) { - dateLocale = value; - for (vint i = 0; i < DaysOfWeek; i++) + Ptr item=Get(itemIndex); + if(index<0 || index>=item->GetSubItems().Count()) { - labelDaysOfWeek[i]->SetText(dateLocale.GetShortDayOfWeekName(i)); + return L""; } - - listMonths->GetItems().Clear(); - for (vint i = 1; i <= 12; i++) + else { - listMonths->GetItems().Add(new list::TextItem(dateLocale.GetLongMonthName(i))); + return item->GetSubItems()[index]; } - - SetDate(currentDate); } - } - const DateTime& GuiCommonDatePickerLook::GetDate() - { - return currentDate; - } + vint ListViewItemProvider::GetDataColumnCount() + { + return dataColumns.Count(); + } - void GuiCommonDatePickerLook::SetDate(const DateTime& value) - { - currentDate = value; - DisplayMonth(value.year, value.month); - SelectDay(value.day); - } + vint ListViewItemProvider::GetDataColumn(vint index) + { + return dataColumns[index]; + } - const FontProperties& GuiCommonDatePickerLook::GetFont() - { - return font; - } + vint ListViewItemProvider::GetColumnCount() + { + return columns.Count(); + } - void GuiCommonDatePickerLook::SetFont(const FontProperties& value) - { - if (font != value) + WString ListViewItemProvider::GetColumnText(vint index) { - font = value; - comboYear->SetFont(value); - listYears->SetFont(value); - comboMonth->SetFont(value); - listMonths->SetFont(value); - for (auto label : From(labelDaysOfWeek).Concat(labelDays)) + if (index<0 || index >= columns.Count()) { - label->SetFont(value); + return L""; + } + else + { + return columns[index]->GetText(); } } - } - -/*********************************************************************** -GuiCommonScrollViewLook -***********************************************************************/ - void GuiCommonScrollViewLook::UpdateTable() - { - if (horizontalScroll->GetVisible()) + bool ListViewItemProvider::AttachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) { - tableComposition->SetRowOption(1, GuiCellOption::AbsoluteOption(defaultScrollSize)); + if(columnItemViewCallbacks.Contains(value)) + { + return false; + } + else + { + columnItemViewCallbacks.Add(value); + return true; + } } - else + + bool ListViewItemProvider::DetachCallback(ListViewColumnItemArranger::IColumnItemViewCallback* value) { - tableComposition->SetRowOption(1, GuiCellOption::AbsoluteOption(0)); + vint index=columnItemViewCallbacks.IndexOf(value); + if(index==-1) + { + return false; + } + else + { + columnItemViewCallbacks.Remove(value); + return true; + } } - if (verticalScroll->GetVisible()) + vint ListViewItemProvider::GetColumnSize(vint index) { - tableComposition->SetColumnOption(1, GuiCellOption::AbsoluteOption(defaultScrollSize)); + if(index<0 || index>=columns.Count()) + { + return 0; + } + else + { + return columns[index]->GetSize(); + } } - else + + void ListViewItemProvider::SetColumnSize(vint index, vint value) { - tableComposition->SetColumnOption(1, GuiCellOption::AbsoluteOption(0)); + if(index>=0 && indexSetSize(value); + } } - tableComposition->UpdateCellBounds(); - } - - void GuiCommonScrollViewLook::hScroll_OnVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - UpdateTable(); - } - - void GuiCommonScrollViewLook::vScroll_OnVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - UpdateTable(); - } - - GuiCommonScrollViewLook::GuiCommonScrollViewLook(vint _defaultScrollSize) - :defaultScrollSize(_defaultScrollSize) - { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + GuiMenu* ListViewItemProvider::GetDropdownPopup(vint index) + { + if(index<0 || index>=columns.Count()) + { + return 0; + } + else + { + return columns[index]->GetDropdownPopup(); + } + } - horizontalScroll = new GuiScroll(theme::ThemeName::HScroll); - horizontalScroll->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - horizontalScroll->SetEnabled(false); - horizontalScroll->SetAutoFocus(false); - verticalScroll = new GuiScroll(theme::ThemeName::VScroll); - verticalScroll->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - verticalScroll->SetEnabled(false); - verticalScroll->SetAutoFocus(false); + ColumnSortingState ListViewItemProvider::GetSortingState(vint index) + { + if (index < 0 || index >= columns.Count()) + { + return ColumnSortingState::NotSorted; + } + else + { + return columns[index]->GetSortingState(); + } + } - tableComposition = new GuiTableComposition; - AddChild(tableComposition); - tableComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - tableComposition->SetRowsAndColumns(2, 2); - tableComposition->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); - tableComposition->SetRowOption(1, GuiCellOption::MinSizeOption()); - tableComposition->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); - tableComposition->SetColumnOption(1, GuiCellOption::MinSizeOption()); - UpdateTable(); + WString ListViewItemProvider::GetTextValue(vint itemIndex) { - GuiCellComposition* cell = new GuiCellComposition; - tableComposition->AddChild(cell); - cell->SetSite(1, 0, 1, 1); - cell->AddChild(horizontalScroll->GetBoundsComposition()); + return GetText(itemIndex); } + + description::Value ListViewItemProvider::GetBindingValue(vint itemIndex) { - GuiCellComposition* cell = new GuiCellComposition; - tableComposition->AddChild(cell); - cell->SetSite(0, 1, 1, 1); - cell->AddChild(verticalScroll->GetBoundsComposition()); + return Value::From(Get(itemIndex)); } - containerCellComposition = new GuiCellComposition; - tableComposition->AddChild(containerCellComposition); - containerCellComposition->SetSite(0, 0, 1, 1); + ListViewItemProvider::ListViewItemProvider() + :columns(this) + , dataColumns(this) + { + } - containerComposition = new GuiBoundsComposition; - containerComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - containerCellComposition->AddChild(containerComposition); + ListViewItemProvider::~ListViewItemProvider() + { + } - horizontalScroll->VisibleChanged.AttachMethod(this, &GuiCommonScrollViewLook::hScroll_OnVisibleChanged); - verticalScroll->VisibleChanged.AttachMethod(this, &GuiCommonScrollViewLook::vScroll_OnVisibleChanged); - UpdateTable(); - } + IDescriptable* ListViewItemProvider::RequestView(const WString& identifier) + { + if (identifier == IListViewItemView::Identifier) + { + return (IListViewItemView*)this; + } + else if (identifier == ListViewColumnItemArranger::IColumnItemView::Identifier) + { + return (ListViewColumnItemArranger::IColumnItemView*)this; + } + else + { + return 0; + } + } - GuiCommonScrollViewLook::~GuiCommonScrollViewLook() - { - } + ListViewDataColumns& ListViewItemProvider::GetDataColumns() + { + return dataColumns; + } - controls::GuiScroll* GuiCommonScrollViewLook::GetHScroll() - { - return horizontalScroll; + ListViewColumns& ListViewItemProvider::GetColumns() + { + return columns; + } } - controls::GuiScroll* GuiCommonScrollViewLook::GetVScroll() - { - return verticalScroll; - } +/*********************************************************************** +GuiListView +***********************************************************************/ - compositions::GuiGraphicsComposition* GuiCommonScrollViewLook::GetContainerComposition() + void GuiVirtualListView::OnStyleInstalled(vint itemIndex, ItemStyle* style) { - return containerComposition; + GuiListViewBase::OnStyleInstalled(itemIndex, style); } - TemplateProperty GuiCommonScrollViewLook::GetHScrollTemplate() + void GuiVirtualListView::OnItemTemplateChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return hScrollTemplate; + view = ListViewView::Unknown; } - void GuiCommonScrollViewLook::SetHScrollTemplate(const TemplateProperty& value) + GuiVirtualListView::GuiVirtualListView(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) + :GuiListViewBase(themeName, _itemProvider) { - hScrollTemplate = value; - horizontalScroll->SetControlTemplate(value); + SetView(ListViewView::Detail); } - TemplateProperty GuiCommonScrollViewLook::GetVScrollTemplate() + GuiVirtualListView::~GuiVirtualListView() { - return vScrollTemplate; } - void GuiCommonScrollViewLook::SetVScrollTemplate(const TemplateProperty& value) + ListViewView GuiVirtualListView::GetView() { - vScrollTemplate = value; - verticalScroll->SetControlTemplate(value); + return view; } -/*********************************************************************** -GuiCommonScrollBehavior -***********************************************************************/ - - void GuiCommonScrollBehavior::SetScroll(vint totalPixels, vint newOffset) + void GuiVirtualListView::SetView(ListViewView _view) { - vint totalSize = scrollTemplate->GetTotalSize(); - double ratio = (double)newOffset / totalPixels; - vint newPosition = (vint)round(ratio * totalSize); - - vint offset1 = (vint)round(((double)newPosition / totalSize) * totalPixels); - vint offset2 = (vint)round(((double)(newPosition + 1)) / totalSize * totalPixels); - vint delta1 = offset1 - newOffset; - vint delta2 = offset2 - newOffset; - - if (delta1 < 0) { delta1 = -delta1; } - if (delta2 < 0) { delta2 = -delta2; } - - if (delta1 < delta2) - { - scrollTemplate->GetCommands()->SetPosition(newPosition); - } - else + switch (_view) { - scrollTemplate->GetCommands()->SetPosition(newPosition + 1); + case ListViewView::BigIcon: + SetStyleAndArranger( + [](const Value&) { return new list::BigIconListViewItemTemplate; }, + Ptr(new list::FixedSizeMultiColumnItemArranger) + ); + break; + case ListViewView::SmallIcon: + SetStyleAndArranger( + [](const Value&) { return new list::SmallIconListViewItemTemplate; }, + Ptr(new list::FixedSizeMultiColumnItemArranger) + ); + break; + case ListViewView::List: + SetStyleAndArranger( + [](const Value&) { return new list::ListListViewItemTemplate; }, + Ptr(new list::FixedHeightMultiColumnItemArranger) + ); + break; + case ListViewView::Tile: + SetStyleAndArranger( + [](const Value&) { return new list::TileListViewItemTemplate; }, + Ptr(new list::FixedSizeMultiColumnItemArranger) + ); + break; + case ListViewView::Information: + SetStyleAndArranger( + [](const Value&) { return new list::InformationListViewItemTemplate; }, + Ptr(new list::FixedHeightItemArranger) + ); + break; + case ListViewView::Detail: + SetStyleAndArranger( + [](const Value&) { return new list::DetailListViewItemTemplate; }, + Ptr(new list::ListViewColumnItemArranger) + ); + break; + default:; } + view = _view; } - void GuiCommonScrollBehavior::AttachHandle(compositions::GuiGraphicsComposition* handle) - { - handle->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) - { - if (scrollTemplate->GetVisuallyEnabled()) - { - dragging = true; - location.x = arguments.x; - location.y = arguments.y; - } - }); - - handle->GetEventReceiver()->leftButtonUp.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs&) - { - if (scrollTemplate->GetVisuallyEnabled()) - { - dragging = false; - } - }); - } - - GuiCommonScrollBehavior::GuiCommonScrollBehavior() - { - } - - GuiCommonScrollBehavior::~GuiCommonScrollBehavior() - { - } - - void GuiCommonScrollBehavior::AttachScrollTemplate(GuiScrollTemplate* value) - { - scrollTemplate = value; - } - - void GuiCommonScrollBehavior::AttachDecreaseButton(controls::GuiButton* button) - { - button->Clicked.AttachLambda([=](GuiGraphicsComposition*, GuiEventArgs&) - { - scrollTemplate->GetCommands()->SmallDecrease(); - }); - } - - void GuiCommonScrollBehavior::AttachIncreaseButton(controls::GuiButton* button) - { - button->Clicked.AttachLambda([=](GuiGraphicsComposition*, GuiEventArgs&) - { - scrollTemplate->GetCommands()->SmallIncrease(); - }); - } +/*********************************************************************** +GuiListView +***********************************************************************/ - void GuiCommonScrollBehavior::AttachHorizontalScrollHandle(compositions::GuiPartialViewComposition* partialView) + GuiListView::GuiListView(theme::ThemeName themeName) + :GuiVirtualListView(themeName, new list::ListViewItemProvider) { - partialView->GetParent()->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) - { - if (scrollTemplate->GetVisuallyEnabled()) - { - if (arguments.x < partialView->GetBounds().x1) - { - scrollTemplate->GetCommands()->BigDecrease(); - } - else if (arguments.x >= partialView->GetBounds().x2) - { - scrollTemplate->GetCommands()->BigIncrease(); - } - } - }); - - AttachHorizontalTrackerHandle(partialView); + items=dynamic_cast(itemProvider.Obj()); } - void GuiCommonScrollBehavior::AttachVerticalScrollHandle(compositions::GuiPartialViewComposition* partialView) + GuiListView::~GuiListView() { - partialView->GetParent()->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) - { - if (scrollTemplate->GetVisuallyEnabled()) - { - if (arguments.y < partialView->GetBounds().y1) - { - scrollTemplate->GetCommands()->BigDecrease(); - } - else if (arguments.y >= partialView->GetBounds().y2) - { - scrollTemplate->GetCommands()->BigIncrease(); - } - } - }); - - AttachVerticalTrackerHandle(partialView); } - void GuiCommonScrollBehavior::AttachHorizontalTrackerHandle(compositions::GuiPartialViewComposition* partialView) + list::ListViewItemProvider& GuiListView::GetItems() { - partialView->GetEventReceiver()->mouseMove.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) - { - if (dragging) - { - auto bounds = partialView->GetParent()->GetBounds(); - vint totalPixels = bounds.x2 - bounds.x1; - vint currentOffset = partialView->GetBounds().x1; - vint newOffset = currentOffset + (arguments.x - location.x); - SetScroll(totalPixels, newOffset); - } - }); - - AttachHandle(partialView); + return *items; } - void GuiCommonScrollBehavior::AttachVerticalTrackerHandle(compositions::GuiPartialViewComposition* partialView) + list::ListViewDataColumns& GuiListView::GetDataColumns() { - partialView->GetEventReceiver()->mouseMove.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) - { - if (dragging) - { - auto bounds = partialView->GetParent()->GetBounds(); - vint totalPixels = bounds.y2 - bounds.y1; - vint currentOffset = partialView->GetBounds().y1; - vint newOffset = currentOffset + (arguments.y - location.y); - SetScroll(totalPixels, newOffset); - } - }); - - AttachHandle(partialView); + return items->GetDataColumns(); } - vint GuiCommonScrollBehavior::GetHorizontalTrackerHandlerPosition(compositions::GuiBoundsComposition* handle, vint totalSize, vint pageSize, vint position) + list::ListViewColumns& GuiListView::GetColumns() { - vint width = handle->GetParent()->GetBounds().Width() - handle->GetBounds().Width(); - vint max = totalSize - pageSize; - return max == 0 ? 0 : width * position / max; + return items->GetColumns(); } - vint GuiCommonScrollBehavior::GetVerticalTrackerHandlerPosition(compositions::GuiBoundsComposition* handle, vint totalSize, vint pageSize, vint position) + Ptr GuiListView::GetSelectedItem() { - vint height = handle->GetParent()->GetBounds().Height() - handle->GetBounds().Height(); - vint max = totalSize - pageSize; - return max == 0 ? 0 : height * position / max; + vint index = GetSelectedItemIndex(); + if (index == -1) return 0; + return items->Get(index); } } } } /*********************************************************************** -.\CONTROLS\TEMPLATES\GUICONTROLSHARED.CPP +.\CONTROLS\LISTCONTROLPACKAGE\GUILISTVIEWITEMTEMPLATES.CPP ***********************************************************************/ namespace vl @@ -14562,529 +14390,696 @@ namespace vl { namespace controls { - using namespace reflection::description; + using namespace elements; using namespace compositions; + using namespace collections; + using namespace reflection::description; -/*********************************************************************** -GuiComponent -***********************************************************************/ - - GuiComponent::GuiComponent() - { - } - - GuiComponent::~GuiComponent() - { - } - - void GuiComponent::Attach(GuiInstanceRootObject* rootObject) - { - } - - void GuiComponent::Detach(GuiInstanceRootObject* rootObject) + namespace list { - } /*********************************************************************** -GuiInstanceRootObject +DefaultListViewItemTemplate ***********************************************************************/ - class RootObjectTimerCallback : public Object, public IGuiGraphicsTimerCallback - { - public: - GuiControlHost* controlHost; - GuiInstanceRootObject* rootObject; - bool alive = true; + DefaultListViewItemTemplate::DefaultListViewItemTemplate() + { + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + } - RootObjectTimerCallback(GuiInstanceRootObject* _rootObject, GuiControlHost* _controlHost) - :rootObject(_rootObject) - , controlHost(_controlHost) + DefaultListViewItemTemplate::~DefaultListViewItemTemplate() { } - bool Play()override +/*********************************************************************** +BigIconListViewItemTemplate +***********************************************************************/ + + void BigIconListViewItemTemplate::OnInitialize() { - if (alive) + DefaultListViewItemTemplate::OnInitialize(); { - for (vint i = rootObject->runningAnimations.Count() - 1; i >= 0; i--) + auto table = new GuiTableComposition; + AddChild(table); + table->SetRowsAndColumns(2, 3); + table->SetRowOption(0, GuiCellOption::MinSizeOption()); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetColumnOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(1, GuiCellOption::MinSizeOption()); + table->SetColumnOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(5); { - auto animation = rootObject->runningAnimations[i]; - animation->Run(); - if (animation->GetStopped()) - { - rootObject->runningAnimations.RemoveAt(i); - } + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 1, 1); + cell->SetPreferredMinSize(Size(32, 32)); + + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetMinSizeLimitation(GuiGraphicsComposition::NoLimit); + cell->SetSite(1, 0, 1, 3); + cell->SetPreferredMinSize(Size(64, 40)); - if (rootObject->runningAnimations.Count() == 0) + text = GuiSolidLabelElement::Create(); + text->SetAlignments(Alignment::Center, Alignment::Top); + text->SetWrapLine(true); + text->SetEllipse(true); + cell->SetOwnedElement(Ptr(text)); + } + } + + if (auto listView = dynamic_cast(listControl)) + { + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) { - rootObject->UninstallTimerCallback(nullptr); - return false; + auto imageData = view->GetLargeImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); } } - return alive; + + FontChanged.AttachMethod(this, &BigIconListViewItemTemplate::OnFontChanged); + + FontChanged.Execute(compositions::GuiEventArgs(this)); } - }; - - void GuiInstanceRootObject::InstallTimerCallback(controls::GuiControlHost* controlHost) - { - if (!timerCallback) + + void BigIconListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - timerCallback = new RootObjectTimerCallback(this, controlHost); - controlHost->GetTimerManager()->AddCallback(timerCallback); + text->SetFont(GetFont()); } - } - bool GuiInstanceRootObject::UninstallTimerCallback(controls::GuiControlHost* controlHost) - { - if (timerCallback && timerCallback->controlHost != controlHost) + BigIconListViewItemTemplate::BigIconListViewItemTemplate() { - timerCallback->alive = false; - timerCallback = nullptr; - return true; } - return false; - } - void GuiInstanceRootObject::OnControlHostForInstanceChanged() - { - auto controlHost = GetControlHostForInstance(); - if (UninstallTimerCallback(controlHost)) + BigIconListViewItemTemplate::~BigIconListViewItemTemplate() { - for (auto animation : runningAnimations) - { - animation->Pause(); - } } - if (controlHost) +/*********************************************************************** +SmallIconListViewItemTemplate +***********************************************************************/ + + void SmallIconListViewItemTemplate::OnInitialize() { - InstallTimerCallback(controlHost); - for (auto animation : runningAnimations) + DefaultListViewItemTemplate::OnInitialize(); { - animation->Resume(); + auto table = new GuiTableComposition; + AddChild(table); + table->SetRowsAndColumns(3, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::MinSizeOption()); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(2); + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(16, 16)); + + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); + } + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetPreferredMinSize(Size(192, 0)); + + text = GuiSolidLabelElement::Create(); + text->SetAlignments(Alignment::Left, Alignment::Center); + text->SetEllipse(true); + cell->SetOwnedElement(Ptr(text)); + } } - StartPendingAnimations(); + + if (auto listView = dynamic_cast(listControl)) + { + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + auto imageData = view->GetSmallImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); + } + } + + FontChanged.AttachMethod(this, &SmallIconListViewItemTemplate::OnFontChanged); + + FontChanged.Execute(compositions::GuiEventArgs(this)); } - } - void GuiInstanceRootObject::StartPendingAnimations() - { - for (auto animation : pendingAnimations) + void SmallIconListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - animation->Start(); + text->SetFont(GetFont()); } - CopyFrom(runningAnimations, pendingAnimations, true); - pendingAnimations.Clear(); - } + SmallIconListViewItemTemplate::SmallIconListViewItemTemplate() + { + } - GuiInstanceRootObject::GuiInstanceRootObject() - { - } + SmallIconListViewItemTemplate::~SmallIconListViewItemTemplate() + { + } - GuiInstanceRootObject::~GuiInstanceRootObject() - { - UninstallTimerCallback(nullptr); - } +/*********************************************************************** +ListListViewItemTemplate +***********************************************************************/ - void GuiInstanceRootObject::FinalizeInstance() - { - if (!finalized) + void ListListViewItemTemplate::OnInitialize() { - finalized = true; - - for (auto subscription : subscriptions) - { - subscription->Close(); - } - for (auto component : components) + DefaultListViewItemTemplate::OnInitialize(); { - component->Detach(this); + auto table = new GuiTableComposition; + AddChild(table); + table->SetRowsAndColumns(3, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::MinSizeOption()); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(2); + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(16, 16)); + + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); + } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetMargin(Margin(0, 0, 16, 0)); + + text = GuiSolidLabelElement::Create(); + text->SetAlignments(Alignment::Left, Alignment::Center); + cell->SetOwnedElement(Ptr(text)); + } } - subscriptions.Clear(); - for (vint i = 0; i(listControl)) { - delete components[i]; + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + auto imageData = view->GetSmallImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); + } } - components.Clear(); - } - } - bool GuiInstanceRootObject::IsFinalized() - { - return finalized; - } + FontChanged.AttachMethod(this, &ListListViewItemTemplate::OnFontChanged); - void GuiInstanceRootObject::FinalizeInstanceRecursively(templates::GuiTemplate* thisObject) - { - if (!finalized) - { - NotifyFinalizeInstance(thisObject); + FontChanged.Execute(compositions::GuiEventArgs(this)); } - } - void GuiInstanceRootObject::FinalizeInstanceRecursively(GuiCustomControl* thisObject) - { - if (!finalized) + void ListListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - NotifyFinalizeInstance(thisObject); + text->SetFont(GetFont()); } - } - void GuiInstanceRootObject::FinalizeInstanceRecursively(GuiControlHost* thisObject) - { - if (!finalized) + ListListViewItemTemplate::ListListViewItemTemplate() { - NotifyFinalizeInstance(thisObject); } - } - - void GuiInstanceRootObject::FinalizeGeneralInstance(GuiInstanceRootObject* thisObject) - { - } - - void GuiInstanceRootObject::SetResourceResolver(Ptr resolver) - { - resourceResolver = resolver; - } - Ptr GuiInstanceRootObject::ResolveResource(const WString& protocol, const WString& path, bool ensureExist) - { - Ptr object; - if (resourceResolver) - { - object = resourceResolver->ResolveResource(protocol, path); - } - if (ensureExist && !object) + ListListViewItemTemplate::~ListListViewItemTemplate() { - throw ArgumentException(L"Resource \"" + protocol + L"://" + path + L"\" does not exist."); } - return object; - } - Ptr GuiInstanceRootObject::AddSubscription(Ptr subscription) - { - CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddSubscription(Ptr)#Cannot add subscription after finalizing."); - if (subscriptions.Contains(subscription.Obj())) - { - return nullptr; - } - else - { - subscriptions.Add(subscription); - subscription->Open(); - subscription->Update(); - return subscription; - } - } +/*********************************************************************** +TileListViewItemTemplate +***********************************************************************/ - void GuiInstanceRootObject::UpdateSubscriptions() - { - for (auto subscription : subscriptions) + elements::GuiSolidLabelElement* TileListViewItemTemplate::CreateTextElement(vint textRow) { - subscription->Update(); + auto cell = new GuiCellComposition; + textTable->AddChild(cell); + cell->SetSite(textRow + 1, 0, 1, 1); + + auto textElement = Ptr(GuiSolidLabelElement::Create()); + textElement->SetAlignments(Alignment::Left, Alignment::Center); + textElement->SetEllipse(true); + cell->SetOwnedElement(textElement); + return textElement.Obj(); } - } - bool GuiInstanceRootObject::AddComponent(GuiComponent* component) - { - CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddComponent(GuiComponent*)#Cannot add component after finalizing."); - if(components.Contains(component)) + void TileListViewItemTemplate::ResetTextTable(vint textRows) { - return false; + textTable->SetRowsAndColumns(textRows + 2, 1); + textTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + for (vint i = 0; iSetRowOption(i + 1, GuiCellOption::MinSizeOption()); + } + textTable->SetRowOption(textRows + 1, GuiCellOption::PercentageOption(0.5)); + textTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); } - else + + void TileListViewItemTemplate::OnInitialize() { - components.Add(component); - component->Attach(this); - return true; - } - } + DefaultListViewItemTemplate::OnInitialize(); + { + auto table = new GuiTableComposition; + AddChild(table); + table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + table->SetRowsAndColumns(3, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::MinSizeOption()); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(4); + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(32, 32)); - bool GuiInstanceRootObject::AddControlHostComponent(GuiControlHost* controlHost) - { - return AddComponent(new GuiObjectComponent(controlHost)); - } + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); + } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetPreferredMinSize(Size(224, 0)); - bool GuiInstanceRootObject::AddAnimation(Ptr animation) - { - CHECK_ERROR(finalized == false, L"GuiInstanceRootObject::AddAnimation(Ptr)#Cannot add animation after finalizing."); - if (runningAnimations.Contains(animation.Obj()) || pendingAnimations.Contains(animation.Obj())) - { - return false; + textTable = new GuiTableComposition; + textTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + textTable->SetCellPadding(1); + ResetTextTable(1); + textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + cell->AddChild(textTable); + { + text = CreateTextElement(0); + } + } + } + + if (auto listView = dynamic_cast(listControl)) + { + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + auto imageData = view->GetLargeImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); + + vint dataColumnCount = view->GetDataColumnCount(); + ResetTextTable(dataColumnCount + 1); + dataTexts.Resize(dataColumnCount); + for (vint i = 0; i < dataColumnCount; i++) + { + dataTexts[i] = CreateTextElement(i + 1); + dataTexts[i]->SetText(view->GetSubItem(itemIndex, view->GetDataColumn(i))); + dataTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); + } + } + } + + FontChanged.AttachMethod(this, &TileListViewItemTemplate::OnFontChanged); + + FontChanged.Execute(compositions::GuiEventArgs(this)); } - else - { - pendingAnimations.Add(animation); - if (auto controlHost = GetControlHostForInstance()) + void TileListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + text->SetFont(GetFont()); + if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) { - InstallTimerCallback(controlHost); - StartPendingAnimations(); + vint dataColumnCount = view->GetDataColumnCount(); + for (vint i = 0; i < dataColumnCount; i++) + { + dataTexts[i]->SetFont(GetFont()); + } } - return true; } - } - bool GuiInstanceRootObject::KillAnimation(Ptr animation) - { - if (!animation) return false; - if (runningAnimations.Contains(animation.Obj())) + TileListViewItemTemplate::TileListViewItemTemplate() { - runningAnimations.Remove(animation.Obj()); - return true; } - if (pendingAnimations.Contains(animation.Obj())) + + TileListViewItemTemplate::~TileListViewItemTemplate() { - pendingAnimations.Remove(animation.Obj()); - return true; } - return false; - } - } - } -} /*********************************************************************** -.\CONTROLS\TEMPLATES\GUICONTROLTEMPLATES.CPP +InformationListViewItemTemplate ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace templates - { - using namespace collections; - using namespace controls; - using namespace compositions; - using namespace elements; + void InformationListViewItemTemplate::OnInitialize() + { + DefaultListViewItemTemplate::OnInitialize(); + { + bottomLine = GuiSolidBackgroundElement::Create(); + bottomLineComposition = new GuiBoundsComposition; + bottomLineComposition->SetOwnedElement(Ptr(bottomLine)); + bottomLineComposition->SetAlignmentToParent(Margin(8, -1, 8, 0)); + bottomLineComposition->SetPreferredMinSize(Size(0, 1)); + AddChild(bottomLineComposition); -/*********************************************************************** -GuiTemplate -***********************************************************************/ + auto table = new GuiTableComposition; + AddChild(table); + table->SetRowsAndColumns(3, 3); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); + table->SetColumnOption(2, GuiCellOption::MinSizeOption()); + table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(4); + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(32, 32)); - GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_IMPL) + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); + } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); - controls::GuiControlHost* GuiTemplate::GetControlHostForInstance() - { - return GetRelatedControlHost(); - } + text = GuiSolidLabelElement::Create(); + text->SetEllipse(true); + cell->SetOwnedElement(Ptr(text)); + } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 2, 3, 1); + cell->SetPreferredMinSize(Size(224, 0)); - void GuiTemplate::OnParentLineChanged() - { - GuiBoundsComposition::OnParentLineChanged(); - OnControlHostForInstanceChanged(); - } + textTable = new GuiTableComposition; + textTable->SetCellPadding(4); + textTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + cell->AddChild(textTable); + } + } - GuiTemplate::GuiTemplate() - { - GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_EVENT_INIT) - } + if (auto listView = dynamic_cast(listControl)) + { + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + auto imageData = view->GetLargeImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(nullptr); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); + bottomLine->SetColor(listView->TypedControlTemplateObject(true)->GetItemSeparatorColor()); - GuiTemplate::~GuiTemplate() - { - FinalizeInstanceRecursively(this); - } + vint dataColumnCount = view->GetDataColumnCount(); + columnTexts.Resize(dataColumnCount); + dataTexts.Resize(dataColumnCount); -/*********************************************************************** -Item GuiListItemTemplate -***********************************************************************/ + textTable->SetRowsAndColumns(dataColumnCount + 2, 1); + textTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + for (vint i = 0; i < dataColumnCount; i++) + { + textTable->SetRowOption(i + 1, GuiCellOption::MinSizeOption()); + } + textTable->SetRowOption(dataColumnCount + 1, GuiCellOption::PercentageOption(0.5)); + textTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); - void GuiListItemTemplate::OnInitialize() - { - } + for (vint i = 0; i < dataColumnCount; i++) + { + auto cell = new GuiCellComposition; + textTable->AddChild(cell); + cell->SetSite(i + 1, 0, 1, 1); - GuiListItemTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_IMPL) + auto dataTable = new GuiTableComposition; + dataTable->SetRowsAndColumns(1, 2); + dataTable->SetRowOption(0, GuiCellOption::MinSizeOption()); + dataTable->SetColumnOption(0, GuiCellOption::MinSizeOption()); + dataTable->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); + dataTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + dataTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + cell->AddChild(dataTable); + { + auto cell = new GuiCellComposition; + dataTable->AddChild(cell); + cell->SetSite(0, 0, 1, 1); - GuiListItemTemplate::GuiListItemTemplate() - { - GuiListItemTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_EVENT_INIT) - } + columnTexts[i] = GuiSolidLabelElement::Create(); + columnTexts[i]->SetText(view->GetColumnText(view->GetDataColumn(i) + 1) + L": "); + columnTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); + cell->SetOwnedElement(Ptr(columnTexts[i])); + } + { + auto cell = new GuiCellComposition; + dataTable->AddChild(cell); + cell->SetSite(0, 1, 1, 1); - GuiListItemTemplate::~GuiListItemTemplate() - { - FinalizeAggregation(); - } + dataTexts[i]= GuiSolidLabelElement::Create(); + dataTexts[i]->SetEllipse(true); + dataTexts[i]->SetText(view->GetSubItem(itemIndex, view->GetDataColumn(i))); + dataTexts[i]->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); + cell->SetOwnedElement(Ptr(dataTexts[i])); + } + } + } + } - void GuiListItemTemplate::BeginEditListItem() - { - listControl->GetItemProvider()->PushEditing(); - } + FontChanged.AttachMethod(this, &InformationListViewItemTemplate::OnFontChanged); - void GuiListItemTemplate::EndEditListItem() - { - CHECK_ERROR(listControl->GetItemProvider()->PopEditing(), L"GuiListItemTemplate::EndEditListItem()#BeginEditListItem and EndEditListItem calls are not paired."); - } + FontChanged.Execute(compositions::GuiEventArgs(this)); + } - void GuiListItemTemplate::Initialize(controls::GuiListControl* _listControl) - { - CHECK_ERROR(listControl == nullptr, L"GuiListItemTemplate::Initialize(GuiListControl*)#This function can only be called once."); - listControl = _listControl; - OnInitialize(); - } + void InformationListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + { + auto font = GetFont(); + font.size = (vint)(font.size * 1.2); + text->SetFont(font); + } + if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + vint dataColumnCount = view->GetDataColumnCount(); + for (vint i = 0; i < dataColumnCount; i++) + { + columnTexts[i]->SetFont(GetFont()); + dataTexts[i]->SetFont(GetFont()); + } + } + } -/*********************************************************************** -Template Declarations -***********************************************************************/ + InformationListViewItemTemplate::InformationListViewItemTemplate() + { + } - GUI_CONTROL_TEMPLATE_DECL(GUI_TEMPLATE_CLASS_IMPL) - GUI_ITEM_TEMPLATE_DECL(GUI_TEMPLATE_CLASS_IMPL) - } - } -} + InformationListViewItemTemplate::~InformationListViewItemTemplate() + { + } /*********************************************************************** -.\CONTROLS\TEMPLATES\GUITHEMESTYLEFACTORY.CPP +DetailListViewItemTemplate ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace theme - { - using namespace collections; - using namespace controls; - using namespace templates; - - class Theme : public Object, public virtual theme::ITheme - { - public: - Dictionary> templates; - ThemeTemplates* first = nullptr; - ThemeTemplates* last = nullptr; - - bool RegisterTheme(const WString& name, Ptr theme) + void DetailListViewItemTemplate::OnInitialize() { - CHECK_ERROR(theme->previous == nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme object has been registered"); - CHECK_ERROR(theme->next == nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme object has been registered"); + DefaultListViewItemTemplate::OnInitialize(); + columnItemView = dynamic_cast(listControl->GetItemProvider()->RequestView(ListViewColumnItemArranger::IColumnItemView::Identifier)); - if (templates.Keys().Contains(name)) { - return false; - } - templates.Add(name, theme); + textTable = new GuiTableComposition; + textTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + textTable->SetRowsAndColumns(1, 1); + textTable->SetRowOption(0, GuiCellOption::MinSizeOption()); + textTable->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); + AddChild(textTable); + { + auto cell = new GuiCellComposition; + textTable->AddChild(cell); + cell->SetSite(0, 0, 1, 1); - if (last) - { - last->next = theme.Obj(); - } - theme->previous = last; - last = theme.Obj(); + auto table = new GuiTableComposition; + cell->AddChild(table); + table->SetRowsAndColumns(3, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(2); + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->SetPreferredMinSize(Size(16, 16)); - return true; - } + image = GuiImageFrameElement::Create(); + image->SetStretch(true); + cell->SetOwnedElement(Ptr(image)); + } + { + auto cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetMargin(Margin(0, 0, 8, 0)); - Ptr UnregisterTheme(const WString& name) - { - vint index = templates.Keys().IndexOf(name); - if (index == -1) - { - return nullptr; + text = GuiSolidLabelElement::Create(); + text->SetAlignments(Alignment::Left, Alignment::Center); + text->SetEllipse(true); + cell->SetOwnedElement(Ptr(text)); + } + } } - auto themeTemplates = templates.Values().Get(index); - - if (themeTemplates->previous) - { - themeTemplates->previous->next = themeTemplates->next; - } - else + if (auto listView = dynamic_cast(listControl)) { - first = themeTemplates->next; - } + auto itemIndex = GetIndex(); + if (auto view = dynamic_cast(listView->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + auto imageData = view->GetSmallImage(itemIndex); + if (imageData) + { + image->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + image->SetImage(0); + } + text->SetText(view->GetText(itemIndex)); + text->SetColor(listView->TypedControlTemplateObject(true)->GetPrimaryTextColor()); - if (themeTemplates->next) - { - themeTemplates->next->previous = themeTemplates->previous; + vint columnCount = view->GetColumnCount() - 1; + subItems.Resize(columnCount); + textTable->SetRowsAndColumns(1, columnCount + 1); + for (vint i = 0; i < columnCount; i++) + { + auto cell = new GuiCellComposition; + textTable->AddChild(cell); + cell->SetSite(0, i + 1, 1, 1); + cell->SetMargin(Margin(8, 0, 8, 0)); - } - else - { - last = themeTemplates->previous; + subItems[i] = GuiSolidLabelElement::Create(); + subItems[i]->SetAlignments(Alignment::Left, Alignment::Center); + subItems[i]->SetFont(text->GetFont()); + subItems[i]->SetEllipse(true); + subItems[i]->SetText(view->GetSubItem(itemIndex, i)); + subItems[i]->SetColor(listView->TypedControlTemplateObject(true)->GetSecondaryTextColor()); + cell->SetOwnedElement(Ptr(subItems[i])); + } + OnColumnChanged(); + } } - templates.Remove(name); - return themeTemplates; + FontChanged.AttachMethod(this, &DetailListViewItemTemplate::OnFontChanged); + + FontChanged.Execute(compositions::GuiEventArgs(this)); } - TemplateProperty CreateStyle(ThemeName themeName)override + void DetailListViewItemTemplate::OnColumnChanged() { - switch (themeName) + if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) { -#define GUI_DEFINE_ITEM_PROPERTY(TEMPLATE, CONTROL) \ - case ThemeName::CONTROL:\ - {\ - auto current = last;\ - while (current) \ - {\ - if (current->CONTROL)\ - {\ - return current->CONTROL; \ - }\ - current = current->previous;\ - }\ - throw Exception(L"Control template for \"" L ## #CONTROL L"\" is not defined.");\ - }\ - - GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_ITEM_PROPERTY) -#undef GUI_DEFINE_ITEM_PROPERTY - default: - CHECK_FAIL(L"vl::presentation::theme::ITheme::CreateStyle(ThemeName)#Unknown theme name."); + if (columnItemView) + { + vint columnCount = view->GetColumnCount(); + if (columnCount>textTable->GetColumns()) + { + columnCount = textTable->GetColumns(); + } + for (vint i = 0; iSetColumnOption(i, GuiCellOption::AbsoluteOption(columnItemView->GetColumnSize(i))); + } + textTable->UpdateCellBounds(); + } } } - }; - - controls::GuiControlHost* ThemeTemplates::GetControlHostForInstance() - { - return nullptr; - } - - ThemeTemplates::~ThemeTemplates() - { - FinalizeAggregation(); - } - - Theme* currentTheme = nullptr; - - ITheme* GetCurrentTheme() - { - return currentTheme; - } - - void InitializeTheme() - { - CHECK_ERROR(currentTheme == nullptr, L"vl::presentation::theme::InitializeTheme()#Theme has already been initialized"); - currentTheme = new Theme; - } - void FinalizeTheme() - { - CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::FinalizeTheme()#Theme has not been initialized"); - delete currentTheme; - currentTheme = nullptr; - } + void DetailListViewItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + text->SetFont(GetFont()); + if (auto view = dynamic_cast(listControl->GetItemProvider()->RequestView(IListViewItemView::Identifier))) + { + vint columnCount = view->GetColumnCount() - 1; + for (vint i = 0; i < columnCount; i++) + { + subItems[i]->SetFont(GetFont()); + } + } + } - bool RegisterTheme(Ptr theme) - { - CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme has already been initialized"); - return currentTheme->RegisterTheme(theme->Name, theme); - } + DetailListViewItemTemplate::DetailListViewItemTemplate() + { + } - Ptr UnregisterTheme(const WString& name) - { - CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::UnregisterTheme(const WString&)#Theme has already been initialized"); - return currentTheme->UnregisterTheme(name); + DetailListViewItemTemplate::~DetailListViewItemTemplate() + { + } } } } } /*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\GUIDOCUMENTVIEWER.CPP +.\CONTROLS\LISTCONTROLPACKAGE\GUITEXTLISTCONTROLS.CPP ***********************************************************************/ namespace vl @@ -15096,3376 +15091,2817 @@ namespace vl using namespace collections; using namespace elements; using namespace compositions; + using namespace reflection::description; + + namespace list + { + const wchar_t* const ITextItemView::Identifier = L"vl::presentation::controls::list::ITextItemView"; /*********************************************************************** -GuiDocumentItem +DefaultTextListItemTemplate ***********************************************************************/ - GuiDocumentItem::GuiDocumentItem(const WString& _name) - :name(_name) - { - container = new GuiBoundsComposition; - container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - container->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Arrow)); - } - - GuiDocumentItem::~GuiDocumentItem() - { - if (!owned) + TemplateProperty DefaultTextListItemTemplate::CreateBulletStyle() { - SafeDeleteComposition(container); + return {}; } - } - compositions::GuiGraphicsComposition* GuiDocumentItem::GetContainer() - { - return container; - } + void DefaultTextListItemTemplate::OnInitialize() + { + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - WString GuiDocumentItem::GetName() - { - return name; - } + textElement = GuiSolidLabelElement::Create(); + textElement->SetAlignments(Alignment::Left, Alignment::Center); -/*********************************************************************** -GuiDocumentCommonInterface -***********************************************************************/ - - void GuiDocumentCommonInterface::InvokeUndoRedoChanged() - { - UndoRedoChanged.Execute(documentControl->GetNotifyEventArguments()); - } + GuiBoundsComposition* textComposition = new GuiBoundsComposition; + textComposition->SetOwnedElement(Ptr(textElement)); + textComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); - void GuiDocumentCommonInterface::InvokeModifiedChanged() - { - ModifiedChanged.Execute(documentControl->GetNotifyEventArguments()); - } + if (auto bulletStyleController = CreateBulletStyle()) + { + bulletButton = new GuiSelectableButton(theme::ThemeName::Unknown); + bulletButton->SetAutoFocus(false); + bulletButton->SetControlTemplate(bulletStyleController); + bulletButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + bulletButton->SelectedChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnBulletSelectedChanged); - void GuiDocumentCommonInterface::UpdateCaretPoint() - { - GuiGraphicsHost* host=documentComposition->GetRelatedGraphicsHost(); - if(host) - { - Rect caret=documentElement->GetCaretBounds(documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide()); - Point view=GetDocumentViewPosition(); - vint x=caret.x1-view.x; - vint y=caret.y2-view.y; - host->SetCaretPoint(Point(x, y), documentComposition); + GuiTableComposition* table = new GuiTableComposition; + AddChild(table); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + table->SetRowsAndColumns(1, 2); + table->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetColumnOption(1, GuiCellOption::PercentageOption(1.0)); + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 0, 1, 1); + cell->AddChild(bulletButton->GetBoundsComposition()); + } + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 1, 1); + cell->AddChild(textComposition); + textComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + } + } + else + { + AddChild(textComposition); + textComposition->SetAlignmentToParent(Margin(5, 2, 0, 2)); + } + + FontChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnFontChanged); + TextChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnTextChanged); + TextColorChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnTextColorChanged); + CheckedChanged.AttachMethod(this, &DefaultTextListItemTemplate::OnCheckedChanged); + + FontChanged.Execute(compositions::GuiEventArgs(this)); + TextChanged.Execute(compositions::GuiEventArgs(this)); + TextColorChanged.Execute(compositions::GuiEventArgs(this)); + CheckedChanged.Execute(compositions::GuiEventArgs(this)); } - } - void GuiDocumentCommonInterface::EnsureDocumentRectVisible(Rect bounds) - { - if (bounds != Rect()) + void DefaultTextListItemTemplate::OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - bounds.x1 -= 15; - bounds.y1 -= 15; - bounds.x2 += 15; - bounds.y2 += 15; - EnsureRectVisible(bounds); + textElement->SetFont(GetFont()); } - } - - void GuiDocumentCommonInterface::Move(TextPos caret, bool shift, bool frontSide) - { - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); - - TextPos newBegin=shift?begin:caret; - TextPos newEnd=caret; - documentElement->SetCaret(newBegin, newEnd, frontSide); - documentElement->SetCaretVisible(true); - EnsureDocumentRectVisible(documentElement->GetCaretBounds(newEnd, frontSide)); - UpdateCaretPoint(); - SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); - } - bool GuiDocumentCommonInterface::ProcessKey(VKEY code, bool shift, bool ctrl) - { - if(IGuiShortcutKeyItem* item=internalShortcutKeyManager->TryGetShortcut(ctrl, shift, false, code)) + void DefaultTextListItemTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiEventArgs arguments(documentControl->GetBoundsComposition()); - item->Executed.Execute(arguments); - return true; + textElement->SetText(GetText()); } - TextPos currentCaret=documentElement->GetCaretEnd(); - bool frontSide=documentElement->IsCaretEndPreferFrontSide(); - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); + void DefaultTextListItemTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + textElement->SetColor(GetTextColor()); + } - switch(code) + void DefaultTextListItemTemplate::OnCheckedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - case VKEY::KEY_UP: - { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveUp, frontSide); - Move(newCaret, shift, frontSide); - } - break; - case VKEY::KEY_DOWN: - { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveDown, frontSide); - Move(newCaret, shift, frontSide); - } - break; - case VKEY::KEY_LEFT: - { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveLeft, frontSide); - Move(newCaret, shift, frontSide); - } - break; - case VKEY::KEY_RIGHT: - { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveRight, frontSide); - Move(newCaret, shift, frontSide); - } - break; - case VKEY::KEY_HOME: + if (bulletButton) { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLineFirst, frontSide); - if(newCaret==currentCaret) - { - newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretFirst, frontSide); - } - Move(newCaret, shift, frontSide); + supressEdit = true; + bulletButton->SetSelected(GetChecked()); + supressEdit = false; } - break; - case VKEY::KEY_END: + } + + void DefaultTextListItemTemplate::OnBulletSelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if (!supressEdit) { - TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLineLast, frontSide); - if(newCaret==currentCaret) + if (auto textItemView = dynamic_cast(listControl->GetItemProvider()->RequestView(ITextItemView::Identifier))) { - newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLast, frontSide); + BeginEditListItem(); + textItemView->SetChecked(GetIndex(), bulletButton->GetSelected()); + EndEditListItem(); } - Move(newCaret, shift, frontSide); - } - break; - case VKEY::KEY_PRIOR: - { } - break; - case VKEY::KEY_NEXT: + } + + DefaultTextListItemTemplate::DefaultTextListItemTemplate() + { + } + + DefaultTextListItemTemplate::~DefaultTextListItemTemplate() + { + } + +/*********************************************************************** +DefaultCheckTextListItemTemplate +***********************************************************************/ + + TemplateProperty DefaultCheckTextListItemTemplate::CreateBulletStyle() + { + if (auto textList = dynamic_cast(listControl)) { + auto style = textList->TypedControlTemplateObject(true)->GetCheckBulletTemplate(); + if (style) return style; } - break; - case VKEY::KEY_BACK: - if(editMode==Editable) + return theme::GetCurrentTheme()->CreateStyle(theme::ThemeName::CheckTextListItem); + } + +/*********************************************************************** +DefaultRadioTextListItemTemplate +***********************************************************************/ + + TemplateProperty DefaultRadioTextListItemTemplate::CreateBulletStyle() + { + if (auto textList = dynamic_cast(listControl)) { - if(begin==end) - { - ProcessKey(VKEY::KEY_LEFT, true, false); - } - Array text; - EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); - return true; + auto style = textList->TypedControlTemplateObject(true)->GetRadioBulletTemplate(); + if (style) return style; } - break; - case VKEY::KEY_DELETE: - if(editMode==Editable) + return theme::GetCurrentTheme()->CreateStyle(theme::ThemeName::RadioTextListItem); + } + +/*********************************************************************** +TextItem +***********************************************************************/ + + TextItem::TextItem() + :owner(0) + , checked(false) + { + } + + TextItem::TextItem(const WString& _text, bool _checked) + :owner(0) + , text(_text) + , checked(_checked) + { + } + + TextItem::~TextItem() + { + } + + bool TextItem::operator==(const TextItem& value)const + { + return text == value.text; + } + + const WString& TextItem::GetText() + { + return text; + } + + void TextItem::SetText(const WString& value) + { + if (text != value) { - if(begin==end) + text = value; + if (owner) { - ProcessKey(VKEY::KEY_RIGHT, true, false); + vint index = owner->IndexOf(this); + owner->InvokeOnItemModified(index, 1, 1); } - Array text; - EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); - return true; } - break; - case VKEY::KEY_RETURN: - if(editMode==Editable) + } + + bool TextItem::GetChecked() + { + return checked; + } + + void TextItem::SetChecked(bool value) + { + if (checked != value) { - if(ctrl) - { - Array text(1); - text[0]=L"\r\n"; - EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); - } - else + checked = value; + if (owner) { - Array text(2); - EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); + vint index = owner->IndexOf(this); + owner->InvokeOnItemModified(index, 1, 1); + + GuiItemEventArgs arguments; + arguments.itemIndex = index; + owner->listControl->ItemChecked.Execute(arguments); } - return true; } - break; - default:; } - return false; - } - - void GuiDocumentCommonInterface::InstallDocumentViewer( - GuiControl* _sender, - compositions::GuiGraphicsComposition* _mouseArea, - compositions::GuiGraphicsComposition* _container, - compositions::GuiGraphicsComposition* eventComposition, - compositions::GuiGraphicsComposition* focusableComposition - ) - { - documentControl = _sender; - documentElement = GuiDocumentElement::Create(); - documentElement->SetCallback(this); +/*********************************************************************** +TextItemProvider +***********************************************************************/ - documentComposition = new GuiBoundsComposition; - documentComposition->SetOwnedElement(documentElement); - documentComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); - documentComposition->SetAlignmentToParent(Margin(5, 5, 5, 5)); - _container->AddChild(documentComposition); - ReplaceMouseArea(_mouseArea); + void TextItemProvider::AfterInsert(vint item, const Ptr& value) + { + ListProvider>::AfterInsert(item, value); + value->owner = this; + } - focusableComposition->GetEventReceiver()->caretNotify.AttachMethod(this, &GuiDocumentCommonInterface::OnCaretNotify); - focusableComposition->GetEventReceiver()->gotFocus.AttachMethod(this, &GuiDocumentCommonInterface::OnGotFocus); - focusableComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiDocumentCommonInterface::OnLostFocus); - focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiDocumentCommonInterface::OnKeyDown); - focusableComposition->GetEventReceiver()->charInput.AttachMethod(this, &GuiDocumentCommonInterface::OnCharInput); + void TextItemProvider::BeforeRemove(vint item, const Ptr& value) + { + value->owner = 0; + ListProvider>::BeforeRemove(item, value); + } - undoRedoProcessor->Setup(documentElement, documentComposition); - ActiveHyperlinkChanged.SetAssociatedComposition(eventComposition); - ActiveHyperlinkExecuted.SetAssociatedComposition(eventComposition); - SelectionChanged.SetAssociatedComposition(eventComposition); - UndoRedoChanged.SetAssociatedComposition(eventComposition); - ModifiedChanged.SetAssociatedComposition(eventComposition); + WString TextItemProvider::GetTextValue(vint itemIndex) + { + return Get(itemIndex)->GetText(); + } - undoRedoProcessor->UndoRedoChanged.Add(this, &GuiDocumentCommonInterface::InvokeUndoRedoChanged); - undoRedoProcessor->ModifiedChanged.Add(this, &GuiDocumentCommonInterface::InvokeModifiedChanged); - SetDocument(new DocumentModel); - } + description::Value TextItemProvider::GetBindingValue(vint itemIndex) + { + return Value::From(Get(itemIndex)); + } - void GuiDocumentCommonInterface::ReplaceMouseArea(compositions::GuiGraphicsComposition* _mouseArea) - { - if (documentMouseArea) + bool TextItemProvider::GetChecked(vint itemIndex) { - documentMouseArea->GetEventReceiver()->mouseMove.Detach(onMouseMoveHandler); - documentMouseArea->GetEventReceiver()->leftButtonDown.Detach(onMouseDownHandler); - documentMouseArea->GetEventReceiver()->leftButtonUp.Detach(onMouseUpHandler); - documentMouseArea->GetEventReceiver()->mouseLeave.Detach(onMouseLeaveHandler); + return Get(itemIndex)->GetChecked(); + } - onMouseMoveHandler = nullptr; - onMouseDownHandler = nullptr; - onMouseUpHandler = nullptr; - onMouseLeaveHandler = nullptr; + void TextItemProvider::SetChecked(vint itemIndex, bool value) + { + return Get(itemIndex)->SetChecked(value); } - documentMouseArea = _mouseArea; - if (documentMouseArea) + + TextItemProvider::TextItemProvider() + :listControl(0) { - onMouseMoveHandler = documentMouseArea->GetEventReceiver()->mouseMove.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseMove); - onMouseDownHandler = documentMouseArea->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseDown); - onMouseUpHandler = documentMouseArea->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseUp); - onMouseLeaveHandler = documentMouseArea->GetEventReceiver()->mouseLeave.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseLeave); } - } - void GuiDocumentCommonInterface::SetActiveHyperlink(Ptr package) - { - ActivateActiveHyperlink(false); - activeHyperlinks = - !package ? nullptr : - package->hyperlinks.Count() == 0 ? nullptr : - package; - ActivateActiveHyperlink(true); - ActiveHyperlinkChanged.Execute(documentControl->GetNotifyEventArguments()); - } + TextItemProvider::~TextItemProvider() + { + } - void GuiDocumentCommonInterface::ActivateActiveHyperlink(bool activate) - { - if (activeHyperlinks) + IDescriptable* TextItemProvider::RequestView(const WString& identifier) { - for (auto run : activeHyperlinks->hyperlinks) + if (identifier == ITextItemView::Identifier) { - run->styleName = activate ? run->activeStyleName : run->normalStyleName; + return (ITextItemView*)this; + } + else + { + return nullptr; } - documentElement->NotifyParagraphUpdated(activeHyperlinks->row, 1, 1, false); } } - void GuiDocumentCommonInterface::AddShortcutCommand(VKEY key, const Func& eventHandler) +/*********************************************************************** +GuiTextList +***********************************************************************/ + + void GuiVirtualTextList::BeforeControlTemplateUninstalled_() { - IGuiShortcutKeyItem* item=internalShortcutKeyManager->CreateShortcut(true, false, false, key); - item->Executed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) - { - eventHandler(); - }); } - void GuiDocumentCommonInterface::EditTextInternal(TextPos begin, TextPos end, const Func& editor) + void GuiVirtualTextList::AfterControlTemplateInstalled_(bool initialize) { - // save run before editing - if(begin>end) - { - TextPos temp=begin; - begin=end; - end=temp; - } - Ptr originalModel=documentElement->GetDocument()->CopyDocument(begin, end, true); - if(originalModel) - { - // edit - vint paragraphCount=0; - vint lastParagraphLength=0; - editor(begin, end, paragraphCount, lastParagraphLength); + } - // calculate new caret - TextPos caret; - if(paragraphCount==0) - { - caret=begin; - } - else if(paragraphCount==1) - { - caret=TextPos(begin.row, begin.column+lastParagraphLength); - } - else + void GuiVirtualTextList::OnStyleInstalled(vint itemIndex, ItemStyle* style) + { + GuiSelectableListControl::OnStyleInstalled(itemIndex, style); + if (auto textItemStyle = dynamic_cast(style)) + { + textItemStyle->SetTextColor(TypedControlTemplateObject(true)->GetTextColor()); + if (auto textItemView = dynamic_cast(itemProvider->RequestView(list::ITextItemView::Identifier))) { - caret=TextPos(begin.row+paragraphCount-1, lastParagraphLength); + textItemStyle->SetChecked(textItemView->GetChecked(itemIndex)); } - documentElement->SetCaret(caret, caret, true); - EnsureDocumentRectVisible(documentElement->GetCaretBounds(caret, true)); - documentControl->TextChanged.Execute(documentControl->GetNotifyEventArguments()); - UpdateCaretPoint(); - SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); - - // save run after editing - Ptr inputModel=documentElement->GetDocument()->CopyDocument(begin, caret, true); - - // submit redo-undo - GuiDocumentUndoRedoProcessor::ReplaceModelStruct arguments; - arguments.originalStart=begin; - arguments.originalEnd=end; - arguments.originalModel=originalModel; - arguments.inputStart=begin; - arguments.inputEnd=caret; - arguments.inputModel=inputModel; - undoRedoProcessor->OnReplaceModel(arguments); } } - void GuiDocumentCommonInterface::EditStyleInternal(TextPos begin, TextPos end, const Func& editor) + void GuiVirtualTextList::OnItemTemplateChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - // save run before editing - if(begin>end) - { - TextPos temp=begin; - begin=end; - end=temp; - } - Ptr originalModel=documentElement->GetDocument()->CopyDocument(begin, end, true); - if(originalModel) - { - // edit - editor(begin, end); + view = TextListView::Unknown; + } - // save run after editing - Ptr inputModel=documentElement->GetDocument()->CopyDocument(begin, end, true); + GuiVirtualTextList::GuiVirtualTextList(theme::ThemeName themeName, GuiListControl::IItemProvider* _itemProvider) + :GuiSelectableListControl(themeName, _itemProvider) + { + ItemTemplateChanged.AttachMethod(this, &GuiVirtualTextList::OnItemTemplateChanged); + ItemChecked.SetAssociatedComposition(boundsComposition); - // submit redo-undo - GuiDocumentUndoRedoProcessor::ReplaceModelStruct arguments; - arguments.originalStart=begin; - arguments.originalEnd=end; - arguments.originalModel=originalModel; - arguments.inputStart=begin; - arguments.inputEnd=end; - arguments.inputModel=inputModel; - undoRedoProcessor->OnReplaceModel(arguments); - } + SetView(TextListView::Text); } - void GuiDocumentCommonInterface::MergeBaselineAndDefaultFont(Ptr document) + GuiVirtualTextList::~GuiVirtualTextList() { - document->MergeDefaultFont(documentControl->GetDisplayFont()); - if (baselineDocument) - { - document->MergeBaselineStyles(baselineDocument); - } } - void GuiDocumentCommonInterface::OnFontChanged() + TextListView GuiVirtualTextList::GetView() { - auto document = documentElement->GetDocument(); - MergeBaselineAndDefaultFont(document); - documentElement->SetDocument(document); + return view; } - void GuiDocumentCommonInterface::OnCaretNotify(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiVirtualTextList::SetView(TextListView _view) { - if(documentControl->GetVisuallyEnabled()) + switch (_view) { - if(editMode!=ViewOnly) - { - documentElement->SetCaretVisible(!documentElement->GetCaretVisible()); - } + case TextListView::Text: + SetStyleAndArranger( + [](const Value&) { return new list::DefaultTextListItemTemplate; }, + Ptr(new list::FixedHeightItemArranger) + ); + break; + case TextListView::Check: + SetStyleAndArranger( + [](const Value&) { return new list::DefaultCheckTextListItemTemplate; }, + Ptr(new list::FixedHeightItemArranger) + ); + break; + case TextListView::Radio: + SetStyleAndArranger( + [](const Value&) { return new list::DefaultRadioTextListItemTemplate; }, + Ptr(new list::FixedHeightItemArranger) + ); + break; + default:; } + view = _view; } - void GuiDocumentCommonInterface::OnGotFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) +/*********************************************************************** +GuiTextList +***********************************************************************/ + + GuiTextList::GuiTextList(theme::ThemeName themeName) + :GuiVirtualTextList(themeName, new list::TextItemProvider) { - if(documentControl->GetVisuallyEnabled()) - { - if(editMode!=ViewOnly) - { - documentElement->SetCaretVisible(true); - UpdateCaretPoint(); - } - } + items=dynamic_cast(itemProvider.Obj()); + items->listControl=this; } - void GuiDocumentCommonInterface::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiTextList::~GuiTextList() { - if(documentControl->GetVisuallyEnabled()) - { - documentElement->SetCaretVisible(false); - } } - void GuiDocumentCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + list::TextItemProvider& GuiTextList::GetItems() { - if(documentControl->GetVisuallyEnabled()) - { - if(editMode!=ViewOnly) - { - if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl)) - { - arguments.handled=true; - } - } - } + return *items; } - void GuiDocumentCommonInterface::OnCharInput(compositions::GuiGraphicsComposition* sender, compositions::GuiCharEventArgs& arguments) + Ptr GuiTextList::GetSelectedItem() { - if (documentControl->GetVisuallyEnabled()) - { - if (editMode == Editable && - arguments.code != (wchar_t)VKEY::KEY_ESCAPE && - arguments.code != (wchar_t)VKEY::KEY_BACK && - arguments.code != (wchar_t)VKEY::KEY_RETURN && - (arguments.code != (wchar_t)VKEY::KEY_TAB || documentControl->GetAcceptTabInput()) && - !arguments.ctrl) - { - Array text(1); - text[0] = WString::FromChar(arguments.code); - EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); - } - } + vint index = GetSelectedItemIndex(); + if (index == -1) return 0; + return items->Get(index); } + } + } +} - void GuiDocumentCommonInterface::UpdateCursor(INativeCursor* cursor) +/*********************************************************************** +.\CONTROLS\LISTCONTROLPACKAGE\GUITREEVIEWCONTROLS.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace compositions; + using namespace reflection::description; + + namespace tree { - if (documentMouseArea) + const wchar_t* const INodeItemView::Identifier = L"vl::presentation::controls::tree::INodeItemView"; + +/*********************************************************************** +NodeItemProvider +***********************************************************************/ + + Ptr NodeItemProvider::GetNodeByOffset(Ptr provider, vint offset) { - documentMouseArea->SetAssociatedCursor(cursor); + if (offset == 0) return provider; + Ptr result; + if (provider->GetExpanding() && offset > 0) + { + offset -= 1; + vint count = provider->GetChildCount(); + for (vint i = 0; (!result && i < count); i++) + { + auto child = provider->GetChild(i); + vint visibleCount = child->CalculateTotalVisibleNodes(); + if (offset < visibleCount) + { + result = GetNodeByOffset(child, offset); + } + else + { + offset -= visibleCount; + } + } + } + return result; } - } - Point GuiDocumentCommonInterface::GetMouseOffset() - { - if (documentMouseArea) + void NodeItemProvider::OnAttached(INodeRootProvider* provider) { - auto documentBounds = documentComposition->GetGlobalBounds(); - auto mouseAreaBounds = documentMouseArea->GetGlobalBounds(); - return Point( - documentBounds.x1 - mouseAreaBounds.x1, - documentBounds.y1 - mouseAreaBounds.y1 - ); } - else + + void NodeItemProvider::OnBeforeItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) { - return Point(0, 0); + vint offset = 0; + vint base = CalculateNodeVisibilityIndexInternal(parentNode); + if (base != -2 && parentNode->GetExpanding()) + { + for (vint i = 0; i < count; i++) + { + auto child = parentNode->GetChild(start + i); + offset += child->CalculateTotalVisibleNodes(); + } + } + offsetBeforeChildModifieds.Set(parentNode, offset); } - } - void GuiDocumentCommonInterface::OnMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - auto offset = GetMouseOffset(); - auto x = arguments.x - offset.x; - auto y = arguments.y - offset.y; - - if(documentControl->GetVisuallyEnabled()) + void NodeItemProvider::OnAfterItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) { - switch(editMode) + vint offsetBeforeChildModified = 0; { - case ViewOnly: + vint index = offsetBeforeChildModifieds.Keys().IndexOf(parentNode); + if (index != -1) { - auto package = documentElement->GetHyperlinkFromPoint({ x, y }); - bool handCursor = false; + offsetBeforeChildModified = offsetBeforeChildModifieds.Values().Get(index); + offsetBeforeChildModifieds.Remove(parentNode); + } + } - if(dragging) + vint base = CalculateNodeVisibilityIndexInternal(parentNode); + if (base != -2 && parentNode->GetExpanding()) + { + vint offset = 0; + vint firstChildStart = -1; + for (vint i = 0; i < newCount; i++) + { + auto child = parentNode->GetChild(start + i); + if (i == 0) { - if(activeHyperlinks) - { - if (package && CompareEnumerable(activeHyperlinks->hyperlinks, package->hyperlinks) == 0) - { - ActivateActiveHyperlink(true); - handCursor = true; - } - else - { - ActivateActiveHyperlink(false); - } - } + firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); } - else + offset += child->CalculateTotalVisibleNodes(); + } + + if (firstChildStart == -1) + { + vint childCount = parentNode->GetChildCount(); + if (childCount == 0) { - SetActiveHyperlink(package); - handCursor = activeHyperlinks; + firstChildStart = base + 1; } - - if(handCursor) + else if (start < childCount) { - auto cursor = GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Hand); - UpdateCursor(cursor); + auto child = parentNode->GetChild(start); + firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); } else { - UpdateCursor(nullptr); + auto child = parentNode->GetChild(start - 1); + firstChildStart = CalculateNodeVisibilityIndexInternal(child.Obj()); + firstChildStart += child->CalculateTotalVisibleNodes(); } } - break; - case Selectable: - case Editable: - if(dragging) - { - TextPos caret=documentElement->CalculateCaretFromPoint(Point(x, y)); - TextPos oldCaret=documentElement->GetCaretBegin(); - Move(caret, true, (oldCaret==caret?documentElement->IsCaretEndPreferFrontSide():caretGetVisuallyEnabled()) + void NodeItemProvider::OnItemExpanded(INodeProvider* node) { - switch(editMode) + vint base = CalculateNodeVisibilityIndexInternal(node); + if (base != -2) { - case ViewOnly: - SetActiveHyperlink(documentElement->GetHyperlinkFromPoint({ x, y })); - break; - case Selectable: - case Editable: - { - documentControl->SetFocus(); - TextPos caret=documentElement->CalculateCaretFromPoint(Point(x, y)); - TextPos oldCaret=documentElement->GetCaretEnd(); - if(caret!=oldCaret) - { - Move(caret, arguments.shift, caretCalculateTotalVisibleNodes(); + InvokeOnItemModified(base + 1, 0, visibility - 1); } - dragging=true; } - } - - void GuiDocumentCommonInterface::OnMouseUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - auto offset = GetMouseOffset(); - auto x = arguments.x - offset.x; - auto y = arguments.y - offset.y; - if(documentControl->GetVisuallyEnabled()) + void NodeItemProvider::OnItemCollapsed(INodeProvider* node) { - dragging=false; - switch(editMode) + vint base = CalculateNodeVisibilityIndexInternal(node); + if (base != -2) { - case ViewOnly: + vint visibility = 0; + vint count = node->GetChildCount(); + for (vint i = 0; i < count; i++) { - auto package = documentElement->GetHyperlinkFromPoint({ x, y }); - if(activeHyperlinks) - { - if (package && CompareEnumerable(activeHyperlinks->hyperlinks, package->hyperlinks) == 0) - { - ActiveHyperlinkExecuted.Execute(documentControl->GetNotifyEventArguments()); - } - else - { - SetActiveHyperlink(nullptr); - } - } + auto child = node->GetChild(i); + visibility += child->CalculateTotalVisibleNodes(); } - break; - default:; + InvokeOnItemModified(base + 1, visibility, 0); } } - } - - void GuiDocumentCommonInterface::OnMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - SetActiveHyperlink(nullptr); - } - Point GuiDocumentCommonInterface::GetDocumentViewPosition() - { - return Point(0, 0); - } + vint NodeItemProvider::CalculateNodeVisibilityIndexInternal(INodeProvider* node) + { + auto parent = node->GetParent(); + if (!parent) + { + return -1; + } + if (!parent->GetExpanding()) + { + return -2; + } - void GuiDocumentCommonInterface::EnsureRectVisible(Rect bounds) - { - } + vint index = CalculateNodeVisibilityIndexInternal(parent.Obj()); + if (index == -2) + { + return -2; + } - //================ callback + vint count = parent->GetChildCount(); + for (vint i = 0; i < count; i++) + { + auto child = parent->GetChild(i); + bool findResult = child == node; + if (findResult) + { + index++; + } + else + { + index += child->CalculateTotalVisibleNodes(); + } + if (findResult) + { + return index; + } + } + return -1; + } - void GuiDocumentCommonInterface::OnStartRender() - { - for (auto item : documentItems.Values()) + vint NodeItemProvider::CalculateNodeVisibilityIndex(INodeProvider* node) { - item->visible = false; + vint result = CalculateNodeVisibilityIndexInternal(node); + return result < 0 ? -1 : result; } - } - void GuiDocumentCommonInterface::OnFinishRender() - { - for (auto item : documentItems.Values()) + Ptr NodeItemProvider::RequestNode(vint index) { - if (item->container->GetVisible() != item->visible) + if(root->CanGetNodeByVisibleIndex()) { - item->container->SetVisible(item->visible); + return root->GetNodeByVisibleIndex(index+1); + } + else + { + return GetNodeByOffset(root->GetRootNode(), index+1); } } - } - Size GuiDocumentCommonInterface::OnRenderEmbeddedObject(const WString& name, const Rect& location) - { - vint index = documentItems.Keys().IndexOf(name); - if (index != -1) + NodeItemProvider::NodeItemProvider(Ptr _root) + :root(_root) { - auto item = documentItems.Values()[index]; - auto size = item->container->GetBounds().GetSize(); - item->container->SetBounds(Rect(location.LeftTop(), Size(0, 0))); - item->visible = true; - return size; + root->AttachCallback(this); } - return Size(); - } - //================ basic + NodeItemProvider::~NodeItemProvider() + { + root->DetachCallback(this); + } - GuiDocumentCommonInterface::GuiDocumentCommonInterface() - { - undoRedoProcessor=new GuiDocumentUndoRedoProcessor; + Ptr NodeItemProvider::GetRoot() + { + return root; + } - internalShortcutKeyManager=new GuiShortcutKeyManager; - AddShortcutCommand(VKEY::KEY_Z, Func(this, &GuiDocumentCommonInterface::Undo)); - AddShortcutCommand(VKEY::KEY_Y, Func(this, &GuiDocumentCommonInterface::Redo)); - AddShortcutCommand(VKEY::KEY_A, Func(this, &GuiDocumentCommonInterface::SelectAll)); - AddShortcutCommand(VKEY::KEY_X, Func(this, &GuiDocumentCommonInterface::Cut)); - AddShortcutCommand(VKEY::KEY_C, Func(this, &GuiDocumentCommonInterface::Copy)); - AddShortcutCommand(VKEY::KEY_V, Func(this, &GuiDocumentCommonInterface::Paste)); - } - - GuiDocumentCommonInterface::~GuiDocumentCommonInterface() - { - } - - Ptr GuiDocumentCommonInterface::GetDocument() - { - return documentElement->GetDocument(); - } + vint NodeItemProvider::Count() + { + return root->GetRootNode()->CalculateTotalVisibleNodes()-1; + } - void GuiDocumentCommonInterface::SetDocument(Ptr value) - { - SetActiveHyperlink(0); - ClearUndoRedo(); - NotifyModificationSaved(); + WString NodeItemProvider::GetTextValue(vint itemIndex) + { + if (auto node = RequestNode(itemIndex)) + { + return root->GetTextValue(node.Obj()); + } + return L""; + } - if (value) + description::Value NodeItemProvider::GetBindingValue(vint itemIndex) { - if (value->paragraphs.Count() == 0) + if (auto node = RequestNode(itemIndex)) { - value->paragraphs.Add(new DocumentParagraphRun); + return root->GetBindingValue(node.Obj()); } - MergeBaselineAndDefaultFont(value); + return Value(); } - documentElement->SetDocument(value); - } + IDescriptable* NodeItemProvider::RequestView(const WString& identifier) + { + if(identifier==INodeItemView::Identifier) + { + return (INodeItemView*)this; + } + else + { + return root->RequestView(identifier); + } + } - //================ document items +/*********************************************************************** +MemoryNodeProvider::NodeCollection +***********************************************************************/ - bool GuiDocumentCommonInterface::AddDocumentItem(Ptr value) - { - if (documentItems.Keys().Contains(value->GetName())) + void MemoryNodeProvider::NodeCollection::OnBeforeChildModified(vint start, vint count, vint newCount) { - return false; + if (ownerProvider->expanding) + { + for (vint i = 0; i < count; i++) + { + offsetBeforeChildModified += items[start + i]->totalVisibleNodeCount; + } + } + INodeProviderCallback* proxy = ownerProvider->GetCallbackProxyInternal(); + if (proxy) + { + proxy->OnBeforeItemModified(ownerProvider, start, count, newCount); + } } - documentItems.Add(value->GetName(), value); - documentComposition->AddChild(value->container); - value->visible = false; - value->owned = true; - value->container->SetVisible(false); - return true; - } - bool GuiDocumentCommonInterface::RemoveDocumentItem(Ptr value) - { - vint index = documentItems.Keys().IndexOf(value->GetName()); - if (index == -1) + void MemoryNodeProvider::NodeCollection::OnAfterChildModified(vint start, vint count, vint newCount) { - return false; + ownerProvider->childCount += (newCount - count); + if (ownerProvider->expanding) + { + vint offset = 0; + for (vint i = 0; i < newCount; i++) + { + offset += items[start + i]->totalVisibleNodeCount; + } + ownerProvider->OnChildTotalVisibleNodesChanged(offset - offsetBeforeChildModified); + } + offsetBeforeChildModified = 0; + INodeProviderCallback* proxy = ownerProvider->GetCallbackProxyInternal(); + if (proxy) + { + proxy->OnAfterItemModified(ownerProvider, start, count, newCount); + } } - if (documentItems.Values()[index] != value) + + bool MemoryNodeProvider::NodeCollection::QueryInsert(vint index, Ptr const& child) { - return false; + return child->parent == 0; } - value->owned = false; - documentComposition->RemoveChild(value->container); - documentItems.Remove(value->GetName()); - return true; - } - - const GuiDocumentCommonInterface::DocumentItemMap& GuiDocumentCommonInterface::GetDocumentItems() - { - return documentItems; - } - - //================ caret operations - - TextPos GuiDocumentCommonInterface::GetCaretBegin() - { - return documentElement->GetCaretBegin(); - } - - TextPos GuiDocumentCommonInterface::GetCaretEnd() - { - return documentElement->GetCaretEnd(); - } - - void GuiDocumentCommonInterface::SetCaret(TextPos begin, TextPos end) - { - documentElement->SetCaret(begin, end, end>=begin); - UpdateCaretPoint(); - SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); - } - - TextPos GuiDocumentCommonInterface::CalculateCaretFromPoint(Point point) - { - return documentElement->CalculateCaretFromPoint(point); - } - - Rect GuiDocumentCommonInterface::GetCaretBounds(TextPos caret, bool frontSide) - { - return documentElement->GetCaretBounds(caret, frontSide); - } - - //================ editing operations - - void GuiDocumentCommonInterface::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) - { - documentElement->NotifyParagraphUpdated(index, oldCount, newCount, updatedText); - } - void GuiDocumentCommonInterface::EditRun(TextPos begin, TextPos end, Ptr model, bool copy) - { - EditTextInternal(begin, end, [=](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) + bool MemoryNodeProvider::NodeCollection::QueryRemove(vint index, Ptr const& child) { - documentElement->EditRun(begin, end, model, copy); - paragraphCount=model->paragraphs.Count(); - lastParagraphLength=paragraphCount==0?0:model->paragraphs[paragraphCount-1]->GetText(false).Length(); - }); - } + return child->parent == ownerProvider; + } - void GuiDocumentCommonInterface::EditText(TextPos begin, TextPos end, bool frontSide, const collections::Array& text) - { - EditTextInternal(begin, end, [=, &text](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) + void MemoryNodeProvider::NodeCollection::BeforeInsert(vint index, Ptr const& child) { - documentElement->EditText(begin, end, frontSide, text); - paragraphCount=text.Count(); - lastParagraphLength=paragraphCount==0?0:text[paragraphCount-1].Length(); - }); - } + OnBeforeChildModified(index, 0, 1); + child->parent = ownerProvider; + } - void GuiDocumentCommonInterface::EditStyle(TextPos begin, TextPos end, Ptr style) - { - EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + void MemoryNodeProvider::NodeCollection::BeforeRemove(vint index, Ptr const& child) { - documentElement->EditStyle(begin, end, style); - }); - } + OnBeforeChildModified(index, 1, 0); + child->parent = 0; + } - void GuiDocumentCommonInterface::EditImage(TextPos begin, TextPos end, Ptr image) - { - EditTextInternal(begin, end, [=](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) + void MemoryNodeProvider::NodeCollection::AfterInsert(vint index, Ptr const& child) { - documentElement->EditImage(begin, end, image); - paragraphCount=1; - lastParagraphLength=wcslen(DocumentImageRun::RepresentationText); - }); - } + OnAfterChildModified(index, 0, 1); + } - void GuiDocumentCommonInterface::EditHyperlink(vint paragraphIndex, vint begin, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) - { - EditStyleInternal(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), [=](TextPos begin, TextPos end) + void MemoryNodeProvider::NodeCollection::AfterRemove(vint index, vint count) { - documentElement->EditHyperlink(begin.row, begin.column, end.column, reference, normalStyleName, activeStyleName); - }); - } + OnAfterChildModified(index, count, 0); + } - void GuiDocumentCommonInterface::RemoveHyperlink(vint paragraphIndex, vint begin, vint end) - { - EditStyleInternal(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), [=](TextPos begin, TextPos end) + MemoryNodeProvider::NodeCollection::NodeCollection() + :ownerProvider(0) { - documentElement->RemoveHyperlink(begin.row, begin.column, end.column); - }); - } + } - void GuiDocumentCommonInterface::EditStyleName(TextPos begin, TextPos end, const WString& styleName) - { - EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) - { - documentElement->EditStyleName(begin, end, styleName); - }); - } +/*********************************************************************** +MemoryNodeProvider +***********************************************************************/ - void GuiDocumentCommonInterface::RemoveStyleName(TextPos begin, TextPos end) - { - EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + INodeProviderCallback* MemoryNodeProvider::GetCallbackProxyInternal() { - documentElement->RemoveStyleName(begin, end); - }); - } - - void GuiDocumentCommonInterface::RenameStyle(const WString& oldStyleName, const WString& newStyleName) - { - documentElement->RenameStyle(oldStyleName, newStyleName); + if(parent) + { + return parent->GetCallbackProxyInternal(); + } + else + { + return 0; + } + } - // submit redo-undo - GuiDocumentUndoRedoProcessor::RenameStyleStruct arguments; - arguments.oldStyleName=oldStyleName; - arguments.newStyleName=newStyleName; - undoRedoProcessor->OnRenameStyle(arguments); - } + void MemoryNodeProvider::OnChildTotalVisibleNodesChanged(vint offset) + { + totalVisibleNodeCount+=offset; + if(parent) + { + parent->OnChildTotalVisibleNodesChanged(offset); + } + } - void GuiDocumentCommonInterface::ClearStyle(TextPos begin, TextPos end) - { - EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + MemoryNodeProvider::MemoryNodeProvider(Ptr _data) + :data(_data) { - documentElement->ClearStyle(begin, end); - }); - } + children.ownerProvider=this; + } - Ptr GuiDocumentCommonInterface::SummarizeStyle(TextPos begin, TextPos end) - { - if (begin>end) + MemoryNodeProvider::~MemoryNodeProvider() { - TextPos temp = begin; - begin = end; - end = temp; } - return documentElement->SummarizeStyle(begin, end); - } - Nullable GuiDocumentCommonInterface::SummarizeStyleName(TextPos begin, TextPos end) - { - if (begin>end) + Ptr MemoryNodeProvider::GetData() { - TextPos temp = begin; - begin = end; - end = temp; + return data; } - return documentElement->SummarizeStyleName(begin, end); - } - void GuiDocumentCommonInterface::SetParagraphAlignments(TextPos begin, TextPos end, const collections::Array>& alignments) - { - vint first = begin.row; - vint last = end.row; - if (first > last) + void MemoryNodeProvider::SetData(const Ptr& value) { - vint temp = first; - first = last; - last = temp; + data=value; + NotifyDataModified(); } - Ptr document = documentElement->GetDocument(); - if (0 <= first && first < document->paragraphs.Count() && 0 <= last && last < document->paragraphs.Count() && last - first + 1 == alignments.Count()) + void MemoryNodeProvider::NotifyDataModified() { - Ptr arguments = new GuiDocumentUndoRedoProcessor::SetAlignmentStruct; - arguments->start = first; - arguments->end = last; - arguments->originalAlignments.Resize(alignments.Count()); - arguments->inputAlignments.Resize(alignments.Count()); - for (vint i = first; i <= last; i++) + if(parent) { - arguments->originalAlignments[i - first] = document->paragraphs[i]->alignment; - arguments->inputAlignments[i - first] = alignments[i - first]; + vint index=parent->children.IndexOf(this); + INodeProviderCallback* proxy=GetCallbackProxyInternal(); + if(proxy) + { + proxy->OnBeforeItemModified(parent, index, 1, 1); + proxy->OnAfterItemModified(parent, index, 1, 1); + } } - documentElement->SetParagraphAlignment(begin, end, alignments); - undoRedoProcessor->OnSetAlignment(arguments); } - } - void GuiDocumentCommonInterface::SetParagraphAlignment(TextPos begin, TextPos end, Nullable alignment) - { -#if defined VCZH_GCC && defined VCZH_64 -#define abs labs -#endif - Array> alignments(abs(begin.row - end.row) + 1); -#if defined VCZH_GCC && defined VCZH_64 -#undef abs -#endif - for (vint i = 0; i < alignments.Count(); i++) + MemoryNodeProvider::NodeCollection& MemoryNodeProvider::Children() { - alignments[i] = alignment; + return children; } - SetParagraphAlignments(begin, end, alignments); - } - Nullable GuiDocumentCommonInterface::SummarizeParagraphAlignment(TextPos begin, TextPos end) - { - if (begin>end) + bool MemoryNodeProvider::GetExpanding() { - TextPos temp = begin; - begin = end; - end = temp; + return expanding; } - return documentElement->SummarizeParagraphAlignment(begin, end); - } - //================ editing control - - WString GuiDocumentCommonInterface::GetActiveHyperlinkReference() - { - return activeHyperlinks ? activeHyperlinks->hyperlinks[0]->reference : L""; - } + void MemoryNodeProvider::SetExpanding(bool value) + { + if(expanding!=value) + { + expanding=value; + vint offset=0; + for(vint i=0;itotalVisibleNodeCount; + } - GuiDocumentCommonInterface::EditMode GuiDocumentCommonInterface::GetEditMode() - { - return editMode; - } + OnChildTotalVisibleNodesChanged(expanding?offset:-offset); + INodeProviderCallback* proxy=GetCallbackProxyInternal(); + if(proxy) + { + if(expanding) + { + proxy->OnItemExpanded(this); + } + else + { + proxy->OnItemCollapsed(this); + } + } + } + } - void GuiDocumentCommonInterface::SetEditMode(EditMode value) - { - if(activeHyperlinks) + vint MemoryNodeProvider::CalculateTotalVisibleNodes() { - SetActiveHyperlink(nullptr); + return totalVisibleNodeCount; } - editMode=value; - if(editMode==ViewOnly) + vint MemoryNodeProvider::GetChildCount() { - UpdateCursor(nullptr); + return childCount; } - else + + Ptr MemoryNodeProvider::GetParent() { - INativeCursor* cursor=GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::IBeam); - UpdateCursor(cursor); + return Ptr(parent); } - } - //================ selection operations - - void GuiDocumentCommonInterface::SelectAll() - { - vint lastIndex=documentElement->GetDocument()->paragraphs.Count()-1; - Ptr lastParagraph=documentElement->GetDocument()->paragraphs[lastIndex]; + Ptr MemoryNodeProvider::GetChild(vint index) + { + if (0 <= index && index < childCount) + { + return children[index]; + } + else + { + return nullptr; + } + } - TextPos begin(0, 0); - TextPos end(lastIndex, lastParagraph->GetText(false).Length()); - SetCaret(begin, end); - } +/*********************************************************************** +NodeRootProviderBase +***********************************************************************/ - WString GuiDocumentCommonInterface::GetSelectionText() - { - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); - if(begin>end) + void NodeRootProviderBase::OnAttached(INodeRootProvider* provider) { - TextPos temp=begin; - begin=end; - end=temp; } - Ptr model=documentElement->GetDocument()->CopyDocument(begin, end, false); - return model->GetText(true); - } - - void GuiDocumentCommonInterface::SetSelectionText(const WString& value) - { - List paragraphs; + void NodeRootProviderBase::OnBeforeItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) { - stream::StringReader reader(value); - WString paragraph; - bool empty=true; + for(vint i=0;iOnBeforeItemModified(parentNode, start, count, newCount); + } + } - while(!reader.IsEnd()) + void NodeRootProviderBase::OnAfterItemModified(INodeProvider* parentNode, vint start, vint count, vint newCount) + { + for(vint i=0;iOnAfterItemModified(parentNode, start, count, newCount); } + } - if(!empty) + void NodeRootProviderBase::OnItemExpanded(INodeProvider* node) + { + for(vint i=0;iOnItemExpanded(node); } } - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); - if(begin>end) + void NodeRootProviderBase::OnItemCollapsed(INodeProvider* node) { - TextPos temp=begin; - begin=end; - end=temp; + for(vint i=0;iOnItemCollapsed(node); + } } - Array text; - CopyFrom(text, paragraphs); - EditText(begin, end, documentElement->IsCaretEndPreferFrontSide(), text); - } + NodeRootProviderBase::NodeRootProviderBase() + { + } - Ptr GuiDocumentCommonInterface::GetSelectionModel() - { - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); - if(begin>end) + NodeRootProviderBase::~NodeRootProviderBase() { - TextPos temp=begin; - begin=end; - end=temp; } - Ptr model=documentElement->GetDocument()->CopyDocument(begin, end, true); - return model; - } + bool NodeRootProviderBase::CanGetNodeByVisibleIndex() + { + return false; + } - void GuiDocumentCommonInterface::SetSelectionModel(Ptr value) - { - TextPos begin=documentElement->GetCaretBegin(); - TextPos end=documentElement->GetCaretEnd(); - if(begin>end) + Ptr NodeRootProviderBase::GetNodeByVisibleIndex(vint index) { - TextPos temp=begin; - begin=end; - end=temp; + return nullptr; } - EditRun(begin, end, value, true); - } - - //================ clipboard operations - - bool GuiDocumentCommonInterface::CanCut() - { - return editMode==Editable && documentElement->GetCaretBegin()!=documentElement->GetCaretEnd(); - } - - bool GuiDocumentCommonInterface::CanCopy() - { - return documentElement->GetCaretBegin()!=documentElement->GetCaretEnd(); - } - - bool GuiDocumentCommonInterface::CanPaste() - { - if (editMode == Editable) - { - auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); - return reader->ContainsText() || reader->ContainsDocument() || reader->ContainsImage(); - } - return false; - } - - bool GuiDocumentCommonInterface::Cut() - { - if (!CanCut())return false; - auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); - auto model = GetSelectionModel(); - writer->SetDocument(model); - writer->Submit(); - SetSelectionText(L""); - return true; - } - - bool GuiDocumentCommonInterface::Copy() - { - if (!CanCopy()) return false; - auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); - auto model = GetSelectionModel(); - writer->SetDocument(model); - writer->Submit(); - return true; - } - - bool GuiDocumentCommonInterface::Paste() - { - if (!CanPaste()) return false; - auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); - if (reader->ContainsDocument()) + bool NodeRootProviderBase::AttachCallback(INodeProviderCallback* value) { - if (auto document = reader->GetDocument()) + if(callbacks.Contains(value)) { - SetSelectionModel(document); + return false; + } + else + { + callbacks.Add(value); + value->OnAttached(this); return true; } } - if (reader->ContainsText()) - { - SetSelectionText(reader->GetText()); - return true; - } - if (reader->ContainsImage()) + + bool NodeRootProviderBase::DetachCallback(INodeProviderCallback* value) { - if (auto image = reader->GetImage()) + vint index=callbacks.IndexOf(value); + if(index==-1) { - auto imageData = MakePtr(image, 0); - EditImage(GetCaretBegin(), GetCaretEnd(), imageData); + return false; + } + else + { + value->OnAttached(0); + callbacks.Remove(value); return true; } } - return false; - } - //================ undo redo control - - bool GuiDocumentCommonInterface::CanUndo() - { - return editMode==Editable && undoRedoProcessor->CanUndo(); - } - - bool GuiDocumentCommonInterface::CanRedo() - { - return editMode==Editable && undoRedoProcessor->CanRedo(); - } - - void GuiDocumentCommonInterface::ClearUndoRedo() - { - undoRedoProcessor->ClearUndoRedo(); - } + IDescriptable* NodeRootProviderBase::RequestView(const WString& identifier) + { + return 0; + } - bool GuiDocumentCommonInterface::GetModified() - { - return undoRedoProcessor->GetModified(); - } +/*********************************************************************** +MemoryNodeRootProvider +***********************************************************************/ - void GuiDocumentCommonInterface::NotifyModificationSaved() - { - undoRedoProcessor->NotifyModificationSaved(); - } + INodeProviderCallback* MemoryNodeRootProvider::GetCallbackProxyInternal() + { + return this; + } - bool GuiDocumentCommonInterface::Undo() - { - if(CanUndo()) + MemoryNodeRootProvider::MemoryNodeRootProvider() { - return undoRedoProcessor->Undo(); + SetExpanding(true); } - else + + MemoryNodeRootProvider::~MemoryNodeRootProvider() { - return false; } - } - bool GuiDocumentCommonInterface::Redo() - { - if(CanRedo()) + Ptr MemoryNodeRootProvider::GetRootNode() { - return undoRedoProcessor->Redo(); + return Ptr(this); } - else + + MemoryNodeProvider* MemoryNodeRootProvider::GetMemoryNode(INodeProvider* node) { - return false; + return dynamic_cast(node); } } /*********************************************************************** -GuiDocumentViewer +GuiVirtualTreeListControl ***********************************************************************/ - void GuiDocumentViewer::BeforeControlTemplateUninstalled_() - { - ReplaceMouseArea(nullptr); - } - - void GuiDocumentViewer::AfterControlTemplateInstalled_(bool initialize) + void GuiVirtualTreeListControl::BeforeControlTemplateUninstalled_() { - auto ct = TypedControlTemplateObject(true); - baselineDocument = ct->GetBaselineDocument(); - if (documentElement) - { - documentElement->SetCaretColor(ct->GetCaretColor()); - SetDocument(GetDocument()); - } - ReplaceMouseArea(containerComposition->GetParent()); } - void GuiDocumentViewer::UpdateDisplayFont() + void GuiVirtualTreeListControl::AfterControlTemplateInstalled_(bool initialize) { - GuiScrollContainer::UpdateDisplayFont(); - OnFontChanged(); } - Point GuiDocumentViewer::GetDocumentViewPosition() + void GuiVirtualTreeListControl::OnAttached(tree::INodeRootProvider* provider) { - return GetViewBounds().LeftTop(); } - void GuiDocumentViewer::EnsureRectVisible(Rect bounds) + void GuiVirtualTreeListControl::OnBeforeItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) { - Rect viewBounds=GetViewBounds(); - vint offset=0; - if(bounds.y1viewBounds.y2) - { - offset=bounds.y2-viewBounds.y2; - } - - if (auto scroll = GetVerticalScroll()) - { - scroll->SetPosition(viewBounds.y1 + offset); - } } - GuiDocumentViewer::GuiDocumentViewer(theme::ThemeName themeName) - :GuiScrollContainer(themeName) + void GuiVirtualTreeListControl::OnAfterItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) { - SetAcceptTabInput(true); - SetFocusableComposition(boundsComposition); - InstallDocumentViewer(this, containerComposition->GetParent(), containerComposition, boundsComposition, focusableComposition); - - SetExtendToFullWidth(true); - SetHorizontalAlwaysVisible(false); } - GuiDocumentViewer::~GuiDocumentViewer() + void GuiVirtualTreeListControl::OnItemExpanded(tree::INodeProvider* node) { + GuiNodeEventArgs arguments; + (GuiEventArgs&)arguments=GetNotifyEventArguments(); + arguments.node=node; + NodeExpanded.Execute(arguments); } - const WString& GuiDocumentViewer::GetText() + void GuiVirtualTreeListControl::OnItemCollapsed(tree::INodeProvider* node) { - text=documentElement->GetDocument()->GetText(true); - return text; + GuiNodeEventArgs arguments; + (GuiEventArgs&)arguments=GetNotifyEventArguments(); + arguments.node=node; + NodeCollapsed.Execute(arguments); } - void GuiDocumentViewer::SetText(const WString& value) + vint GuiVirtualTreeListControl::FindItemByVirtualKeyDirection(vint index, compositions::KeyDirection keyDirection) { - SelectAll(); - SetSelectionText(value); - } + vint newIndex = GuiSelectableListControl::FindItemByVirtualKeyDirection(index, keyDirection); + if (newIndex != -1) return newIndex; -/*********************************************************************** -GuiDocumentLabel -***********************************************************************/ + auto selectedNode = nodeItemView->RequestNode(index); + if (selectedNode) + { + bool hasChildren = selectedNode->GetChildCount() > 0; + bool expanding = selectedNode->GetExpanding(); + switch (keyDirection) + { + case KeyDirection::Right: + if (hasChildren) + { + if (expanding) + { + selectedNode = selectedNode->GetChild(0); + } + else + { + selectedNode->SetExpanding(true); + } + } + break; + case KeyDirection::Left: + { + selectedNode->SetExpanding(false); + if (!expanding || !hasChildren) + { + selectedNode = selectedNode->GetParent(); + } + } + break; + default:; + } + } - void GuiDocumentLabel::BeforeControlTemplateUninstalled_() - { + return selectedNode ? nodeItemView->CalculateNodeVisibilityIndex(selectedNode.Obj()) : -1; } - void GuiDocumentLabel::AfterControlTemplateInstalled_(bool initialize) + void GuiVirtualTreeListControl::OnItemMouseEvent(compositions::GuiNodeMouseEvent& nodeEvent, compositions::GuiGraphicsComposition* sender, compositions::GuiItemMouseEventArgs& arguments) { - auto ct = TypedControlTemplateObject(true); - baselineDocument = ct->GetBaselineDocument(); - if (documentElement) + auto node = GetNodeItemView()->RequestNode(arguments.itemIndex); + if (node) { - documentElement->SetCaretColor(ct->GetCaretColor()); - SetDocument(GetDocument()); + GuiNodeMouseEventArgs redirectArguments; + (GuiMouseEventArgs&)redirectArguments = arguments; + redirectArguments.node = node.Obj(); + nodeEvent.Execute(redirectArguments); + (GuiMouseEventArgs&)arguments = redirectArguments; } } - void GuiDocumentLabel::UpdateDisplayFont() + void GuiVirtualTreeListControl::OnItemNotifyEvent(compositions::GuiNodeNotifyEvent& nodeEvent, compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) { - GuiControl::UpdateDisplayFont(); - OnFontChanged(); + if (auto node = GetNodeItemView()->RequestNode(arguments.itemIndex)) + { + GuiNodeEventArgs redirectArguments; + (GuiEventArgs&)redirectArguments = arguments; + redirectArguments.node = node.Obj(); + nodeEvent.Execute(redirectArguments); + (GuiEventArgs&)arguments = redirectArguments; + } } - GuiDocumentLabel::GuiDocumentLabel(theme::ThemeName themeName) - :GuiControl(themeName) - { - SetAcceptTabInput(true); - SetFocusableComposition(boundsComposition); - InstallDocumentViewer(this, containerComposition, containerComposition, boundsComposition, focusableComposition); - } +#define ATTACH_ITEM_MOUSE_EVENT(NODEEVENTNAME, ITEMEVENTNAME)\ + {\ + ITEMEVENTNAME.AttachFunction([this](GuiGraphicsComposition* sender, GuiItemMouseEventArgs& args){ OnItemMouseEvent(NODEEVENTNAME, sender, args); });\ + }\ - GuiDocumentLabel::~GuiDocumentLabel() - { - } +#define ATTACH_ITEM_NOTIFY_EVENT(NODEEVENTNAME, ITEMEVENTNAME)\ + {\ + ITEMEVENTNAME.AttachFunction([this](GuiGraphicsComposition* sender, GuiItemEventArgs& args){ OnItemNotifyEvent(NODEEVENTNAME, sender, args); });\ + }\ - const WString& GuiDocumentLabel::GetText() + void GuiVirtualTreeListControl::OnNodeLeftButtonDoubleClick(compositions::GuiGraphicsComposition* sender, compositions::GuiNodeMouseEventArgs& arguments) { - text=documentElement->GetDocument()->GetText(true); - return text; + if (arguments.node->GetChildCount() > 0) + { + arguments.node->SetExpanding(!arguments.node->GetExpanding()); + } } - void GuiDocumentLabel::SetText(const WString& value) + GuiVirtualTreeListControl::GuiVirtualTreeListControl(theme::ThemeName themeName, Ptr _nodeRootProvider) + :GuiSelectableListControl(themeName, new tree::NodeItemProvider(_nodeRootProvider)) { - SelectAll(); - SetSelectionText(value); - } - } - } -} - - -/*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\GUITEXTCOMMONINTERFACE.CPP -***********************************************************************/ -#include - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace elements::text; - using namespace compositions; + nodeItemProvider = dynamic_cast(GetItemProvider()); + nodeItemView = dynamic_cast(GetItemProvider()->RequestView(tree::INodeItemView::Identifier)); -/*********************************************************************** -GuiTextBoxCommonInterface::DefaultCallback -***********************************************************************/ + NodeLeftButtonDown.SetAssociatedComposition(boundsComposition); + NodeLeftButtonUp.SetAssociatedComposition(boundsComposition); + NodeLeftButtonDoubleClick.SetAssociatedComposition(boundsComposition); + NodeMiddleButtonDown.SetAssociatedComposition(boundsComposition); + NodeMiddleButtonUp.SetAssociatedComposition(boundsComposition); + NodeMiddleButtonDoubleClick.SetAssociatedComposition(boundsComposition); + NodeRightButtonDown.SetAssociatedComposition(boundsComposition); + NodeRightButtonUp.SetAssociatedComposition(boundsComposition); + NodeRightButtonDoubleClick.SetAssociatedComposition(boundsComposition); + NodeMouseMove.SetAssociatedComposition(boundsComposition); + NodeMouseEnter.SetAssociatedComposition(boundsComposition); + NodeMouseLeave.SetAssociatedComposition(boundsComposition); + NodeExpanded.SetAssociatedComposition(boundsComposition); + NodeCollapsed.SetAssociatedComposition(boundsComposition); - GuiTextBoxCommonInterface::DefaultCallback::DefaultCallback(elements::GuiColorizedTextElement* _textElement, compositions::GuiGraphicsComposition* _textComposition) - :textElement(_textElement) - ,textComposition(_textComposition) - { - } + ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonDown, ItemLeftButtonDown); + ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonUp, ItemLeftButtonUp); + ATTACH_ITEM_MOUSE_EVENT(NodeLeftButtonDoubleClick, ItemLeftButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonDown, ItemMiddleButtonDown); + ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonUp, ItemMiddleButtonUp); + ATTACH_ITEM_MOUSE_EVENT(NodeMiddleButtonDoubleClick, ItemMiddleButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonDown, ItemRightButtonDown); + ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonUp, ItemRightButtonUp); + ATTACH_ITEM_MOUSE_EVENT(NodeRightButtonDoubleClick, ItemRightButtonDoubleClick); + ATTACH_ITEM_MOUSE_EVENT(NodeMouseMove, ItemMouseMove); + ATTACH_ITEM_NOTIFY_EVENT(NodeMouseEnter, ItemMouseEnter); + ATTACH_ITEM_NOTIFY_EVENT(NodeMouseLeave, ItemMouseLeave); - GuiTextBoxCommonInterface::DefaultCallback::~DefaultCallback() - { + nodeItemProvider->GetRoot()->AttachCallback(this); + NodeLeftButtonDoubleClick.AttachMethod(this, &GuiVirtualTreeListControl::OnNodeLeftButtonDoubleClick); } - TextPos GuiTextBoxCommonInterface::DefaultCallback::GetLeftWord(TextPos pos) - { - return pos; - } +#undef ATTACH_ITEM_MOUSE_EVENT +#undef ATTACH_ITEM_NOTIFY_EVENT - TextPos GuiTextBoxCommonInterface::DefaultCallback::GetRightWord(TextPos pos) + GuiVirtualTreeListControl::~GuiVirtualTreeListControl() { - return pos; } - void GuiTextBoxCommonInterface::DefaultCallback::GetWord(TextPos pos, TextPos& begin, TextPos& end) + tree::INodeItemView* GuiVirtualTreeListControl::GetNodeItemView() { - begin=pos; - end=pos; + return nodeItemView; } - vint GuiTextBoxCommonInterface::DefaultCallback::GetPageRows() + tree::INodeRootProvider* GuiVirtualTreeListControl::GetNodeRootProvider() { - return textComposition->GetBounds().Height()/textElement->GetLines().GetRowHeight(); + return nodeItemProvider->GetRoot().Obj(); } - bool GuiTextBoxCommonInterface::DefaultCallback::BeforeModify(TextPos start, TextPos end, const WString& originalText, WString& inputText) + namespace tree { - return true; - } /*********************************************************************** -GuiTextBoxCommonInterface +TreeViewItem ***********************************************************************/ - - void GuiTextBoxCommonInterface::InvokeUndoRedoChanged() - { - UndoRedoChanged.Execute(textControl->GetNotifyEventArguments()); - } - void GuiTextBoxCommonInterface::InvokeModifiedChanged() - { - ModifiedChanged.Execute(textControl->GetNotifyEventArguments()); - } + const wchar_t* const ITreeViewItemView::Identifier = L"vl::presentation::controls::tree::ITreeViewItemView"; - void GuiTextBoxCommonInterface::UpdateCaretPoint() - { - GuiGraphicsHost* host=textComposition->GetRelatedGraphicsHost(); - if(host) + TreeViewItem::TreeViewItem() { - Rect caret=textElement->GetLines().GetRectFromTextPos(textElement->GetCaretEnd()); - Point view=textElement->GetViewPosition(); - vint x=caret.x1-view.x; - vint y=caret.y2-view.y; - host->SetCaretPoint(Point(x, y), textComposition); } - } - void GuiTextBoxCommonInterface::Move(TextPos pos, bool shift) - { - TextPos oldBegin = textElement->GetCaretBegin(); - TextPos oldEnd = textElement->GetCaretEnd(); + TreeViewItem::TreeViewItem(const Ptr& _image, const WString& _text) + :image(_image) + ,text(_text) + { + } -#if defined VCZH_MSVC - if (0 <= pos.row && pos.row < textElement->GetLines().GetCount()) +/*********************************************************************** +TreeViewItemRootProvider +***********************************************************************/ + + Ptr TreeViewItemRootProvider::GetNodeImage(INodeProvider* node) { - TextLine& line = textElement->GetLines().GetLine(pos.row); - if (pos.column > 0 && UTF16SPFirst(line.text[pos.column - 1]) && UTF16SPSecond(line.text[pos.column])) + MemoryNodeProvider* memoryNode=dynamic_cast(node); + if(memoryNode) { - if (pos < oldBegin) - { - pos.column--; - } - else if (pos > oldBegin) + Ptr data=memoryNode->GetData().Cast(); + if(data) { - pos.column++; + return data->image; } } + return 0; } -#endif - pos = textElement->GetLines().Normalize(pos); - if (!shift) - { - textElement->SetCaretBegin(pos); - } - textElement->SetCaretEnd(pos); - if (textControl) + WString TreeViewItemRootProvider::GetTextValue(INodeProvider* node) { - GuiGraphicsHost* host = textComposition->GetRelatedGraphicsHost(); - if (host) + MemoryNodeProvider* memoryNode = dynamic_cast(node); + if (memoryNode) { - if (host->GetFocusedComposition() == textControl->GetFocusableComposition()) + Ptr data = memoryNode->GetData().Cast(); + if (data) { - textElement->SetCaretVisible(true); + return data->text; } } + return L""; } - Rect bounds = textElement->GetLines().GetRectFromTextPos(pos); - Rect view = Rect(textElement->GetViewPosition(), textComposition->GetBounds().GetSize()); - Point viewPoint = view.LeftTop(); + description::Value TreeViewItemRootProvider::GetBindingValue(INodeProvider* node) + { + return Value::From(GetTreeViewData(node)); + } - if (view.x2 > view.x1 && view.y2 > view.y1) + TreeViewItemRootProvider::TreeViewItemRootProvider() { - if (bounds.x1 < view.x1) + } + + TreeViewItemRootProvider::~TreeViewItemRootProvider() + { + } + + IDescriptable* TreeViewItemRootProvider::RequestView(const WString& identifier) + { + if(identifier==ITreeViewItemView::Identifier) { - viewPoint.x = bounds.x1; + return (ITreeViewItemView*)this; } - else if (bounds.x2 > view.x2) + else { - viewPoint.x = bounds.x2 - view.Width(); + return MemoryNodeRootProvider::RequestView(identifier); } - if (bounds.y1 < view.y1) + } + + Ptr TreeViewItemRootProvider::GetTreeViewData(INodeProvider* node) + { + MemoryNodeProvider* memoryNode=GetMemoryNode(node); + if(memoryNode) { - viewPoint.y = bounds.y1; + return memoryNode->GetData().Cast(); } - else if (bounds.y2 > view.y2) + else { - viewPoint.y = bounds.y2 - view.Height(); + return 0; } } - callback->ScrollToView(viewPoint); - UpdateCaretPoint(); - - TextPos newBegin = textElement->GetCaretBegin(); - TextPos newEnd = textElement->GetCaretEnd(); - if (oldBegin != newBegin || oldEnd != newEnd) + void TreeViewItemRootProvider::SetTreeViewData(INodeProvider* node, Ptr value) { - ICommonTextEditCallback::TextCaretChangedStruct arguments; - arguments.oldBegin = oldBegin; - arguments.oldEnd = oldEnd; - arguments.newBegin = newBegin; - arguments.newEnd = newEnd; - arguments.editVersion = editVersion; - for (vint i = 0; i < textEditCallbacks.Count(); i++) + MemoryNodeProvider* memoryNode=GetMemoryNode(node); + if(memoryNode) { - textEditCallbacks[i]->TextCaretChanged(arguments); + memoryNode->SetData(value); + } + } + + void TreeViewItemRootProvider::UpdateTreeViewData(INodeProvider* node) + { + MemoryNodeProvider* memoryNode=GetMemoryNode(node); + if(memoryNode) + { + memoryNode->NotifyDataModified(); } - SelectionChanged.Execute(textControl->GetNotifyEventArguments()); } } - void GuiTextBoxCommonInterface::Modify(TextPos start, TextPos end, const WString& input, bool asKeyInput) +/*********************************************************************** +GuiVirtualTreeView +***********************************************************************/ + + templates::GuiTreeItemTemplate* GuiVirtualTreeView::GetStyleFromNode(tree::INodeProvider* node) { - if(start>end) - { - TextPos temp=start; - start=end; - end=temp; - } - TextPos originalStart=start; - TextPos originalEnd=end; - WString originalText=textElement->GetLines().GetText(start, end); - WString inputText=input; - if(callback->BeforeModify(start, end, originalText, inputText)) + if (itemArranger) { + vint index = nodeItemView->CalculateNodeVisibilityIndex(node); + if (index != -1) { - ICommonTextEditCallback::TextEditPreviewStruct arguments; - arguments.originalStart=originalStart; - arguments.originalEnd=originalEnd; - arguments.originalText=originalText; - arguments.inputText=inputText; - arguments.editVersion=editVersion; - arguments.keyInput=asKeyInput; - for(vint i=0;iTextEditPreview(arguments); - } - - inputText=arguments.inputText; - if(originalStart!=arguments.originalStart || originalEnd!=arguments.originalEnd) - { - originalStart=arguments.originalStart; - originalEnd=arguments.originalEnd; - originalText=textElement->GetLines().GetText(originalStart, originalEnd); - start=originalStart; - end=originalEnd; - } - } - - SPIN_LOCK(elementModifyLock) - { - end=textElement->GetLines().Modify(start, end, inputText); - } - callback->AfterModify(originalStart, originalEnd, originalText, start, end, inputText); - - editVersion++; - { - ICommonTextEditCallback::TextEditNotifyStruct arguments; - arguments.originalStart=originalStart; - arguments.originalEnd=originalEnd; - arguments.originalText=originalText; - arguments.inputStart=start; - arguments.inputEnd=end; - arguments.inputText=inputText; - arguments.editVersion=editVersion; - arguments.keyInput=asKeyInput; - for(vint i=0;iTextEditNotify(arguments); - } - } - - Move(end, false); - - for(vint i=0;iTextEditFinished(editVersion); + auto style = itemArranger->GetVisibleStyle(index); + return dynamic_cast(style); } + } + return nullptr; + } - textControl->TextChanged.Execute(textControl->GetNotifyEventArguments()); + void GuiVirtualTreeView::SetStyleExpanding(tree::INodeProvider* node, bool expanding) + { + if (auto treeItemStyle = GetStyleFromNode(node)) + { + treeItemStyle->SetExpanding(expanding); } } - bool GuiTextBoxCommonInterface::ProcessKey(VKEY code, bool shift, bool ctrl) + void GuiVirtualTreeView::SetStyleExpandable(tree::INodeProvider* node, bool expandable) { - if(IGuiShortcutKeyItem* item=internalShortcutKeyManager->TryGetShortcut(ctrl, shift, false, code)) + if (auto treeItemStyle = GetStyleFromNode(node)) { - GuiEventArgs arguments(textControl->GetBoundsComposition()); - item->Executed.Execute(arguments); - return true; + treeItemStyle->SetExpandable(expandable); } + } - TextPos begin=textElement->GetCaretBegin(); - TextPos end=textElement->GetCaretEnd(); - switch(code) + void GuiVirtualTreeView::OnAfterItemModified(tree::INodeProvider* parentNode, vint start, vint count, vint newCount) + { + GuiVirtualTreeListControl::OnAfterItemModified(parentNode, start, count, newCount); + SetStyleExpandable(parentNode, parentNode->GetChildCount() > 0); + } + + void GuiVirtualTreeView::OnItemExpanded(tree::INodeProvider* node) + { + GuiVirtualTreeListControl::OnItemExpanded(node); + SetStyleExpanding(node, true); + } + + void GuiVirtualTreeView::OnItemCollapsed(tree::INodeProvider* node) + { + GuiVirtualTreeListControl::OnItemCollapsed(node); + SetStyleExpanding(node, false); + } + + void GuiVirtualTreeView::OnStyleInstalled(vint itemIndex, ItemStyle* style) + { + GuiVirtualTreeListControl::OnStyleInstalled(itemIndex, style); + if (auto treeItemStyle = dynamic_cast(style)) { - case VKEY::KEY_ESCAPE: - if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) - { - autoComplete->CloseList(); - return true; - } - break; - case VKEY::KEY_RETURN: - if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) - { - if(autoComplete->ApplySelectedListItem()) - { - preventEnterDueToAutoComplete=true; - return true; - } - } - break; - case VKEY::KEY_UP: - if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) - { - autoComplete->SelectPreviousListItem(); - } - else - { - end.row--; - Move(end, shift); - } - return true; - case VKEY::KEY_DOWN: - if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) - { - autoComplete->SelectNextListItem(); - } - else - { - end.row++; - Move(end, shift); - } - return true; - case VKEY::KEY_LEFT: - { - if(ctrl) - { - Move(callback->GetLeftWord(end), shift); - } - else - { - if(end.column==0) - { - if(end.row>0) - { - end.row--; - end=textElement->GetLines().Normalize(end); - end.column=textElement->GetLines().GetLine(end.row).dataLength; - } - } - else - { - end.column--; - } - Move(end, shift); - } - } - return true; - case VKEY::KEY_RIGHT: + treeItemStyle->SetTextColor(TypedControlTemplateObject(true)->GetTextColor()); + + if (treeViewItemView) { - if(ctrl) - { - Move(callback->GetRightWord(end), shift); - } - else + if (auto node = nodeItemView->RequestNode(itemIndex)) { - if(end.column==textElement->GetLines().GetLine(end.row).dataLength) + treeItemStyle->SetImage(treeViewItemView->GetNodeImage(node.Obj())); + treeItemStyle->SetExpanding(node->GetExpanding()); + treeItemStyle->SetExpandable(node->GetChildCount() > 0); { - if(end.rowGetLines().GetCount()-1) + vint level = -1; + auto current = node; + while (current->GetParent()) { - end.row++; - end.column=0; + level++; + current = current->GetParent(); } + treeItemStyle->SetLevel(level); } - else - { - end.column++; - } - Move(end, shift); - } - } - return true; - case VKEY::KEY_HOME: - { - if(ctrl) - { - Move(TextPos(0, 0), shift); - } - else - { - end.column=0; - Move(end, shift); - } - } - return true; - case VKEY::KEY_END: - { - if(ctrl) - { - end.row=textElement->GetLines().GetCount()-1; - } - end.column=textElement->GetLines().GetLine(end.row).dataLength; - Move(end, shift); - } - return true; - case VKEY::KEY_PRIOR: - { - end.row-=callback->GetPageRows(); - Move(end, shift); - } - return true; - case VKEY::KEY_NEXT: - { - end.row+=callback->GetPageRows(); - Move(end, shift); - } - return true; - case VKEY::KEY_BACK: - if(!readonly) - { - if(ctrl && !shift) - { - ProcessKey(VKEY::KEY_LEFT, true, true); - ProcessKey(VKEY::KEY_BACK, false, false); - } - else if(!ctrl && shift) - { - ProcessKey(VKEY::KEY_UP, true, false); - ProcessKey(VKEY::KEY_BACK, false, false); - } - else - { - if(begin==end) - { - ProcessKey(VKEY::KEY_LEFT, true, false); - } - SetSelectionTextAsKeyInput(L""); - } - return true; - } - break; - case VKEY::KEY_DELETE: - if(!readonly) - { - if(ctrl && !shift) - { - ProcessKey(VKEY::KEY_RIGHT, true, true); - ProcessKey(VKEY::KEY_DELETE, false, false); - } - else if(!ctrl && shift) - { - ProcessKey(VKEY::KEY_DOWN, true, false); - ProcessKey(VKEY::KEY_DELETE, false, false); - } - else - { - if(begin==end) - { - ProcessKey(VKEY::KEY_RIGHT, true, false); - } - SetSelectionTextAsKeyInput(L""); } - return true; } - break; - default:; } - return false; } - void GuiTextBoxCommonInterface::OnGotFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiVirtualTreeView::GuiVirtualTreeView(theme::ThemeName themeName, Ptr _nodeRootProvider) + :GuiVirtualTreeListControl(themeName, _nodeRootProvider) { - textElement->SetFocused(true); - textElement->SetCaretVisible(true); - UpdateCaretPoint(); + treeViewItemView = dynamic_cast(GetNodeRootProvider()->RequestView(tree::ITreeViewItemView::Identifier)); + SetStyleAndArranger( + [](const Value&) { return new tree::DefaultTreeItemTemplate; }, + Ptr(new list::FixedHeightItemArranger) + ); } - void GuiTextBoxCommonInterface::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + GuiVirtualTreeView::~GuiVirtualTreeView() { - textElement->SetFocused(false); - textElement->SetCaretVisible(false); } - void GuiTextBoxCommonInterface::OnCaretNotify(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - textElement->SetCaretVisible(!textElement->GetCaretVisible()); - } +/*********************************************************************** +GuiTreeView +***********************************************************************/ - void GuiTextBoxCommonInterface::OnLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + GuiTreeView::GuiTreeView(theme::ThemeName themeName) + :GuiVirtualTreeView(themeName, Ptr(new tree::TreeViewItemRootProvider)) { - if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) - { - dragging=true; - TextPos pos=GetNearestTextPos(Point(arguments.x, arguments.y)); - Move(pos, arguments.shift); - } + nodes = nodeItemProvider->GetRoot().Cast(); } - void GuiTextBoxCommonInterface::OnLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + GuiTreeView::~GuiTreeView() { - if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) - { - dragging=false; - } } - void GuiTextBoxCommonInterface::OnMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + Ptr GuiTreeView::Nodes() { - if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) - { - if(dragging) - { - TextPos pos=GetNearestTextPos(Point(arguments.x, arguments.y)); - Move(pos, true); - } - } + return nodes; } - void GuiTextBoxCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) + Ptr GuiTreeView::GetSelectedItem() { - if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) + Ptr result; + vint index = GetSelectedItemIndex(); + if (index != -1) { - if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl)) + if (auto node = nodeItemView->RequestNode(index)) { - arguments.handled=true; + if (auto memoryNode = node.Cast()) + { + result = memoryNode->GetData().Cast(); + } } } + return result; } - void GuiTextBoxCommonInterface::OnCharInput(compositions::GuiGraphicsComposition* sender, compositions::GuiCharEventArgs& arguments) + namespace tree { - if (preventEnterDueToAutoComplete) + +/*********************************************************************** +DefaultTreeItemTemplate +***********************************************************************/ + + void DefaultTreeItemTemplate::OnInitialize() { - preventEnterDueToAutoComplete = false; - if (arguments.code == (wchar_t)VKEY::KEY_RETURN) + templates::GuiTreeItemTemplate::OnInitialize(); + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + + table = new GuiTableComposition; + AddChild(table); + table->SetRowsAndColumns(3, 4); + table->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + table->SetRowOption(1, GuiCellOption::MinSizeOption()); + table->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + table->SetColumnOption(0, GuiCellOption::AbsoluteOption(0)); + table->SetColumnOption(1, GuiCellOption::MinSizeOption()); + table->SetColumnOption(2, GuiCellOption::MinSizeOption()); + table->SetColumnOption(3, GuiCellOption::MinSizeOption()); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetCellPadding(2); { - return; + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 1, 3, 1); + cell->SetPreferredMinSize(Size(16, 16)); + + expandingButton = new GuiSelectableButton(theme::ThemeName::TreeItemExpander); + if (auto treeView = dynamic_cast(listControl)) + { + if (auto expanderStyle = treeView->TypedControlTemplateObject(true)->GetExpandingDecoratorTemplate()) + { + expandingButton->SetControlTemplate(expanderStyle); + } + } + expandingButton->SetAutoFocus(false); + expandingButton->SetAutoSelection(false); + expandingButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + expandingButton->GetBoundsComposition()->GetEventReceiver()->leftButtonDoubleClick.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingButtonDoubleClick); + expandingButton->Clicked.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingButtonClicked); + cell->AddChild(expandingButton->GetBoundsComposition()); } - } - if (textControl->GetVisuallyEnabled() && arguments.compositionSource == arguments.eventSource) - { - if (!readonly && - arguments.code != (wchar_t)VKEY::KEY_ESCAPE && - arguments.code != (wchar_t)VKEY::KEY_BACK && - (arguments.code != (wchar_t)VKEY::KEY_TAB || textControl->GetAcceptTabInput()) && - !arguments.ctrl) { - SetSelectionTextAsKeyInput(WString::FromChar(arguments.code)); + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(1, 2, 1, 1); + cell->SetPreferredMinSize(Size(16, 16)); + + imageElement = GuiImageFrameElement::Create(); + imageElement->SetStretch(true); + cell->SetOwnedElement(Ptr(imageElement)); } - } - } + { + GuiCellComposition* cell = new GuiCellComposition; + table->AddChild(cell); + cell->SetSite(0, 3, 3, 1); + cell->SetPreferredMinSize(Size(192, 0)); - void GuiTextBoxCommonInterface::Install( - elements::GuiColorizedTextElement* _textElement, - compositions::GuiGraphicsComposition* _textComposition, - GuiControl* _textControl, - compositions::GuiGraphicsComposition* eventComposition, - compositions::GuiGraphicsComposition* focusableComposition - ) - { - textElement=_textElement; - textComposition=_textComposition; - textControl=_textControl; - textComposition->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::IBeam)); - SelectionChanged.SetAssociatedComposition(eventComposition); - UndoRedoChanged.SetAssociatedComposition(eventComposition); - ModifiedChanged.SetAssociatedComposition(eventComposition); + textElement = GuiSolidLabelElement::Create(); + textElement->SetAlignments(Alignment::Left, Alignment::Center); + textElement->SetEllipse(true); + cell->SetOwnedElement(Ptr(textElement)); + } - undoRedoProcessor->UndoRedoChanged.Add(this, &GuiTextBoxCommonInterface::InvokeUndoRedoChanged); - undoRedoProcessor->ModifiedChanged.Add(this, &GuiTextBoxCommonInterface::InvokeModifiedChanged); + FontChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnFontChanged); + TextChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnTextChanged); + TextColorChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnTextColorChanged); + ExpandingChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandingChanged); + ExpandableChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnExpandableChanged); + LevelChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnLevelChanged); + ImageChanged.AttachMethod(this, &DefaultTreeItemTemplate::OnImageChanged); - focusableComposition->GetEventReceiver()->gotFocus.AttachMethod(this, &GuiTextBoxCommonInterface::OnGotFocus); - focusableComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiTextBoxCommonInterface::OnLostFocus); - focusableComposition->GetEventReceiver()->caretNotify.AttachMethod(this, &GuiTextBoxCommonInterface::OnCaretNotify); - textComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiTextBoxCommonInterface::OnLeftButtonDown); - textComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiTextBoxCommonInterface::OnLeftButtonUp); - textComposition->GetEventReceiver()->mouseMove.AttachMethod(this, &GuiTextBoxCommonInterface::OnMouseMove); - focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiTextBoxCommonInterface::OnKeyDown); - focusableComposition->GetEventReceiver()->charInput.AttachMethod(this, &GuiTextBoxCommonInterface::OnCharInput); + FontChanged.Execute(compositions::GuiEventArgs(this)); + TextChanged.Execute(compositions::GuiEventArgs(this)); + TextColorChanged.Execute(compositions::GuiEventArgs(this)); + ExpandingChanged.Execute(compositions::GuiEventArgs(this)); + ExpandableChanged.Execute(compositions::GuiEventArgs(this)); + LevelChanged.Execute(compositions::GuiEventArgs(this)); + ImageChanged.Execute(compositions::GuiEventArgs(this)); + } - for(vint i=0;iAttach(textElement, elementModifyLock, textComposition ,editVersion); + textElement->SetFont(GetFont()); } - } - - GuiTextBoxCommonInterface::ICallback* GuiTextBoxCommonInterface::GetCallback() - { - return callback; - } - - void GuiTextBoxCommonInterface::SetCallback(ICallback* value) - { - callback=value; - } - bool GuiTextBoxCommonInterface::AttachTextEditCallback(Ptr value) - { - if(textEditCallbacks.Contains(value.Obj())) + void DefaultTreeItemTemplate::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return false; + textElement->SetText(GetText()); } - else + + void DefaultTreeItemTemplate::OnTextColorChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - textEditCallbacks.Add(value); - if(textElement) - { - value->Attach(textElement, elementModifyLock, textComposition, editVersion); - } - return true; + textElement->SetColor(GetTextColor()); } - } - bool GuiTextBoxCommonInterface::DetachTextEditCallback(Ptr value) - { - if(textEditCallbacks.Remove(value.Obj())) + void DefaultTreeItemTemplate::OnExpandingChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - value->Detach(); - return true; + expandingButton->SetSelected(GetExpanding()); } - else + + void DefaultTreeItemTemplate::OnExpandableChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return false; + expandingButton->SetVisible(GetExpandable()); } - } - void GuiTextBoxCommonInterface::AddShortcutCommand(VKEY key, const Func& eventHandler) - { - IGuiShortcutKeyItem* item=internalShortcutKeyManager->CreateShortcut(true, false, false, key); - item->Executed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + void DefaultTreeItemTemplate::OnLevelChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - eventHandler(); - }); - } - - elements::GuiColorizedTextElement* GuiTextBoxCommonInterface::GetTextElement() - { - return textElement; - } + table->SetColumnOption(0, GuiCellOption::AbsoluteOption(GetLevel() * 12)); + } - void GuiTextBoxCommonInterface::UnsafeSetText(const WString& value) - { - if(textElement) + void DefaultTreeItemTemplate::OnImageChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - TextPos end; - if(textElement->GetLines().GetCount()>0) + if (auto imageData = GetImage()) { - end.row=textElement->GetLines().GetCount()-1; - end.column=textElement->GetLines().GetLine(end.row).dataLength; + imageElement->SetImage(imageData->GetImage(), imageData->GetFrameIndex()); + } + else + { + imageElement->SetImage(nullptr); } - Modify(TextPos(), end, value, false); } - } - - GuiTextBoxCommonInterface::GuiTextBoxCommonInterface() - :textElement(0) - ,textComposition(0) - ,editVersion(0) - ,textControl(0) - ,callback(0) - ,dragging(false) - ,readonly(false) - ,preventEnterDueToAutoComplete(false) - { - undoRedoProcessor=new GuiTextBoxUndoRedoProcessor; - AttachTextEditCallback(undoRedoProcessor); - internalShortcutKeyManager=new GuiShortcutKeyManager; - AddShortcutCommand(VKEY::KEY_Z, Func(this, &GuiTextBoxCommonInterface::Undo)); - AddShortcutCommand(VKEY::KEY_Y, Func(this, &GuiTextBoxCommonInterface::Redo)); - AddShortcutCommand(VKEY::KEY_A, Func(this, &GuiTextBoxCommonInterface::SelectAll)); - AddShortcutCommand(VKEY::KEY_X, Func(this, &GuiTextBoxCommonInterface::Cut)); - AddShortcutCommand(VKEY::KEY_C, Func(this, &GuiTextBoxCommonInterface::Copy)); - AddShortcutCommand(VKEY::KEY_V, Func(this, &GuiTextBoxCommonInterface::Paste)); - } + void DefaultTreeItemTemplate::OnExpandingButtonDoubleClick(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + { + arguments.handled = true; + } - GuiTextBoxCommonInterface::~GuiTextBoxCommonInterface() - { - if(colorizer) + void DefaultTreeItemTemplate::OnExpandingButtonClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - DetachTextEditCallback(colorizer); - colorizer=0; + if (expandingButton->GetVisuallyEnabled()) + { + if (auto treeControl = dynamic_cast(listControl)) + { + if (auto view = treeControl->GetNodeItemView()) + { + vint index = treeControl->GetArranger()->GetVisibleIndex(this); + if (index != -1) + { + if (auto node = view->RequestNode(index)) + { + bool expanding = node->GetExpanding(); + node->SetExpanding(!expanding); + } + } + } + } + } } - if(undoRedoProcessor) + + DefaultTreeItemTemplate::DefaultTreeItemTemplate() { - DetachTextEditCallback(undoRedoProcessor); - undoRedoProcessor=0; } - for(vint i=0;iDetach(); } - textEditCallbacks.Clear(); } + } + } +} - //================ clipboard operations +/*********************************************************************** +.\CONTROLS\TEMPLATES\GUIANIMATION.CPP +***********************************************************************/ - bool GuiTextBoxCommonInterface::CanCut() - { - return !readonly && textElement->GetCaretBegin()!=textElement->GetCaretEnd() && textElement->GetPasswordChar()==L'\0'; - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; + using namespace reflection::description; - bool GuiTextBoxCommonInterface::CanCopy() - { - return textElement->GetCaretBegin()!=textElement->GetCaretEnd() && textElement->GetPasswordChar()==L'\0'; - } +/*********************************************************************** +GuiTimedAnimation +***********************************************************************/ - bool GuiTextBoxCommonInterface::CanPaste() + class GuiTimedAnimation : public Object, public virtual IGuiAnimation { - if (!readonly && textElement->GetPasswordChar() == L'\0') + protected: + DateTime startTime; + vuint64_t time; + bool running = false; + + public: + GuiTimedAnimation() { - auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); - return reader->ContainsText(); } - return false; - } - bool GuiTextBoxCommonInterface::Cut() - { - if (!CanCut()) return false; - auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); - writer->SetText(GetSelectionText()); - writer->Submit(); - SetSelectionText(L""); - return true; - } + ~GuiTimedAnimation() + { + } - bool GuiTextBoxCommonInterface::Copy() - { - if (!CanCopy()) return false; - auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); - writer->SetText(GetSelectionText()); - writer->Submit(); - return true; - } + void Start()override + { + startTime = DateTime::LocalTime(); + time = 0; + running = true; + } - bool GuiTextBoxCommonInterface::Paste() - { - if (!CanPaste()) return false; - auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); - SetSelectionText(reader->GetText()); - return true; - } - - //================ editing control - - bool GuiTextBoxCommonInterface::GetReadonly() - { - return readonly; - } + void Pause()override + { + time = GetTime(); + running = false; + } - void GuiTextBoxCommonInterface::SetReadonly(bool value) - { - readonly=value; - } + void Resume()override + { + startTime = DateTime::LocalTime(); + running = true; + } - //================ text operations + vuint64_t GetTime() + { + if (running) + { + return time + (DateTime::LocalTime().totalMilliseconds - startTime.totalMilliseconds); + } + else + { + return time; + } + } + }; - void GuiTextBoxCommonInterface::Select(TextPos begin, TextPos end) - { - Move(begin, false); - Move(end, true); - } +/*********************************************************************** +GuiFiniteAnimation +***********************************************************************/ - void GuiTextBoxCommonInterface::SelectAll() + class GuiFiniteAnimation : public GuiTimedAnimation { - vint row=textElement->GetLines().GetCount()-1; - Move(TextPos(0, 0), false); - Move(TextPos(row, textElement->GetLines().GetLine(row).dataLength), true); - } + protected: + vuint64_t length = 0; + vuint64_t currentTime = 0; + Func run; - WString GuiTextBoxCommonInterface::GetSelectionText() - { - TextPos selectionBegin=textElement->GetCaretBegin()GetCaretEnd()?textElement->GetCaretBegin():textElement->GetCaretEnd(); - TextPos selectionEnd=textElement->GetCaretBegin()>textElement->GetCaretEnd()?textElement->GetCaretBegin():textElement->GetCaretEnd(); - return textElement->GetLines().GetText(selectionBegin, selectionEnd); - } + public: + GuiFiniteAnimation(const Func& _run, vuint64_t _length) + :run(_run) + , length(_length) + { + } - void GuiTextBoxCommonInterface::SetSelectionText(const WString& value) - { - Modify(textElement->GetCaretBegin(), textElement->GetCaretEnd(), value, false); - } + ~GuiFiniteAnimation() + { + } - void GuiTextBoxCommonInterface::SetSelectionTextAsKeyInput(const WString& value) - { - Modify(textElement->GetCaretBegin(), textElement->GetCaretEnd(), value, true); - } + void Run()override + { + currentTime = GetTime(); + if (currentTime < length && run) + { + run(currentTime); + } + } - WString GuiTextBoxCommonInterface::GetRowText(vint row) - { - TextPos start=textElement->GetLines().Normalize(TextPos(row, 0)); - TextPos end=TextPos(start.row, textElement->GetLines().GetLine(start.row).dataLength); - return GetFragmentText(start, end); - } + bool GetStopped()override + { + return currentTime >= length; + } + }; - vint GuiTextBoxCommonInterface::GetRowCount() - { - return textElement->GetLines().GetCount(); - } +/*********************************************************************** +GuiInfiniteAnimation +***********************************************************************/ - WString GuiTextBoxCommonInterface::GetFragmentText(TextPos start, TextPos end) + class GuiInfiniteAnimation : public GuiTimedAnimation { - start=textElement->GetLines().Normalize(start); - end=textElement->GetLines().Normalize(end); - return textElement->GetLines().GetText(start, end); - } + protected: + Func run; - TextPos GuiTextBoxCommonInterface::GetCaretBegin() - { - return textElement->GetCaretBegin(); - } + public: + GuiInfiniteAnimation(const Func& _run) + :run(_run) + { + } - TextPos GuiTextBoxCommonInterface::GetCaretEnd() - { - return textElement->GetCaretEnd(); - } + ~GuiInfiniteAnimation() + { + } - TextPos GuiTextBoxCommonInterface::GetCaretSmall() - { - TextPos c1=GetCaretBegin(); - TextPos c2=GetCaretEnd(); - return c1c2?c1:c2; - } + bool GetStopped()override + { + return false; + } + }; - //================ position query - - vint GuiTextBoxCommonInterface::GetRowWidth(vint row) - { - return textElement->GetLines().GetRowWidth(row); - } +/*********************************************************************** +IGuiAnimation +***********************************************************************/ - vint GuiTextBoxCommonInterface::GetRowHeight() + Ptr IGuiAnimation::CreateAnimation(const Func& run, vuint64_t milliseconds) { - return textElement->GetLines().GetRowHeight(); + return Ptr(new GuiFiniteAnimation(run, milliseconds)); } - vint GuiTextBoxCommonInterface::GetMaxWidth() + Ptr IGuiAnimation::CreateAnimation(const Func& run) { - return textElement->GetLines().GetMaxWidth(); + return Ptr(new GuiInfiniteAnimation(run)); } - vint GuiTextBoxCommonInterface::GetMaxHeight() - { - return textElement->GetLines().GetMaxHeight(); - } +/*********************************************************************** +IGuiAnimationCoroutine +***********************************************************************/ - TextPos GuiTextBoxCommonInterface::GetTextPosFromPoint(Point point) + class GuiCoroutineAnimation : public Object, public virtual IGuiAnimationCoroutine::IImpl { - Point view=textElement->GetViewPosition(); - return textElement->GetLines().GetTextPosFromPoint(Point(point.x+view.x, point.y+view.y)); - } + protected: + IGuiAnimationCoroutine::Creator creator; + Ptr coroutine; - Point GuiTextBoxCommonInterface::GetPointFromTextPos(TextPos pos) - { - Point view=textElement->GetViewPosition(); - Point result=textElement->GetLines().GetPointFromTextPos(pos); - return Point(result.x-view.x, result.y-view.y); - } + Ptr waitingAnimation; + vint waitingGroup = -1; + Group> groupAnimations; - Rect GuiTextBoxCommonInterface::GetRectFromTextPos(TextPos pos) - { - Point view=textElement->GetViewPosition(); - Rect result=textElement->GetLines().GetRectFromTextPos(pos); - return Rect(Point(result.x1-view.x, result.y1-view.y), result.GetSize()); - } + public: + GuiCoroutineAnimation(const IGuiAnimationCoroutine::Creator& _creator) + :creator(_creator) + { + } - TextPos GuiTextBoxCommonInterface::GetNearestTextPos(Point point) - { - Point viewPosition=textElement->GetViewPosition(); - Point mousePosition=Point(point.x+viewPosition.x, point.y+viewPosition.y); - TextPos pos=textElement->GetLines().GetTextPosFromPoint(mousePosition); - if(pos.columnGetLines().GetLine(pos.row).dataLength) + ~GuiCoroutineAnimation() { - Rect rect=textElement->GetLines().GetRectFromTextPos(pos); - if(abs((int)(rect.x1-mousePosition.x))>=abs((int)(rect.x2-1-mousePosition.x))) - { - pos.column++; - } } - return pos; - } - //================ colorizing + void OnPlayAndWait(Ptr animation)override + { + CHECK_ERROR(!waitingAnimation && waitingGroup == -1, L"GuiCoroutineAnimation::OnPlayAndWait(Ptr)#Cannot be called when an animation or a group has already been waiting for."); + waitingAnimation = animation; + waitingAnimation->Start(); + } - Ptr GuiTextBoxCommonInterface::GetColorizer() - { - return colorizer; - } + void OnPlayInGroup(Ptr animation, vint groupId)override + { + groupAnimations.Add(groupId, animation); + animation->Start(); + } - void GuiTextBoxCommonInterface::SetColorizer(Ptr value) - { - if (!filledDefaultColors) + void OnWaitForGroup(vint groupId)override { - filledDefaultColors = true; - CopyFrom(defaultColors, GetTextElement()->GetColors()); + CHECK_ERROR(!waitingAnimation && waitingGroup == -1, L"GuiCoroutineAnimation::OnWaitForGroup(vint)#Cannot be called when an animation or a group has already been waiting for."); + if (groupAnimations.Keys().Contains(groupId)) + { + waitingGroup = groupId; + } } - if(colorizer) + void Start()override { - DetachTextEditCallback(colorizer); + CHECK_ERROR(!coroutine, L"GuiCoroutineAnimation::Start()#Cannot be called more than once."); + coroutine = creator(this); } - colorizer=value; - if(colorizer) + + void Pause()override { - AttachTextEditCallback(colorizer); - GetTextElement()->SetColors(colorizer->GetColors()); + if (waitingAnimation) + { + waitingAnimation->Pause(); + } + for (vint i = 0; i < groupAnimations.Count(); i++) + { + for (auto animation : groupAnimations.GetByIndex(i)) + { + animation->Pause(); + } + } } - else + + void Resume()override { - GetTextElement()->SetColors(defaultColors); - GetTextElement()->ResetTextColorIndex(0); + if (waitingAnimation) + { + waitingAnimation->Resume(); + } + for (vint i = 0; i < groupAnimations.Count(); i++) + { + for (auto animation : groupAnimations.GetByIndex(i)) + { + animation->Resume(); + } + } } - } - //================ auto complete + void Run()override + { + CHECK_ERROR(coroutine, L"GuiCoroutineAnimation::Run()#Cannot be called before calling Start."); - Ptr GuiTextBoxCommonInterface::GetAutoComplete() - { - return autoComplete; - } + if (waitingAnimation) + { + waitingAnimation->Run(); + if (waitingAnimation->GetStopped()) + { + waitingAnimation = nullptr; + } + } - void GuiTextBoxCommonInterface::SetAutoComplete(Ptr value) - { - if(autoComplete) - { - DetachTextEditCallback(autoComplete); + for (vint i = groupAnimations.Count() - 1; i >= 0; i--) + { + auto& animations = groupAnimations.GetByIndex(i); + for (vint j = animations.Count() - 1; j >= 0; j--) + { + auto animation = animations[j]; + animation->Run(); + if (animation->GetStopped()) + { + groupAnimations.Remove(i, animation.Obj()); + } + } + } + + if (waitingGroup != -1 && !groupAnimations.Keys().Contains(waitingGroup)) + { + waitingGroup = -1; + } + + if (coroutine->GetStatus() == CoroutineStatus::Waiting) + { + if (waitingAnimation || waitingGroup != -1) + { + return; + } + coroutine->Resume(true, nullptr); + } } - autoComplete=value; - if(autoComplete) + + bool GetStopped()override { - AttachTextEditCallback(autoComplete); + if (!coroutine) return false; + if (coroutine->GetStatus() != CoroutineStatus::Stopped) return false; + if (waitingAnimation || groupAnimations.Count() > 0) return false; + return true; } - } - - //================ undo redo control + }; - vuint GuiTextBoxCommonInterface::GetEditVersion() + void IGuiAnimationCoroutine::WaitAndPause(IImpl* impl, vuint64_t milliseconds) { - return editVersion; + return PlayAndWaitAndPause(impl, IGuiAnimation::CreateAnimation({}, milliseconds)); } - bool GuiTextBoxCommonInterface::CanUndo() + void IGuiAnimationCoroutine::PlayAndWaitAndPause(IImpl* impl, Ptr animation) { - return !readonly && undoRedoProcessor->CanUndo(); + impl->OnPlayAndWait(animation); } - bool GuiTextBoxCommonInterface::CanRedo() + void IGuiAnimationCoroutine::PlayInGroupAndPause(IImpl* impl, Ptr animation, vint groupId) { - return !readonly && undoRedoProcessor->CanRedo(); + impl->OnPlayInGroup(animation, groupId); } - void GuiTextBoxCommonInterface::ClearUndoRedo() + void IGuiAnimationCoroutine::WaitForGroupAndPause(IImpl* impl, vint groupId) { - undoRedoProcessor->ClearUndoRedo(); + impl->OnWaitForGroup(groupId); } - bool GuiTextBoxCommonInterface::GetModified() + void IGuiAnimationCoroutine::ReturnAndExit(IImpl* impl) { - return undoRedoProcessor->GetModified(); } - void GuiTextBoxCommonInterface::NotifyModificationSaved() - { - undoRedoProcessor->NotifyModificationSaved(); - } - - bool GuiTextBoxCommonInterface::Undo() - { - if(CanUndo()) - { - return undoRedoProcessor->Undo(); - } - else - { - return false; - } - } - - bool GuiTextBoxCommonInterface::Redo() + Ptr IGuiAnimationCoroutine::Create(const Creator& creator) { - if(CanRedo()) - { - return undoRedoProcessor->Redo(); - } - else - { - return false; - } + return Ptr(new GuiCoroutineAnimation(creator)); } } } } /*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\GUITEXTCONTROLS.CPP +.\CONTROLS\TEMPLATES\GUICOMMONTEMPLATES.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace controls + namespace templates { using namespace elements; - using namespace elements::text; using namespace compositions; - using namespace collections; + using namespace templates; + using namespace controls; + using namespace theme; /*********************************************************************** -GuiMultilineTextBox::DefaultTextElementOperatorCallback +GuiCommonDatePickerLook ***********************************************************************/ - GuiMultilineTextBox::TextElementOperatorCallback::TextElementOperatorCallback(GuiMultilineTextBox* _textControl) - :GuiTextBoxCommonInterface::DefaultCallback( - _textControl->textElement, - _textControl->textComposition - ) - ,textControl(_textControl) + vint GetDayCountForMonth(vint year, vint month) { + bool isLeapYear = (year % 100 == 0) ? (year % 400 == 0) : (year % 4 == 0); + switch (month) + { + case 1:case 3:case 5:case 7:case 8:case 10:case 12: + return 31; + case 4:case 6:case 9:case 11: + return 30; + default: + return isLeapYear ? 29 : 28; + } } - void GuiMultilineTextBox::TextElementOperatorCallback::AfterModify(TextPos originalStart, TextPos originalEnd, const WString& originalText, TextPos inputStart, TextPos inputEnd, const WString& inputText) - { - textControl->CalculateView(); - } - - void GuiMultilineTextBox::TextElementOperatorCallback::ScrollToView(Point point) + void StepPreviousMonth(vint& year, vint& month) { - point.x+=TextMargin; - point.y+=TextMargin; - Point oldPoint = textControl->GetViewPosition(); - vint marginX=0; - vint marginY=0; - if(oldPoint.xpoint.x) + else { - marginX=-TextMargin; + month--; } - if(oldPoint.ypoint.y) + else { - marginY=-TextMargin; + month++; } - textControl->SetViewPosition(Point(point.x + marginX, point.y + marginY)); } - vint GuiMultilineTextBox::TextElementOperatorCallback::GetTextMargin() + void GuiCommonDatePickerLook::SetDay(const DateTime& day, vint& index, vint monthOffset) { - return TextMargin; - } + dateDays[index] = day; + GuiSolidLabelElement* label = labelDays[index]; + label->SetText(itow(day.day)); + label->SetColor(monthOffset == 0 ? primaryTextColor : secondaryTextColor); -/*********************************************************************** -GuiMultilineTextBox::CommandExecutor -***********************************************************************/ + wchar_t alt[] = L"D00"; + if (monthOffset == -1) alt[0] = L'C'; + else if (monthOffset == 1) alt[0] = L'E'; + alt[1] = (wchar_t)(L'0' + day.day / 10); + alt[2] = (wchar_t)(L'0' + day.day % 10); + buttonDays[index]->SetAlt(alt); - GuiMultilineTextBox::CommandExecutor::CommandExecutor(GuiMultilineTextBox* _textBox) - :textBox(_textBox) - { + index++; } - GuiMultilineTextBox::CommandExecutor::~CommandExecutor() + void GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - } + if (!preventComboEvent) + { + if (comboYear->GetSelectedIndex() != -1 && comboMonth->GetSelectedIndex() != -1) + { + vint year = comboYear->GetSelectedIndex() + YearFirst; + vint month = comboMonth->GetSelectedIndex() + 1; + SetDate(DateTime::FromDateTime(year, month, 1)); - void GuiMultilineTextBox::CommandExecutor::UnsafeSetText(const WString& value) - { - textBox->UnsafeSetText(value); + GuiEventArgs arguments(this); + DateChanged.Execute(arguments); + commands->NotifyDateChanged(); + commands->NotifyDateNavigated(); + } + } } -/*********************************************************************** -GuiMultilineTextBox -***********************************************************************/ - - void GuiMultilineTextBox::BeforeControlTemplateUninstalled_() + void GuiCommonDatePickerLook::buttonDay_SelectedChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; + if (!preventButtonEvent) + { + GuiSelectableButton* button = dynamic_cast(sender->GetRelatedControl()); + if (button->GetSelected()) + { + vint index = buttonDays.IndexOf(button); + if (index != -1) + { + DateTime day = dateDays[index]; + if (day.year != currentDate.year || day.month != currentDate.month) + { + SetDate(day); + } + else + { + currentDate = day; + } - ct->SetCommands(nullptr); + GuiEventArgs arguments(this); + DateChanged.Execute(arguments); + commands->NotifyDateChanged(); + commands->NotifyDateSelected(); + } + } + } } - void GuiMultilineTextBox::AfterControlTemplateInstalled_(bool initialize) + void GuiCommonDatePickerLook::DisplayMonth(vint year, vint month) { - auto ct = TypedControlTemplateObject(true); - Array colors(1); - colors[0] = ct->GetTextColor(); - textElement->SetColors(colors); - textElement->SetCaretColor(ct->GetCaretColor()); - ct->SetCommands(commandExecutor.Obj()); - } + if (YearFirst <= year && year <= YearLast && 1 <= month && month <= 12) + { + preventComboEvent = true; + comboYear->SetSelectedIndex(year - YearFirst); + comboMonth->SetSelectedIndex(month - 1); + preventComboEvent = false; + } - void GuiMultilineTextBox::UpdateVisuallyEnabled() - { - GuiControl::UpdateVisuallyEnabled(); - textElement->SetVisuallyEnabled(GetVisuallyEnabled()); - } + vint yearPrev = year, yearNext = year, monthPrev = month, monthNext = month; + StepPreviousMonth(yearPrev, monthPrev); + StepNextMonth(yearNext, monthNext); - void GuiMultilineTextBox::UpdateDisplayFont() - { - GuiControl::UpdateDisplayFont(); - textElement->SetFont(GetDisplayFont()); - CalculateViewAndSetScroll(); - } + vint countPrev = GetDayCountForMonth(yearPrev, monthPrev); + vint count = GetDayCountForMonth(year, month); + vint countNext = GetDayCountForMonth(yearNext, monthNext); - void GuiMultilineTextBox::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) - { - CalculateViewAndSetScroll(); - GuiScrollView::OnRenderTargetChanged(renderTarget); - } + DateTime firstDay = DateTime::FromDateTime(year, month, 1); + vint showPrev = firstDay.dayOfWeek; + if (showPrev == 0) showPrev = DaysOfWeek; + vint show = count; + vint showNext = DaysOfWeek*DayRows - showPrev - show; - Size GuiMultilineTextBox::QueryFullSize() - { - TextLines& lines = textElement->GetLines(); - return Size(lines.GetMaxWidth() + TextMargin * 2, lines.GetMaxHeight() + TextMargin * 2); + vint index = 0; + for (vint i = 0; i < showPrev; i++) + { + DateTime day = DateTime::FromDateTime(yearPrev, monthPrev, countPrev - (showPrev - i - 1)); + SetDay(day, index, -1); + } + for (vint i = 0; i < show; i++) + { + DateTime day = DateTime::FromDateTime(year, month, i + 1); + SetDay(day, index, 0); + } + for (vint i = 0; i < showNext; i++) + { + DateTime day = DateTime::FromDateTime(yearNext, monthNext, i + 1); + SetDay(day, index, 1); + } } - void GuiMultilineTextBox::UpdateView(Rect viewBounds) + void GuiCommonDatePickerLook::SelectDay(vint day) { - textElement->SetViewPosition(viewBounds.LeftTop() - Size(TextMargin, TextMargin)); + for (vint i = 0; i < dateDays.Count(); i++) + { + const DateTime& dt = dateDays[i]; + if (dt.year == currentDate.year && dt.month == currentDate.month && dt.day == day) + { + preventButtonEvent = true; + buttonDays[i]->SetSelected(true); + preventButtonEvent = false; + break; + } + } } - void GuiMultilineTextBox::CalculateViewAndSetScroll() + GuiCommonDatePickerLook::GuiCommonDatePickerLook(Color _backgroundColor, Color _primaryTextColor, Color _secondaryTextColor) + :backgroundColor(_backgroundColor) + , primaryTextColor(_primaryTextColor) + , secondaryTextColor(_secondaryTextColor) { - auto ct = TypedControlTemplateObject(true); - CalculateView(); - vint smallMove = textElement->GetLines().GetRowHeight(); - vint bigMove = smallMove * 5; + DateChanged.SetAssociatedComposition(this); + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - if (auto scroll = ct->GetHorizontalScroll()) + GuiTableComposition* monthTable = 0; + GuiTableComposition* dayTable = 0; { - scroll->SetSmallMove(smallMove); - scroll->SetBigMove(bigMove); + listYears = new GuiTextList(theme::ThemeName::TextList); + listYears->SetHorizontalAlwaysVisible(false); + for (vint i = YearFirst; i <= YearLast; i++) + { + listYears->GetItems().Add(Ptr(new list::TextItem(itow(i)))); + } + comboYear = new GuiComboBoxListControl(theme::ThemeName::ComboBox, listYears); + comboYear->SetAlt(L"Y"); + comboYear->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 2, 0)); + comboYear->SelectedIndexChanged.AttachMethod(this, &GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged); } - - if (auto scroll = ct->GetVerticalScroll()) { - scroll->SetSmallMove(smallMove); - scroll->SetBigMove(bigMove); + listMonths = new GuiTextList(theme::ThemeName::TextList); + listMonths->SetHorizontalAlwaysVisible(false); + comboMonth = new GuiComboBoxListControl(theme::ThemeName::ComboBox, listMonths); + comboMonth->SetAlt(L"M"); + comboMonth->GetBoundsComposition()->SetAlignmentToParent(Margin(2, 0, 0, 0)); + comboMonth->SelectedIndexChanged.AttachMethod(this, &GuiCommonDatePickerLook::comboYearMonth_SelectedIndexChanged); } - } - - void GuiMultilineTextBox::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) - { - if(GetVisuallyEnabled()) { - SetFocus(); + monthTable = new GuiTableComposition; + monthTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + monthTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + monthTable->SetRowsAndColumns(1, 2); + monthTable->SetRowOption(0, GuiCellOption::MinSizeOption()); + monthTable->SetColumnOption(0, GuiCellOption::PercentageOption(0.5)); + monthTable->SetColumnOption(1, GuiCellOption::PercentageOption(0.5)); + { + GuiCellComposition* cell = new GuiCellComposition; + monthTable->AddChild(cell); + cell->SetSite(0, 0, 1, 1); + cell->AddChild(comboYear->GetBoundsComposition()); + } + { + GuiCellComposition* cell = new GuiCellComposition; + monthTable->AddChild(cell); + cell->SetSite(0, 1, 1, 1); + cell->AddChild(comboMonth->GetBoundsComposition()); + } } - } - - GuiMultilineTextBox::GuiMultilineTextBox(theme::ThemeName themeName) - :GuiScrollView(themeName) - { - textElement = GuiColorizedTextElement::Create(); - textElement->SetFont(GetDisplayFont()); + { + dayTable = new GuiTableComposition; + dayTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + dayTable->SetCellPadding(4); + dayTable->SetRowsAndColumns(DayRows + DayRowStart, DaysOfWeek); - textComposition = new GuiBoundsComposition; - textComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - textComposition->SetOwnedElement(textElement); - containerComposition->AddChild(textComposition); + for (vint i = 0; i < DayRowStart; i++) + { + dayTable->SetRowOption(i, GuiCellOption::MinSizeOption()); + } + for (vint i = 0; i < DayRows; i++) + { + dayTable->SetRowOption(i + DayRowStart, GuiCellOption::PercentageOption(1.0)); + } + for (vint i = 0; i < DaysOfWeek; i++) + { + dayTable->SetColumnOption(i, GuiCellOption::PercentageOption(1.0)); + } - callback = new TextElementOperatorCallback(this); - commandExecutor = new CommandExecutor(this); + { + GuiCellComposition* cell = new GuiCellComposition; + dayTable->AddChild(cell); + cell->SetSite(0, 0, 1, DaysOfWeek); + cell->AddChild(monthTable); + } - SetAcceptTabInput(true); - SetFocusableComposition(boundsComposition); - Install(textElement, textComposition, this, boundsComposition, focusableComposition); - SetCallback(callback.Obj()); + labelDaysOfWeek.Resize(7); + for (vint i = 0; i < DaysOfWeek; i++) + { + GuiCellComposition* cell = new GuiCellComposition; + dayTable->AddChild(cell); + cell->SetSite(1, i, 1, 1); - boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); - } + auto element = Ptr(GuiSolidLabelElement::Create()); + element->SetAlignments(Alignment::Center, Alignment::Center); + element->SetColor(primaryTextColor); + labelDaysOfWeek[i] = element.Obj(); + cell->SetOwnedElement(element); + } - GuiMultilineTextBox::~GuiMultilineTextBox() - { - } + buttonDays.Resize(DaysOfWeek*DayRows); + labelDays.Resize(DaysOfWeek*DayRows); + dateDays.Resize(DaysOfWeek*DayRows); - const WString& GuiMultilineTextBox::GetText() - { - text = textElement->GetLines().GetText(); - return text; - } + auto dayMutexController = new GuiSelectableButton::MutexGroupController; + AddComponent(dayMutexController); - void GuiMultilineTextBox::SetText(const WString& value) - { - UnsafeSetText(value); - textElement->SetCaretBegin(TextPos(0, 0)); - textElement->SetCaretEnd(TextPos(0, 0)); - CalculateView(); - } + for (vint i = 0; i < DaysOfWeek; i++) + { + for (vint j = 0; j < DayRows; j++) + { + GuiCellComposition* cell = new GuiCellComposition; + dayTable->AddChild(cell); + cell->SetSite(j + DayRowStart, i, 1, 1); -/*********************************************************************** -GuiSinglelineTextBox::DefaultTextElementOperatorCallback -***********************************************************************/ + GuiSelectableButton* button = new GuiSelectableButton(theme::ThemeName::CheckBox); + button->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + button->SetGroupController(dayMutexController); + button->SelectedChanged.AttachMethod(this, &GuiCommonDatePickerLook::buttonDay_SelectedChanged); + cell->AddChild(button->GetBoundsComposition()); + buttonDays[j*DaysOfWeek + i] = button; - GuiSinglelineTextBox::TextElementOperatorCallback::TextElementOperatorCallback(GuiSinglelineTextBox* _textControl) - :GuiTextBoxCommonInterface::DefaultCallback( - _textControl->textElement, - _textControl->textComposition - ) - { - } + auto element = Ptr(GuiSolidLabelElement::Create()); + element->SetAlignments(Alignment::Center, Alignment::Center); + element->SetText(L"0"); + labelDays[j*DaysOfWeek + i] = element.Obj(); - bool GuiSinglelineTextBox::TextElementOperatorCallback::BeforeModify(TextPos start, TextPos end, const WString& originalText, WString& inputText) - { - vint length = inputText.Length(); - const wchar_t* input = inputText.Buffer(); - for (vint i = 0; i < length; i++) - { - if (*input == 0 || *input == L'\r' || *input == L'\n') - { - length = i; - break; + GuiBoundsComposition* elementBounds = new GuiBoundsComposition; + elementBounds->SetOwnedElement(element); + elementBounds->SetAlignmentToParent(Margin(0, 0, 0, 0)); + elementBounds->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); + button->GetContainerComposition()->AddChild(elementBounds); + } } } - if (length != inputText.Length()) { - if (length == 0) - { - // if the first line is empty after adjustment - // the input should just be canceled - // to prevent from making noise in undo - return false; - } - inputText = inputText.Left(length); + auto element = Ptr(GuiSolidBackgroundElement::Create()); + element->SetColor(backgroundColor); + dayTable->SetOwnedElement(element); } - return true; - } - void GuiSinglelineTextBox::TextElementOperatorCallback::AfterModify(TextPos originalStart, TextPos originalEnd, const WString& originalText, TextPos inputStart, TextPos inputEnd, const WString& inputText) - { - } - - void GuiSinglelineTextBox::TextElementOperatorCallback::ScrollToView(Point point) - { - vint newX=point.x; - vint oldX=textElement->GetViewPosition().x; - vint marginX=0; - if(oldXnewX) - { - marginX=-TextMargin; - } + dayTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + AddChild(dayTable); - newX+=marginX; - vint minX=-TextMargin; - vint maxX=textElement->GetLines().GetMaxWidth()+TextMargin-textComposition->GetBounds().Width(); - if(newX>=maxX) - { - newX=maxX-1; - } - if(newXSetViewPosition(Point(newX, -TextMargin)); + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + SetFont(font); } - vint GuiSinglelineTextBox::TextElementOperatorCallback::GetTextMargin() + GuiCommonDatePickerLook::~GuiCommonDatePickerLook() { - return TextMargin; + FinalizeInstanceRecursively(this); } -/*********************************************************************** -GuiSinglelineTextBox -***********************************************************************/ - - void GuiSinglelineTextBox::BeforeControlTemplateUninstalled_() + controls::IDatePickerCommandExecutor* GuiCommonDatePickerLook::GetCommands() { + return commands; } - void GuiSinglelineTextBox::AfterControlTemplateInstalled_(bool initialize) + void GuiCommonDatePickerLook::SetCommands(controls::IDatePickerCommandExecutor* value) { - auto ct = TypedControlTemplateObject(true); - Array colors(1); - colors[0] = ct->GetTextColor(); - textElement->SetColors(colors); - textElement->SetCaretColor(ct->GetCaretColor()); + commands = value; } - void GuiSinglelineTextBox::UpdateVisuallyEnabled() + TemplateProperty GuiCommonDatePickerLook::GetDateButtonTemplate() { - GuiControl::UpdateVisuallyEnabled(); - textElement->SetVisuallyEnabled(GetVisuallyEnabled()); + return dateButtonTemplate; } - void GuiSinglelineTextBox::UpdateDisplayFont() + void GuiCommonDatePickerLook::SetDateButtonTemplate(const TemplateProperty& value) { - GuiControl::UpdateDisplayFont(); - textElement->SetFont(GetDisplayFont()); - RearrangeTextElement(); + dateButtonTemplate = value; + for (auto button : buttonDays) + { + button->SetControlTemplate(value); + } } - void GuiSinglelineTextBox::RearrangeTextElement() + TemplateProperty GuiCommonDatePickerLook::GetDateTextListTemplate() { - textCompositionTable->SetRowOption( - 1, - GuiCellOption::AbsoluteOption( - textElement->GetLines().GetRowHeight() + 2 * TextMargin) - ); + return dateTextListTemplate; } - void GuiSinglelineTextBox::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) + void GuiCommonDatePickerLook::SetDateTextListTemplate(const TemplateProperty& value) { - GuiControl::OnRenderTargetChanged(renderTarget); - RearrangeTextElement(); + dateTextListTemplate = value; + listYears->SetControlTemplate(value); + listMonths->SetControlTemplate(value); } - void GuiSinglelineTextBox::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) + TemplateProperty GuiCommonDatePickerLook::GetDateComboBoxTemplate() { - if(GetVisuallyEnabled()) - { - SetFocus(); - } + return dateComboBoxTemplate; } - GuiSinglelineTextBox::GuiSinglelineTextBox(theme::ThemeName themeName) - :GuiControl(themeName) - { - textElement = GuiColorizedTextElement::Create(); - textElement->SetFont(GetDisplayFont()); - textElement->SetViewPosition(Point(-GuiSinglelineTextBox::TextMargin, -GuiSinglelineTextBox::TextMargin)); - - textCompositionTable = new GuiTableComposition; - textCompositionTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - textCompositionTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); - textCompositionTable->SetRowsAndColumns(3, 1); - textCompositionTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); - textCompositionTable->SetRowOption(1, GuiCellOption::AbsoluteOption(0)); - textCompositionTable->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); - textCompositionTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); - containerComposition->AddChild(textCompositionTable); - - textComposition = new GuiCellComposition; - textComposition->SetOwnedElement(textElement); - textCompositionTable->AddChild(textComposition); - textComposition->SetSite(1, 0, 1, 1); - - callback = new TextElementOperatorCallback(this); - SetAcceptTabInput(true); - SetFocusableComposition(boundsComposition); - Install(textElement, textComposition, this, boundsComposition, focusableComposition); - SetCallback(callback.Obj()); - - boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); - boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); - } - - GuiSinglelineTextBox::~GuiSinglelineTextBox() - { - } - - const WString& GuiSinglelineTextBox::GetText() - { - text = textElement->GetLines().GetText(); - return text; - } - - void GuiSinglelineTextBox::SetText(const WString& value) + void GuiCommonDatePickerLook::SetDateComboBoxTemplate(const TemplateProperty& value) { - UnsafeSetText(value); - textElement->SetCaretBegin(TextPos(0, 0)); - textElement->SetCaretEnd(TextPos(0, 0)); + dateComboBoxTemplate = value; + comboYear->SetControlTemplate(value); + comboMonth->SetControlTemplate(value); } - wchar_t GuiSinglelineTextBox::GetPasswordChar() + const Locale& GuiCommonDatePickerLook::GetDateLocale() { - return textElement->GetPasswordChar(); + return dateLocale; } - void GuiSinglelineTextBox::SetPasswordChar(wchar_t value) + void GuiCommonDatePickerLook::SetDateLocale(const Locale& value) { - textElement->SetPasswordChar(value); - } - } - } -} - -/*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTAUTOCOMPLETE.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace collections; + if (dateLocale != value) + { + dateLocale = value; + for (vint i = 0; i < DaysOfWeek; i++) + { + labelDaysOfWeek[i]->SetText(dateLocale.GetShortDayOfWeekName(i)); + } -/*********************************************************************** -GuiTextBoxAutoCompleteBase::TextListControlProvider -***********************************************************************/ + listMonths->GetItems().Clear(); + for (vint i = 1; i <= 12; i++) + { + listMonths->GetItems().Add(Ptr(new list::TextItem(dateLocale.GetLongMonthName(i)))); + } - GuiTextBoxAutoCompleteBase::TextListControlProvider::TextListControlProvider(TemplateProperty controlTemplate) - { - autoCompleteList = new GuiTextList(theme::ThemeName::TextList); - if (controlTemplate) - { - autoCompleteList->SetControlTemplate(controlTemplate); + SetDate(currentDate); } - autoCompleteList->SetHorizontalAlwaysVisible(false); - autoCompleteList->SetVerticalAlwaysVisible(false); } - GuiTextBoxAutoCompleteBase::TextListControlProvider::~TextListControlProvider() + const DateTime& GuiCommonDatePickerLook::GetDate() { + return currentDate; } - GuiControl* GuiTextBoxAutoCompleteBase::TextListControlProvider::GetAutoCompleteControl() + void GuiCommonDatePickerLook::SetDate(const DateTime& value) { - return autoCompleteList; + currentDate = value; + DisplayMonth(value.year, value.month); + SelectDay(value.day); } - GuiSelectableListControl* GuiTextBoxAutoCompleteBase::TextListControlProvider::GetListControl() + const FontProperties& GuiCommonDatePickerLook::GetFont() { - return autoCompleteList; + return font; } - void GuiTextBoxAutoCompleteBase::TextListControlProvider::SetSortedContent(const collections::List& items) + void GuiCommonDatePickerLook::SetFont(const FontProperties& value) { - autoCompleteList->GetItems().Clear(); - for (auto item : items) + if (font != value) { - autoCompleteList->GetItems().Add(new list::TextItem(item.text)); + font = value; + comboYear->SetFont(value); + listYears->SetFont(value); + comboMonth->SetFont(value); + listMonths->SetFont(value); + for (auto label : From(labelDaysOfWeek).Concat(labelDays)) + { + label->SetFont(value); + } } } - vint GuiTextBoxAutoCompleteBase::TextListControlProvider::GetItemCount() - { - return autoCompleteList->GetItems().Count(); - } - - WString GuiTextBoxAutoCompleteBase::TextListControlProvider::GetItemText(vint index) - { - return autoCompleteList->GetItems()[index]->GetText(); - } - /*********************************************************************** -GuiTextBoxAutoCompleteBase +GuiCommonScrollViewLook ***********************************************************************/ - bool GuiTextBoxAutoCompleteBase::IsPrefix(const WString& prefix, const WString& candidate) + void GuiCommonScrollViewLook::UpdateTable() { - if(candidate.Length()>=prefix.Length()) + if (horizontalScroll->GetVisible()) { - if(INVLOC.Compare(prefix, candidate.Sub(0, prefix.Length()), Locale::IgnoreCase)==0) - { - return true; - } + tableComposition->SetRowOption(1, GuiCellOption::AbsoluteOption(defaultScrollSize)); + } + else + { + tableComposition->SetRowOption(1, GuiCellOption::AbsoluteOption(0)); } - return false; - } - GuiTextBoxAutoCompleteBase::GuiTextBoxAutoCompleteBase(Ptr _autoCompleteControlProvider) - :element(0) - , elementModifyLock(0) - , ownerComposition(0) - , autoCompleteControlProvider(_autoCompleteControlProvider) - { - if (!autoCompleteControlProvider) + if (verticalScroll->GetVisible()) { - autoCompleteControlProvider = new TextListControlProvider; + tableComposition->SetColumnOption(1, GuiCellOption::AbsoluteOption(defaultScrollSize)); + } + else + { + tableComposition->SetColumnOption(1, GuiCellOption::AbsoluteOption(0)); } - autoCompleteControlProvider->GetAutoCompleteControl()->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - autoCompletePopup = new GuiPopup(theme::ThemeName::Menu); - autoCompletePopup->AddChild(autoCompleteControlProvider->GetAutoCompleteControl()); + tableComposition->UpdateCellBounds(); } - GuiTextBoxAutoCompleteBase::~GuiTextBoxAutoCompleteBase() + void GuiCommonScrollViewLook::hScroll_OnVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - delete autoCompletePopup; + UpdateTable(); } - void GuiTextBoxAutoCompleteBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) + void GuiCommonScrollViewLook::vScroll_OnVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if(_element) - { - SPIN_LOCK(_elementModifyLock) - { - element=_element; - elementModifyLock=&_elementModifyLock; - ownerComposition=_ownerComposition; - } - } + UpdateTable(); } - void GuiTextBoxAutoCompleteBase::Detach() + GuiCommonScrollViewLook::GuiCommonScrollViewLook(vint _defaultScrollSize) + :defaultScrollSize(_defaultScrollSize) { - if(element && elementModifyLock) + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + + horizontalScroll = new GuiScroll(theme::ThemeName::HScroll); + horizontalScroll->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + horizontalScroll->SetEnabled(false); + horizontalScroll->SetAutoFocus(false); + verticalScroll = new GuiScroll(theme::ThemeName::VScroll); + verticalScroll->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + verticalScroll->SetEnabled(false); + verticalScroll->SetAutoFocus(false); + + tableComposition = new GuiTableComposition; + AddChild(tableComposition); + tableComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + tableComposition->SetRowsAndColumns(2, 2); + tableComposition->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); + tableComposition->SetRowOption(1, GuiCellOption::MinSizeOption()); + tableComposition->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); + tableComposition->SetColumnOption(1, GuiCellOption::MinSizeOption()); + UpdateTable(); { - SPIN_LOCK(*elementModifyLock) - { - element=0; - elementModifyLock=0; - } + GuiCellComposition* cell = new GuiCellComposition; + tableComposition->AddChild(cell); + cell->SetSite(1, 0, 1, 1); + cell->AddChild(horizontalScroll->GetBoundsComposition()); + } + { + GuiCellComposition* cell = new GuiCellComposition; + tableComposition->AddChild(cell); + cell->SetSite(0, 1, 1, 1); + cell->AddChild(verticalScroll->GetBoundsComposition()); } - } - void GuiTextBoxAutoCompleteBase::TextEditPreview(TextEditPreviewStruct& arguments) - { + containerCellComposition = new GuiCellComposition; + tableComposition->AddChild(containerCellComposition); + containerCellComposition->SetSite(0, 0, 1, 1); + + containerComposition = new GuiBoundsComposition; + containerComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + containerCellComposition->AddChild(containerComposition); + + horizontalScroll->VisibleChanged.AttachMethod(this, &GuiCommonScrollViewLook::hScroll_OnVisibleChanged); + verticalScroll->VisibleChanged.AttachMethod(this, &GuiCommonScrollViewLook::vScroll_OnVisibleChanged); + UpdateTable(); } - void GuiTextBoxAutoCompleteBase::TextEditNotify(const TextEditNotifyStruct& arguments) + GuiCommonScrollViewLook::~GuiCommonScrollViewLook() { - if(element && elementModifyLock) - { - if(IsListOpening()) - { - TextPos begin=GetListStartPosition(); - TextPos end=arguments.inputEnd; - WString editingText=element->GetLines().GetText(begin, end); - HighlightList(editingText); - } - } } - void GuiTextBoxAutoCompleteBase::TextCaretChanged(const TextCaretChangedStruct& arguments) + controls::GuiScroll* GuiCommonScrollViewLook::GetHScroll() { + return horizontalScroll; } - void GuiTextBoxAutoCompleteBase::TextEditFinished(vuint editVersion) + controls::GuiScroll* GuiCommonScrollViewLook::GetVScroll() { + return verticalScroll; } - bool GuiTextBoxAutoCompleteBase::IsListOpening() + compositions::GuiGraphicsComposition* GuiCommonScrollViewLook::GetContainerComposition() { - return autoCompletePopup->GetOpening(); + return containerComposition; } - void GuiTextBoxAutoCompleteBase::OpenList(TextPos startPosition) + TemplateProperty GuiCommonScrollViewLook::GetHScrollTemplate() { - if(element && elementModifyLock) - { - autoCompleteStartPosition=startPosition; - Rect bounds=element->GetLines().GetRectFromTextPos(startPosition); - Point viewPosition=element->GetViewPosition(); - GuiControl* ownerControl=ownerComposition->GetRelatedControl(); - Rect compositionBounds=ownerComposition->GetGlobalBounds(); - Rect controlBounds=ownerControl->GetBoundsComposition()->GetGlobalBounds(); - vint px=compositionBounds.x1-controlBounds.x1-viewPosition.x; - vint py=compositionBounds.y1-controlBounds.y1-viewPosition.y; - bounds.x1+=px; - bounds.x2+=px; - bounds.y1+=py+5; - bounds.y2+=py+5; - autoCompletePopup->ShowPopup(ownerControl, bounds, true); - } + return hScrollTemplate; } - void GuiTextBoxAutoCompleteBase::CloseList() + void GuiCommonScrollViewLook::SetHScrollTemplate(const TemplateProperty& value) { - autoCompletePopup->Close(); + hScrollTemplate = value; + horizontalScroll->SetControlTemplate(value); } - void GuiTextBoxAutoCompleteBase::SetListContent(const collections::List& items) + TemplateProperty GuiCommonScrollViewLook::GetVScrollTemplate() { - if(items.Count()==0) - { - CloseList(); - } - - List sortedItems; - CopyFrom( - sortedItems, - From(items) - .OrderBy([](const AutoCompleteItem& a, const AutoCompleteItem& b) - { - return INVLOC.Compare(a.text, b.text, Locale::IgnoreCase); - }) - ); - - autoCompleteControlProvider->SetSortedContent(sortedItems); - autoCompleteControlProvider->GetAutoCompleteControl()->GetBoundsComposition()->SetPreferredMinSize(Size(200, 200)); + return vScrollTemplate; } - TextPos GuiTextBoxAutoCompleteBase::GetListStartPosition() + void GuiCommonScrollViewLook::SetVScrollTemplate(const TemplateProperty& value) { - return autoCompleteStartPosition; + vScrollTemplate = value; + verticalScroll->SetControlTemplate(value); } - bool GuiTextBoxAutoCompleteBase::SelectPreviousListItem() +/*********************************************************************** +GuiCommonScrollBehavior +***********************************************************************/ + + void GuiCommonScrollBehavior::SetScroll(vint totalPixels, vint newOffset) { - if(!IsListOpening()) return false; - if(autoCompleteControlProvider->GetListControl()->GetSelectedItems().Count()==0) + vint totalSize = scrollTemplate->GetTotalSize(); + double ratio = (double)newOffset / totalPixels; + vint newPosition = (vint)round(ratio * totalSize); + + vint offset1 = (vint)round(((double)newPosition / totalSize) * totalPixels); + vint offset2 = (vint)round(((double)(newPosition + 1)) / totalSize * totalPixels); + vint delta1 = offset1 - newOffset; + vint delta2 = offset2 - newOffset; + + if (delta1 < 0) { delta1 = -delta1; } + if (delta2 < 0) { delta2 = -delta2; } + + if (delta1 < delta2) { - autoCompleteControlProvider->GetListControl()->SetSelected(0, true); + scrollTemplate->GetCommands()->SetPosition(newPosition); } else { - vint index=autoCompleteControlProvider->GetListControl()->GetSelectedItems()[0]; - if (index > 0) index--; - autoCompleteControlProvider->GetListControl()->SetSelected(index, true); - autoCompleteControlProvider->GetListControl()->EnsureItemVisible(index); + scrollTemplate->GetCommands()->SetPosition(newPosition + 1); } - return true; } - bool GuiTextBoxAutoCompleteBase::SelectNextListItem() + void GuiCommonScrollBehavior::AttachHandle(compositions::GuiGraphicsComposition* handle) { - if(!IsListOpening()) return false; - if (autoCompleteControlProvider->GetListControl()->GetSelectedItems().Count() == 0) + handle->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) { - autoCompleteControlProvider->GetListControl()->SetSelected(0, true); - } - else + if (scrollTemplate->GetVisuallyEnabled()) + { + dragging = true; + location.x = arguments.x; + location.y = arguments.y; + } + }); + + handle->GetEventReceiver()->leftButtonUp.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs&) { - vint index = autoCompleteControlProvider->GetListControl()->GetSelectedItems()[0]; - if (index < autoCompleteControlProvider->GetItemCount() - 1) index++; - autoCompleteControlProvider->GetListControl()->SetSelected(index, true); - autoCompleteControlProvider->GetListControl()->EnsureItemVisible(index); - } - return true; + if (scrollTemplate->GetVisuallyEnabled()) + { + dragging = false; + } + }); } - bool GuiTextBoxAutoCompleteBase::ApplySelectedListItem() + GuiCommonScrollBehavior::GuiCommonScrollBehavior() { - if(!IsListOpening()) return false; - if(!ownerComposition) return false; - const auto& selectedItems = autoCompleteControlProvider->GetListControl()->GetSelectedItems(); - if (selectedItems.Count() == 0) return false; - GuiTextBoxCommonInterface* ci=dynamic_cast(ownerComposition->GetRelatedControl()); - if(!ci) return false; + } - vint index = selectedItems[0]; - WString selectedItem = autoCompleteControlProvider->GetItemText(index); - TextPos begin = autoCompleteStartPosition; - TextPos end = ci->GetCaretEnd(); - ci->Select(begin, end); - ci->SetSelectionText(selectedItem); - CloseList(); - return true; + GuiCommonScrollBehavior::~GuiCommonScrollBehavior() + { } - WString GuiTextBoxAutoCompleteBase::GetSelectedListItem() + void GuiCommonScrollBehavior::AttachScrollTemplate(GuiScrollTemplate* value) { - if(!IsListOpening()) return L""; - const auto& selectedItems = autoCompleteControlProvider->GetListControl()->GetSelectedItems(); - if (selectedItems.Count() == 0) return L""; - vint index = selectedItems[0]; - return autoCompleteControlProvider->GetItemText(index); + scrollTemplate = value; } - void GuiTextBoxAutoCompleteBase::HighlightList(const WString& editingText) + void GuiCommonScrollBehavior::AttachDecreaseButton(controls::GuiButton* button) { - if(IsListOpening()) + button->Clicked.AttachLambda([=](GuiGraphicsComposition*, GuiEventArgs&) { - vint first=0; - vint last = autoCompleteControlProvider->GetItemCount() - 1; - vint selected=-1; + scrollTemplate->GetCommands()->SmallDecrease(); + }); + } - while (first <= last) - { - vint middle = (first + last) / 2; - WString text = autoCompleteControlProvider->GetItemText(middle); - if (IsPrefix(editingText, text)) - { - selected = middle; - break; - } + void GuiCommonScrollBehavior::AttachIncreaseButton(controls::GuiButton* button) + { + button->Clicked.AttachLambda([=](GuiGraphicsComposition*, GuiEventArgs&) + { + scrollTemplate->GetCommands()->SmallIncrease(); + }); + } - vint result = INVLOC.Compare(editingText, text, Locale::IgnoreCase); - if (result <= 0) + void GuiCommonScrollBehavior::AttachHorizontalScrollHandle(compositions::GuiPartialViewComposition* partialView) + { + partialView->GetParent()->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) + { + if (scrollTemplate->GetVisuallyEnabled()) + { + if (arguments.x < partialView->GetBounds().x1) { - last = middle - 1; + scrollTemplate->GetCommands()->BigDecrease(); } - else + else if (arguments.x >= partialView->GetBounds().x2) { - first = middle + 1; + scrollTemplate->GetCommands()->BigIncrease(); } } + }); - while(selected>0) + AttachHorizontalTrackerHandle(partialView); + } + + void GuiCommonScrollBehavior::AttachVerticalScrollHandle(compositions::GuiPartialViewComposition* partialView) + { + partialView->GetParent()->GetEventReceiver()->leftButtonDown.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) + { + if (scrollTemplate->GetVisuallyEnabled()) { - WString text = autoCompleteControlProvider->GetItemText(selected - 1); - if (IsPrefix(editingText, text)) + if (arguments.y < partialView->GetBounds().y1) { - selected--; + scrollTemplate->GetCommands()->BigDecrease(); } - else + else if (arguments.y >= partialView->GetBounds().y2) { - break; + scrollTemplate->GetCommands()->BigIncrease(); } } + }); - if(selected!=-1) + AttachVerticalTrackerHandle(partialView); + } + + void GuiCommonScrollBehavior::AttachHorizontalTrackerHandle(compositions::GuiPartialViewComposition* partialView) + { + partialView->GetEventReceiver()->mouseMove.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) + { + if (dragging) { - autoCompleteControlProvider->GetListControl()->SetSelected(selected, true); - autoCompleteControlProvider->GetListControl()->EnsureItemVisible(selected); + auto bounds = partialView->GetParent()->GetBounds(); + vint totalPixels = bounds.x2 - bounds.x1; + vint currentOffset = partialView->GetBounds().x1; + vint newOffset = currentOffset + (arguments.x - location.x); + SetScroll(totalPixels, newOffset); } - } + }); + + AttachHandle(partialView); + } + + void GuiCommonScrollBehavior::AttachVerticalTrackerHandle(compositions::GuiPartialViewComposition* partialView) + { + partialView->GetEventReceiver()->mouseMove.AttachLambda([=](GuiGraphicsComposition*, GuiMouseEventArgs& arguments) + { + if (dragging) + { + auto bounds = partialView->GetParent()->GetBounds(); + vint totalPixels = bounds.y2 - bounds.y1; + vint currentOffset = partialView->GetBounds().y1; + vint newOffset = currentOffset + (arguments.y - location.y); + SetScroll(totalPixels, newOffset); + } + }); + + AttachHandle(partialView); + } + + vint GuiCommonScrollBehavior::GetHorizontalTrackerHandlerPosition(compositions::GuiBoundsComposition* handle, vint totalSize, vint pageSize, vint position) + { + vint width = handle->GetParent()->GetBounds().Width() - handle->GetBounds().Width(); + vint max = totalSize - pageSize; + return max == 0 ? 0 : width * position / max; + } + + vint GuiCommonScrollBehavior::GetVerticalTrackerHandlerPosition(compositions::GuiBoundsComposition* handle, vint totalSize, vint pageSize, vint position) + { + vint height = handle->GetParent()->GetBounds().Height() - handle->GetBounds().Height(); + vint max = totalSize - pageSize; + return max == 0 ? 0 : height * position / max; } } } } /*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTCOLORIZER.CPP +.\CONTROLS\TEMPLATES\GUICONTROLTEMPLATES.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace controls + namespace templates { + using namespace collections; + using namespace controls; + using namespace compositions; using namespace elements; - using namespace elements::text; /*********************************************************************** -GuiTextBoxColorizerBase +Item GuiListItemTemplate ***********************************************************************/ - void GuiTextBoxColorizerBase::ColorizerThreadProc(void* argument) + void GuiListItemTemplate::OnInitialize() { - GuiTextBoxColorizerBase* colorizer=(GuiTextBoxColorizerBase*)argument; - while(!colorizer->isFinalizing) - { - vint lineIndex=-1; - wchar_t* text=0; - vuint32_t* colors=0; - vint length=0; - vint lexerState=-1; - vint contextState=-1; - - SPIN_LOCK(*colorizer->elementModifyLock) - { - if(colorizer->colorizedLineCount>=colorizer->element->GetLines().GetCount()) - { - colorizer->isColorizerRunning=false; - goto CANCEL_COLORIZING; - } - - lineIndex=colorizer->colorizedLineCount++; - TextLine& line=colorizer->element->GetLines().GetLine(lineIndex); - length=line.dataLength; - text=new wchar_t[length+2]; - colors=new vuint32_t[length+2]; - memcpy(text, line.text, sizeof(wchar_t)*length); - text[length]=L'\r'; - text[length+1]=L'\n'; - lexerState=lineIndex==0?colorizer->GetLexerStartState():colorizer->element->GetLines().GetLine(lineIndex-1).lexerFinalState; - contextState=lineIndex==0?colorizer->GetContextStartState():colorizer->element->GetLines().GetLine(lineIndex-1).contextFinalState; - } - - colorizer->ColorizeLineWithCRLF(lineIndex, text, colors, length+2, lexerState, contextState); - - SPIN_LOCK(*colorizer->elementModifyLock) - { - if(lineIndexcolorizedLineCount && lineIndexelement->GetLines().GetCount()) - { - TextLine& line=colorizer->element->GetLines().GetLine(lineIndex); - line.lexerFinalState=lexerState; - line.contextFinalState=contextState; - for(vint i=0;icolorizerRunningEvent.Leave(); } - void GuiTextBoxColorizerBase::StartColorizer() + GuiListItemTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_IMPL) + + GuiListItemTemplate::GuiListItemTemplate() { - if(!isColorizerRunning) - { - isColorizerRunning=true; - colorizerRunningEvent.Enter(); - ThreadPoolLite::Queue(&GuiTextBoxColorizerBase::ColorizerThreadProc, this); - } + GuiListItemTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_EVENT_INIT) } - void GuiTextBoxColorizerBase::StopColorizer(bool forever) + GuiListItemTemplate::~GuiListItemTemplate() { - isFinalizing=true; - colorizerRunningEvent.Enter(); - colorizerRunningEvent.Leave(); - colorizedLineCount=0; - if(!forever) - { - isFinalizing=false; - } + FinalizeAggregation(); } - void GuiTextBoxColorizerBase::StopColorizerForever() + void GuiListItemTemplate::BeginEditListItem() { - StopColorizer(true); + listControl->GetItemProvider()->PushEditing(); } - GuiTextBoxColorizerBase::GuiTextBoxColorizerBase() - :element(0) - ,elementModifyLock(0) - ,colorizedLineCount(0) - ,isColorizerRunning(false) - ,isFinalizing(false) + void GuiListItemTemplate::EndEditListItem() { + CHECK_ERROR(listControl->GetItemProvider()->PopEditing(), L"GuiListItemTemplate::EndEditListItem()#BeginEditListItem and EndEditListItem calls are not paired."); } - GuiTextBoxColorizerBase::~GuiTextBoxColorizerBase() + void GuiListItemTemplate::Initialize(controls::GuiListControl* _listControl) { - StopColorizerForever(); + CHECK_ERROR(listControl == nullptr, L"GuiListItemTemplate::Initialize(GuiListControl*)#This function can only be called once."); + listControl = _listControl; + OnInitialize(); } - void GuiTextBoxColorizerBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) +/*********************************************************************** +Template Declarations +***********************************************************************/ + + GUI_CONTROL_TEMPLATE_DECL(GUI_TEMPLATE_CLASS_IMPL) + GUI_ITEM_TEMPLATE_DECL(GUI_TEMPLATE_CLASS_IMPL) + } + } +} + +/*********************************************************************** +.\CONTROLS\TEMPLATES\GUITHEMESTYLEFACTORY.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace theme + { + using namespace collections; + using namespace controls; + using namespace templates; + + class Theme : public Object, public virtual theme::ITheme { - if(_element) + public: + Dictionary> templates; + ThemeTemplates* first = nullptr; + ThemeTemplates* last = nullptr; + + bool RegisterTheme(const WString& name, Ptr theme) { - SPIN_LOCK(_elementModifyLock) + CHECK_ERROR(theme->previous == nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme object has been registered"); + CHECK_ERROR(theme->next == nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme object has been registered"); + + if (templates.Keys().Contains(name)) { - element=_element; - elementModifyLock=&_elementModifyLock; - StartColorizer(); + return false; } - } - } + templates.Add(name, theme); - void GuiTextBoxColorizerBase::Detach() - { - if(element && elementModifyLock) - { - StopColorizer(false); - SPIN_LOCK(*elementModifyLock) + if (last) { - element=0; - elementModifyLock=0; + last->next = theme.Obj(); } - } - } + theme->previous = last; + last = theme.Obj(); - void GuiTextBoxColorizerBase::TextEditPreview(TextEditPreviewStruct& arguments) - { - } + return true; + } - void GuiTextBoxColorizerBase::TextEditNotify(const TextEditNotifyStruct& arguments) - { - if(element && elementModifyLock) + Ptr UnregisterTheme(const WString& name) { - SPIN_LOCK(*elementModifyLock) + vint index = templates.Keys().IndexOf(name); + if (index == -1) { - vint line - =arguments.originalStart.rowline) - { - colorizedLineCount=line; - } - StartColorizer(); + return nullptr; } - } - } - - void GuiTextBoxColorizerBase::TextCaretChanged(const TextCaretChangedStruct& arguments) - { - } - void GuiTextBoxColorizerBase::TextEditFinished(vuint editVersion) - { - } + auto themeTemplates = templates.Values().Get(index); - void GuiTextBoxColorizerBase::RestartColorizer() - { - if(element && elementModifyLock) - { - SPIN_LOCK(*elementModifyLock) + if (themeTemplates->previous) { - colorizedLineCount=0; - StartColorizer(); + themeTemplates->previous->next = themeTemplates->next; + } + else + { + first = themeTemplates->next; } - } - } -/*********************************************************************** -GuiTextBoxRegexColorizer -***********************************************************************/ + if (themeTemplates->next) + { + themeTemplates->next->previous = themeTemplates->previous; - struct GuiTextBoxRegexColorizerProcData - { - GuiTextBoxRegexColorizer* colorizer; - vint lineIndex; - const wchar_t* text; - vuint32_t* colors; - vint contextState; - }; + } + else + { + last = themeTemplates->previous; + } - void GuiTextBoxRegexColorizer::ColorizerProc(void* argument, vint start, vint length, vint token) - { - GuiTextBoxRegexColorizerProcData& data=**(GuiTextBoxRegexColorizerProcData**)argument; - data.colorizer->ColorizeTokenContextSensitive(data.lineIndex, data.text, start, length, token, data.contextState); - for(vint i=0;i& GuiTextBoxRegexColorizer::GetTokenRegexes() - { - return tokenRegexes; - } - collections::List& GuiTextBoxRegexColorizer::GetTokenColors() - { - return tokenColors; - } + TemplateProperty CreateStyle(ThemeName themeName)override + { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::theme::ITheme::CreateStyle(ThemeName)#" + if (themeName == ThemeName::Window) + { + bool preferCustomFrameWindow = true; + auto current = last; + while (current) + { + if (current->PreferCustomFrameWindow) + { + preferCustomFrameWindow = current->PreferCustomFrameWindow.Value(); + break; + } + current = current->previous; + } - collections::List& GuiTextBoxRegexColorizer::GetExtraTokenColors() - { - return extraTokenColors; - } + CHECK_ERROR(current, ERROR_MESSAGE_PREFIX L"At least one ThemeTemplates::PreferCustomFrameWindow should be defined."); - vint GuiTextBoxRegexColorizer::GetExtraTokenIndexStart() - { - if(lexer) - { - return tokenColors.Count(); - } - else - { - return -1; - } - } + if (preferCustomFrameWindow) + { + themeName = ThemeName::CustomFrameWindow; + } + else + { + themeName = ThemeName::SystemFrameWindow; + } + } - bool GuiTextBoxRegexColorizer::SetDefaultColor(elements::text::ColorEntry value) - { - if(lexer) - { - return false; - } - else - { - defaultColor=value; - return true; - } - } + switch (themeName) + { +#define GUI_DEFINE_ITEM_PROPERTY(TEMPLATE, CONTROL) \ + case ThemeName::CONTROL:\ + {\ + auto current = last;\ + while (current) \ + {\ + if (current->CONTROL)\ + {\ + return current->CONTROL; \ + }\ + current = current->previous;\ + }\ + throw Exception(L"Control template for \"" L ## #CONTROL L"\" is not defined.");\ + }\ - vint GuiTextBoxRegexColorizer::AddToken(const WString& regex, elements::text::ColorEntry color) - { - if(lexer) - { - return -1; - } - else - { - tokenRegexes.Add(regex); - tokenColors.Add(color); - return tokenColors.Count()-1; + GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_ITEM_PROPERTY) +#undef GUI_DEFINE_ITEM_PROPERTY + default: + CHECK_FAIL(ERROR_MESSAGE_PREFIX L"Unknown theme name."); + } +#undef ERROR_MESSAGE_PREFIX } - } + }; - vint GuiTextBoxRegexColorizer::AddExtraToken(elements::text::ColorEntry color) + controls::GuiControlHost* ThemeTemplates::GetControlHostForInstance() { - if(lexer) - { - return -1; - } - else - { - extraTokenColors.Add(color); - return extraTokenColors.Count()-1; - } + return nullptr; } - void GuiTextBoxRegexColorizer::ClearTokens() + ThemeTemplates::~ThemeTemplates() { - tokenRegexes.Clear(); - tokenColors.Clear(); - extraTokenColors.Clear(); - lexer=0; + FinalizeAggregation(); } - void GuiTextBoxRegexColorizer::Setup() - { - if (lexer || tokenRegexes.Count() == 0) - { - colors.Resize(1); - colors[0] = defaultColor; - } - else - { - lexer = new regex::RegexLexer(tokenRegexes); - colors.Resize(1 + tokenRegexes.Count() + extraTokenColors.Count()); - colors[0] = defaultColor; - for (vint i = 0; i < tokenColors.Count(); i++) - { - colors[i + 1] = tokenColors[i]; - } - for (vint i = 0; i < extraTokenColors.Count(); i++) - { - colors[i + 1 + tokenColors.Count()] = extraTokenColors[i]; - } - { - regex::RegexProc proc; - proc.colorizeProc = &GuiTextBoxRegexColorizer::ColorizerProc; - proc.argument = colorizerArgument; - colorizer = new regex::RegexLexerColorizer(lexer->Colorize(proc)); - } - } - } + Theme* currentTheme = nullptr; - void GuiTextBoxRegexColorizer::ColorizeTokenContextSensitive(vint lineIndex, const wchar_t* text, vint start, vint length, vint& token, vint& contextState) + ITheme* GetCurrentTheme() { + return currentTheme; } - vint GuiTextBoxRegexColorizer::GetLexerStartState() + void InitializeTheme() { - return lexer?colorizer->GetStartState():-1; + CHECK_ERROR(currentTheme == nullptr, L"vl::presentation::theme::InitializeTheme()#Theme has already been initialized"); + currentTheme = new Theme; } - vint GuiTextBoxRegexColorizer::GetContextStartState() + void FinalizeTheme() { - return 0; + CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::FinalizeTheme()#Theme has not been initialized"); + delete currentTheme; + currentTheme = nullptr; } - void GuiTextBoxRegexColorizer::ColorizeLineWithCRLF(vint lineIndex, const wchar_t* text, vuint32_t* colors, vint length, vint& lexerState, vint& contextState) + bool RegisterTheme(Ptr theme) { - memset(colors, 0, sizeof(*colors)*length); - if (lexer) - { - GuiTextBoxRegexColorizerProcData data; - data.colorizer = this; - data.lineIndex = lineIndex; - data.text = text; - data.colors = colors; - data.contextState = contextState; - - regex::RegexLexerColorizer::InternalState internalState; - internalState.currentState = lexerState; - colorizer->SetInternalState(internalState); - colorizerArgument[0] = &data; - colorizer->Colorize(text, length); - - lexerState = colorizer->GetInternalState().currentState; - contextState = data.contextState; - } - else - { - lexerState = -1; - contextState = -1; - } + CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::RegisterTheme(const WString&, Ptr)#Theme has already been initialized"); + return currentTheme->RegisterTheme(theme->Name, theme); } - const GuiTextBoxRegexColorizer::ColorArray& GuiTextBoxRegexColorizer::GetColors() + Ptr UnregisterTheme(const WString& name) { - return colors; + CHECK_ERROR(currentTheme != nullptr, L"vl::presentation::theme::UnregisterTheme(const WString&)#Theme has already been initialized"); + return currentTheme->UnregisterTheme(name); } } } } /*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTUNDOREDO.CPP +.\CONTROLS\TEXTEDITORPACKAGE\GUIDOCUMENTVIEWER.CPP ***********************************************************************/ namespace vl @@ -18474,1593 +17910,1334 @@ namespace vl { namespace controls { + using namespace collections; using namespace elements; - using namespace elements::text; using namespace compositions; /*********************************************************************** -GuiGeneralUndoRedoProcessor +GuiDocumentItem ***********************************************************************/ - GuiGeneralUndoRedoProcessor::GuiGeneralUndoRedoProcessor() - :firstFutureStep(0) - ,savedStep(0) - ,performingUndoRedo(false) - { - } - - GuiGeneralUndoRedoProcessor::~GuiGeneralUndoRedoProcessor() + GuiDocumentItem::GuiDocumentItem(const WString& _name) + :name(_name) { + container = new GuiBoundsComposition; + container->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + container->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Arrow)); } - void GuiGeneralUndoRedoProcessor::PushStep(Ptr step) + GuiDocumentItem::~GuiDocumentItem() { - if(!performingUndoRedo) + if (!owned) { - if(firstFutureStep0) - { - steps.RemoveRange(firstFutureStep, count); - } - - steps.Add(step); - firstFutureStep=steps.Count(); - UndoRedoChanged(); - ModifiedChanged(); + SafeDeleteComposition(container); } } - bool GuiGeneralUndoRedoProcessor::CanUndo() + compositions::GuiGraphicsComposition* GuiDocumentItem::GetContainer() { - return firstFutureStep>0; + return container; } - bool GuiGeneralUndoRedoProcessor::CanRedo() + WString GuiDocumentItem::GetName() { - return steps.Count()>firstFutureStep; + return name; } - void GuiGeneralUndoRedoProcessor::ClearUndoRedo() +/*********************************************************************** +GuiDocumentCommonInterface +***********************************************************************/ + + void GuiDocumentCommonInterface::InvokeUndoRedoChanged() { - if(!performingUndoRedo) - { - steps.Clear(); - firstFutureStep=0; - savedStep=0; - } + UndoRedoChanged.Execute(documentControl->GetNotifyEventArguments()); } - bool GuiGeneralUndoRedoProcessor::GetModified() + void GuiDocumentCommonInterface::InvokeModifiedChanged() { - return firstFutureStep!=savedStep; + ModifiedChanged.Execute(documentControl->GetNotifyEventArguments()); } - void GuiGeneralUndoRedoProcessor::NotifyModificationSaved() + void GuiDocumentCommonInterface::UpdateCaretPoint() { - if(!performingUndoRedo) + GuiGraphicsHost* host=documentComposition->GetRelatedGraphicsHost(); + if(host) { - savedStep=firstFutureStep; - ModifiedChanged(); + Rect caret=documentElement->GetCaretBounds(documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide()); + Point view=GetDocumentViewPosition(); + vint x=caret.x1-view.x; + vint y=caret.y2-view.y; + host->SetCaretPoint(Point(x, y), documentComposition); } } - bool GuiGeneralUndoRedoProcessor::Undo() + void GuiDocumentCommonInterface::EnsureDocumentRectVisible(Rect bounds) { - if(!CanUndo()) return false; - performingUndoRedo=true; - firstFutureStep--; - steps[firstFutureStep]->Undo(); - performingUndoRedo=false; - UndoRedoChanged(); - ModifiedChanged(); - return true; + if (bounds != Rect()) + { + bounds.x1 -= 15; + bounds.y1 -= 15; + bounds.x2 += 15; + bounds.y2 += 15; + EnsureRectVisible(bounds); + } } - bool GuiGeneralUndoRedoProcessor::Redo() + void GuiDocumentCommonInterface::Move(TextPos caret, bool shift, bool frontSide) { - if(!CanRedo()) return false; - performingUndoRedo=true; - firstFutureStep++; - steps[firstFutureStep-1]->Redo(); - performingUndoRedo=false; - UndoRedoChanged(); - ModifiedChanged(); - return true; + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + + TextPos newBegin=shift?begin:caret; + TextPos newEnd=caret; + documentElement->SetCaret(newBegin, newEnd, frontSide); + documentElement->SetCaretVisible(true); + EnsureDocumentRectVisible(documentElement->GetCaretBounds(newEnd, frontSide)); + UpdateCaretPoint(); + SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); } -/*********************************************************************** -GuiTextBoxUndoRedoProcessor::EditStep -***********************************************************************/ - - void GuiTextBoxUndoRedoProcessor::EditStep::Undo() + bool GuiDocumentCommonInterface::ProcessKey(VKEY code, bool shift, bool ctrl) { - GuiTextBoxCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + if(IGuiShortcutKeyItem* item=internalShortcutKeyManager->TryGetShortcut(ctrl, shift, false, code)) { - ci->Select(arguments.inputStart, arguments.inputEnd); - ci->SetSelectionText(arguments.originalText); - ci->Select(arguments.originalStart, arguments.originalEnd); + GuiEventArgs arguments(documentControl->GetBoundsComposition()); + item->Executed.Execute(arguments); + return true; } - } - void GuiTextBoxUndoRedoProcessor::EditStep::Redo() - { - GuiTextBoxCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + TextPos currentCaret=documentElement->GetCaretEnd(); + bool frontSide=documentElement->IsCaretEndPreferFrontSide(); + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + + switch(code) { - ci->Select(arguments.originalStart, arguments.originalEnd); - ci->SetSelectionText(arguments.inputText); - ci->Select(arguments.inputStart, arguments.inputEnd); + case VKEY::KEY_UP: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveUp, frontSide); + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_DOWN: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveDown, frontSide); + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_LEFT: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveLeft, frontSide); + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_RIGHT: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretMoveRight, frontSide); + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_HOME: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLineFirst, frontSide); + if(newCaret==currentCaret) + { + newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretFirst, frontSide); + } + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_END: + { + TextPos newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLineLast, frontSide); + if(newCaret==currentCaret) + { + newCaret=documentElement->CalculateCaret(currentCaret, IGuiGraphicsParagraph::CaretLast, frontSide); + } + Move(newCaret, shift, frontSide); + } + break; + case VKEY::KEY_PRIOR: + { + } + break; + case VKEY::KEY_NEXT: + { + } + break; + case VKEY::KEY_BACK: + if(editMode==Editable) + { + if(begin==end) + { + ProcessKey(VKEY::KEY_LEFT, true, false); + } + Array text; + EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); + return true; + } + break; + case VKEY::KEY_DELETE: + if(editMode==Editable) + { + if(begin==end) + { + ProcessKey(VKEY::KEY_RIGHT, true, false); + } + Array text; + EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); + return true; + } + break; + case VKEY::KEY_RETURN: + if(editMode==Editable) + { + if(ctrl) + { + Array text(1); + text[0]=L"\r\n"; + EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); + } + else + { + Array text(2); + EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); + } + return true; + } + break; + default:; } + return false; } -/*********************************************************************** -GuiTextBoxUndoRedoProcessor -***********************************************************************/ - - GuiTextBoxUndoRedoProcessor::GuiTextBoxUndoRedoProcessor() - :ownerComposition(0) + void GuiDocumentCommonInterface::InstallDocumentViewer( + GuiControl* _sender, + compositions::GuiGraphicsComposition* _mouseArea, + compositions::GuiGraphicsComposition* _container, + compositions::GuiGraphicsComposition* eventComposition, + compositions::GuiGraphicsComposition* focusableComposition + ) { - } + documentControl = _sender; - GuiTextBoxUndoRedoProcessor::~GuiTextBoxUndoRedoProcessor() - { - } + documentElement = GuiDocumentElement::Create(); + documentElement->SetCallback(this); - void GuiTextBoxUndoRedoProcessor::Attach(elements::GuiColorizedTextElement* element, SpinLock& elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) - { - ownerComposition=_ownerComposition; - } + documentComposition = new GuiBoundsComposition; + documentComposition->SetOwnedElement(Ptr(documentElement)); + documentComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElement); + documentComposition->SetAlignmentToParent(Margin(5, 5, 5, 5)); + _container->AddChild(documentComposition); + ReplaceMouseArea(_mouseArea); - void GuiTextBoxUndoRedoProcessor::Detach() - { - ClearUndoRedo(); - } + focusableComposition->GetEventReceiver()->caretNotify.AttachMethod(this, &GuiDocumentCommonInterface::OnCaretNotify); + focusableComposition->GetEventReceiver()->gotFocus.AttachMethod(this, &GuiDocumentCommonInterface::OnGotFocus); + focusableComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiDocumentCommonInterface::OnLostFocus); + focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiDocumentCommonInterface::OnKeyDown); + focusableComposition->GetEventReceiver()->charInput.AttachMethod(this, &GuiDocumentCommonInterface::OnCharInput); - void GuiTextBoxUndoRedoProcessor::TextEditPreview(TextEditPreviewStruct& arguments) - { - } + undoRedoProcessor->Setup(documentElement, documentComposition); + ActiveHyperlinkChanged.SetAssociatedComposition(eventComposition); + ActiveHyperlinkExecuted.SetAssociatedComposition(eventComposition); + SelectionChanged.SetAssociatedComposition(eventComposition); + UndoRedoChanged.SetAssociatedComposition(eventComposition); + ModifiedChanged.SetAssociatedComposition(eventComposition); - void GuiTextBoxUndoRedoProcessor::TextEditNotify(const TextEditNotifyStruct& arguments) - { - Ptr step=new EditStep; - step->processor=this; - step->arguments=arguments; - PushStep(step); + undoRedoProcessor->UndoRedoChanged.Add(this, &GuiDocumentCommonInterface::InvokeUndoRedoChanged); + undoRedoProcessor->ModifiedChanged.Add(this, &GuiDocumentCommonInterface::InvokeModifiedChanged); + SetDocument(Ptr(new DocumentModel)); } - void GuiTextBoxUndoRedoProcessor::TextCaretChanged(const TextCaretChangedStruct& arguments) + void GuiDocumentCommonInterface::ReplaceMouseArea(compositions::GuiGraphicsComposition* _mouseArea) { - } + if (documentMouseArea) + { + documentMouseArea->GetEventReceiver()->mouseMove.Detach(onMouseMoveHandler); + documentMouseArea->GetEventReceiver()->leftButtonDown.Detach(onMouseDownHandler); + documentMouseArea->GetEventReceiver()->leftButtonUp.Detach(onMouseUpHandler); + documentMouseArea->GetEventReceiver()->mouseLeave.Detach(onMouseLeaveHandler); - void GuiTextBoxUndoRedoProcessor::TextEditFinished(vuint editVersion) - { + onMouseMoveHandler = nullptr; + onMouseDownHandler = nullptr; + onMouseUpHandler = nullptr; + onMouseLeaveHandler = nullptr; + } + documentMouseArea = _mouseArea; + if (documentMouseArea) + { + onMouseMoveHandler = documentMouseArea->GetEventReceiver()->mouseMove.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseMove); + onMouseDownHandler = documentMouseArea->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseDown); + onMouseUpHandler = documentMouseArea->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseUp); + onMouseLeaveHandler = documentMouseArea->GetEventReceiver()->mouseLeave.AttachMethod(this, &GuiDocumentCommonInterface::OnMouseLeave); + } } -/*********************************************************************** -GuiDocumentUndoRedoProcessor::ReplaceModelStep -***********************************************************************/ - - void GuiDocumentUndoRedoProcessor::ReplaceModelStep::Undo() + void GuiDocumentCommonInterface::SetActiveHyperlink(Ptr package) { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) - { - ci->EditRun(arguments.inputStart, arguments.inputEnd, arguments.originalModel, true); - ci->SetCaret(arguments.originalStart, arguments.originalEnd); - } + ActivateActiveHyperlink(false); + activeHyperlinks = + !package ? nullptr : + package->hyperlinks.Count() == 0 ? nullptr : + package; + ActivateActiveHyperlink(true); + ActiveHyperlinkChanged.Execute(documentControl->GetNotifyEventArguments()); } - void GuiDocumentUndoRedoProcessor::ReplaceModelStep::Redo() + void GuiDocumentCommonInterface::ActivateActiveHyperlink(bool activate) { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + if (activeHyperlinks) { - ci->EditRun(arguments.originalStart, arguments.originalEnd, arguments.inputModel, true); - ci->SetCaret(arguments.inputStart, arguments.inputEnd); + for (auto run : activeHyperlinks->hyperlinks) + { + run->styleName = activate ? run->activeStyleName : run->normalStyleName; + } + documentElement->NotifyParagraphUpdated(activeHyperlinks->row, 1, 1, false); } } -/*********************************************************************** -GuiDocumentUndoRedoProcessor::RenameStyleStep -***********************************************************************/ - - void GuiDocumentUndoRedoProcessor::RenameStyleStep::Undo() + void GuiDocumentCommonInterface::AddShortcutCommand(VKEY key, const Func& eventHandler) { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + IGuiShortcutKeyItem* item=internalShortcutKeyManager->CreateNewShortcut(true, false, false, key); + item->Executed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) { - ci->RenameStyle(arguments.newStyleName, arguments.oldStyleName); - } + eventHandler(); + }); } - void GuiDocumentUndoRedoProcessor::RenameStyleStep::Redo() + void GuiDocumentCommonInterface::EditTextInternal(TextPos begin, TextPos end, const Func& editor) { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + // save run before editing + if(begin>end) { - ci->RenameStyle(arguments.oldStyleName, arguments.newStyleName); + TextPos temp=begin; + begin=end; + end=temp; } - } + Ptr originalModel=documentElement->GetDocument()->CopyDocument(begin, end, true); + if(originalModel) + { + // edit + vint paragraphCount=0; + vint lastParagraphLength=0; + editor(begin, end, paragraphCount, lastParagraphLength); -/*********************************************************************** -GuiDocumentUndoRedoProcessor::SetAlignmentStep -***********************************************************************/ + // calculate new caret + TextPos caret; + if(paragraphCount==0) + { + caret=begin; + } + else if(paragraphCount==1) + { + caret=TextPos(begin.row, begin.column+lastParagraphLength); + } + else + { + caret=TextPos(begin.row+paragraphCount-1, lastParagraphLength); + } + documentElement->SetCaret(caret, caret, true); + EnsureDocumentRectVisible(documentElement->GetCaretBounds(caret, true)); + documentControl->TextChanged.Execute(documentControl->GetNotifyEventArguments()); + UpdateCaretPoint(); + SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); - void GuiDocumentUndoRedoProcessor::SetAlignmentStep::Undo() - { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) - { - ci->SetParagraphAlignments(TextPos(arguments->start, 0), TextPos(arguments->end, 0), arguments->originalAlignments); + // save run after editing + Ptr inputModel=documentElement->GetDocument()->CopyDocument(begin, caret, true); + + // submit redo-undo + GuiDocumentUndoRedoProcessor::ReplaceModelStruct arguments; + arguments.originalStart=begin; + arguments.originalEnd=end; + arguments.originalModel=originalModel; + arguments.inputStart=begin; + arguments.inputEnd=caret; + arguments.inputModel=inputModel; + undoRedoProcessor->OnReplaceModel(arguments); } } - void GuiDocumentUndoRedoProcessor::SetAlignmentStep::Redo() + void GuiDocumentCommonInterface::EditStyleInternal(TextPos begin, TextPos end, const Func& editor) { - GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); - if(ci) + // save run before editing + if(begin>end) { - ci->SetParagraphAlignments(TextPos(arguments->start, 0), TextPos(arguments->end, 0), arguments->inputAlignments); + TextPos temp=begin; + begin=end; + end=temp; } - } - -/*********************************************************************** -GuiDocumentUndoRedoProcessor -***********************************************************************/ - - GuiDocumentUndoRedoProcessor::GuiDocumentUndoRedoProcessor() - :element(0) - ,ownerComposition(0) - { - } + Ptr originalModel=documentElement->GetDocument()->CopyDocument(begin, end, true); + if(originalModel) + { + // edit + editor(begin, end); - GuiDocumentUndoRedoProcessor::~GuiDocumentUndoRedoProcessor() - { - } + // save run after editing + Ptr inputModel=documentElement->GetDocument()->CopyDocument(begin, end, true); - void GuiDocumentUndoRedoProcessor::Setup(elements::GuiDocumentElement* _element, compositions::GuiGraphicsComposition* _ownerComposition) - { - element=_element; - ownerComposition=_ownerComposition; + // submit redo-undo + GuiDocumentUndoRedoProcessor::ReplaceModelStruct arguments; + arguments.originalStart=begin; + arguments.originalEnd=end; + arguments.originalModel=originalModel; + arguments.inputStart=begin; + arguments.inputEnd=end; + arguments.inputModel=inputModel; + undoRedoProcessor->OnReplaceModel(arguments); + } } - void GuiDocumentUndoRedoProcessor::OnReplaceModel(const ReplaceModelStruct& arguments) + void GuiDocumentCommonInterface::MergeBaselineAndDefaultFont(Ptr document) { - Ptr step=new ReplaceModelStep; - step->processor=this; - step->arguments=arguments; - PushStep(step); + document->MergeDefaultFont(documentControl->GetDisplayFont()); + if (baselineDocument) + { + document->MergeBaselineStyles(baselineDocument); + } } - void GuiDocumentUndoRedoProcessor::OnRenameStyle(const RenameStyleStruct& arguments) + void GuiDocumentCommonInterface::OnFontChanged() { - Ptr step=new RenameStyleStep; - step->processor=this; - step->arguments=arguments; - PushStep(step); + auto document = documentElement->GetDocument(); + MergeBaselineAndDefaultFont(document); + documentElement->SetDocument(document); } - void GuiDocumentUndoRedoProcessor::OnSetAlignment(Ptr arguments) + void GuiDocumentCommonInterface::OnCaretNotify(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - Ptr step=new SetAlignmentStep; - step->processor=this; - step->arguments=arguments; - PushStep(step); + if(documentControl->GetVisuallyEnabled()) + { + if(editMode!=ViewOnly) + { + documentElement->SetCaretVisible(!documentElement->GetCaretVisible()); + } + } } - } - } -} - -/*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGEAUTOCOMPLETE.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace regex; - using namespace parsing; - using namespace parsing::tabling; - using namespace collections; - -/*********************************************************************** -GuiGrammarAutoComplete -***********************************************************************/ - void GuiGrammarAutoComplete::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) + void GuiDocumentCommonInterface::OnGotFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiTextBoxAutoCompleteBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); - RepeatingParsingExecutor::CallbackBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); + if(documentControl->GetVisuallyEnabled()) + { + if(editMode!=ViewOnly) + { + documentElement->SetCaretVisible(true); + UpdateCaretPoint(); + } + } } - void GuiGrammarAutoComplete::Detach() + void GuiDocumentCommonInterface::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiTextBoxAutoCompleteBase::Detach(); - RepeatingParsingExecutor::CallbackBase::Detach(); - if(element && elementModifyLock) + if(documentControl->GetVisuallyEnabled()) { - EnsureAutoCompleteFinished(); + documentElement->SetCaretVisible(false); } } - void GuiGrammarAutoComplete::TextEditPreview(TextEditPreviewStruct& arguments) + void GuiDocumentCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) { - GuiTextBoxAutoCompleteBase::TextEditPreview(arguments); - RepeatingParsingExecutor::CallbackBase::TextEditPreview(arguments); - - if(element && elementModifyLock) + if(documentControl->GetVisuallyEnabled()) { - if(IsListOpening() && arguments.keyInput && arguments.originalText==L"" && arguments.inputText!=L"") + if(editMode!=ViewOnly) { - WString selectedItem=GetSelectedListItem(); - if(selectedItem!=L"") + if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl)) { - TextPos begin=GetListStartPosition(); - TextPos end=arguments.originalStart; - WString editingText=element->GetLines().GetText(begin, end); - editingText+=arguments.inputText; - if(grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(editingText)) - { - arguments.originalStart=begin; - arguments.inputText=selectedItem+arguments.inputText; - CloseList(); - } + arguments.handled=true; } } } } - void GuiGrammarAutoComplete::TextEditNotify(const TextEditNotifyStruct& arguments) + void GuiDocumentCommonInterface::OnCharInput(compositions::GuiGraphicsComposition* sender, compositions::GuiCharEventArgs& arguments) { - GuiTextBoxAutoCompleteBase::TextEditNotify(arguments); - RepeatingParsingExecutor::CallbackBase::TextEditNotify(arguments); - if(element && elementModifyLock) + if (documentControl->GetVisuallyEnabled()) { - editing=true; - SPIN_LOCK(editTraceLock) + if (editMode == Editable && + arguments.code != (wchar_t)VKEY::KEY_ESCAPE && + arguments.code != (wchar_t)VKEY::KEY_BACK && + arguments.code != (wchar_t)VKEY::KEY_RETURN && + (arguments.code != (wchar_t)VKEY::KEY_TAB || documentControl->GetAcceptTabInput()) && + !arguments.ctrl) { - editTrace.Add(arguments); + Array text(1); + text[0] = WString::FromChar(arguments.code); + EditText(documentElement->GetCaretBegin(), documentElement->GetCaretEnd(), documentElement->IsCaretEndPreferFrontSide(), text); } } } - void GuiGrammarAutoComplete::TextCaretChanged(const TextCaretChangedStruct& arguments) + void GuiDocumentCommonInterface::UpdateCursor(INativeCursor* cursor) { - GuiTextBoxAutoCompleteBase::TextCaretChanged(arguments); - RepeatingParsingExecutor::CallbackBase::TextCaretChanged(arguments); - if(element && elementModifyLock) + if (documentMouseArea) { - SPIN_LOCK(editTraceLock) - { - // queue a fake TextEditNotifyStruct - // a fake struct can be detected by (trace.originalText==L"" && trace.inputText==L"") - TextEditNotifyStruct trace; - trace.editVersion=arguments.editVersion; - trace.originalStart=arguments.oldBegin; - trace.originalEnd=arguments.oldEnd; - trace.inputStart=arguments.newBegin; - trace.inputEnd=arguments.newEnd; + documentMouseArea->SetAssociatedCursor(cursor); + } + } - // ensure trace.originalStart<=trace.originalEnd - if(trace.originalStart>trace.originalEnd) - { - TextPos temp=trace.originalStart; - trace.originalStart=trace.originalEnd; - trace.originalEnd=temp; - } - // ensure trace.inputStart<=trace.inputEnd - if(trace.inputStart>trace.inputEnd) - { - TextPos temp=trace.inputStart; - trace.inputStart=trace.inputEnd; - trace.inputEnd=temp; - } - editTrace.Add(trace); - } - - SPIN_LOCK(contextLock) - { - if(context.input.node) - { - if(editing) - { - // if the current caret changing is caused by editing - // submit a task with valid editVersion and invalid node and code - RepeatingParsingOutput input; - input.editVersion=context.input.editVersion; - SubmitTask(input); - } - else if(context.input.editVersion == arguments.editVersion) - { - // if the current caret changing is not caused by editing - // submit a task with the previous input - SubmitTask(context.input); - } - } - } - } - } - - void GuiGrammarAutoComplete::TextEditFinished(vuint editVersion) + Point GuiDocumentCommonInterface::GetMouseOffset() { - GuiTextBoxAutoCompleteBase::TextEditFinished(editVersion); - RepeatingParsingExecutor::CallbackBase::TextEditFinished(editVersion); - if(element && elementModifyLock) + if (documentMouseArea) { - editing=false; + auto documentBounds = documentComposition->GetGlobalBounds(); + auto mouseAreaBounds = documentMouseArea->GetGlobalBounds(); + return Point( + documentBounds.x1 - mouseAreaBounds.x1, + documentBounds.y1 - mouseAreaBounds.y1 + ); } - } - - void GuiGrammarAutoComplete::OnParsingFinishedAsync(const RepeatingParsingOutput& arguments) - { - if(element && elementModifyLock) + else { - GetApplication()->InvokeInMainThread(ownerComposition->GetRelatedControlHost(), [=]() - { - // submit a task if the RepeatingParsingExecutor notices a new parsing result - SubmitTask(arguments); - }); + return Point(0, 0); } } - void GuiGrammarAutoComplete::CollectLeftRecursiveRules() + void GuiDocumentCommonInterface::OnMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - leftRecursiveRules.Clear(); - Ptr parser=parsingExecutor->GetParser(); - Ptr table=parser->GetTable(); - vint stateCount=table->GetStateCount(); - vint tokenCount=table->GetTokenCount(); - for(vint i=0;iGetVisuallyEnabled()) { - for(vint j=0;j bag=table->GetTransitionBag(i, j); - if(bag) + case ViewOnly: { - for (auto item : bag->transitionItems) + auto package = documentElement->GetHyperlinkFromPoint({ x, y }); + bool handCursor = false; + + if(dragging) { - for (auto ins : item->instructions) + if(activeHyperlinks) { - if(ins.instructionType==ParsingTable::Instruction::LeftRecursiveReduce) + if (package && CompareEnumerable(activeHyperlinks->hyperlinks, package->hyperlinks) == 0) { - if(!leftRecursiveRules.Contains(ins.creatorRule)) - { - leftRecursiveRules.Add(ins.creatorRule); - } + ActivateActiveHyperlink(true); + handCursor = true; + } + else + { + ActivateActiveHyperlink(false); } } } + else + { + SetActiveHyperlink(package); + handCursor = activeHyperlinks; + } + + if(handCursor) + { + auto cursor = GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::Hand); + UpdateCursor(cursor); + } + else + { + UpdateCursor(nullptr); + } + } + break; + case Selectable: + case Editable: + if(dragging) + { + TextPos caret=documentElement->CalculateCaretFromPoint(Point(x, y)); + TextPos oldCaret=documentElement->GetCaretBegin(); + Move(caret, true, (oldCaret==caret?documentElement->IsCaretEndPreferFrontSide():carettrace.editVersion) - { - start = middle + 1; - } - else + if(documentControl->GetVisuallyEnabled()) + { + switch(editMode) { - // if multiple TextEditNotifyStruct is found, choose the latest one - while (middle < editTrace.Count() - 1) + case ViewOnly: + SetActiveHyperlink(documentElement->GetHyperlinkFromPoint({ x, y })); + break; + case Selectable: + case Editable: { - if (editTrace[middle + 1].editVersion == editTrace[middle].editVersion) - { - middle++; - } - else + documentControl->SetFocused(); + TextPos caret=documentElement->CalculateCaretFromPoint(Point(x, y)); + TextPos oldCaret=documentElement->GetCaretEnd(); + if(caret!=oldCaret) { - break; + Move(caret, arguments.shift, caret table=grammarParser->GetTable(); - RegexToken lastToken; - lastToken.reading=0; + auto offset = GetMouseOffset(); + auto x = arguments.x - offset.x; + auto y = arguments.y - offset.y; - for (auto token : tokens) + if(documentControl->GetVisuallyEnabled()) { - // we treat "class| Name" as editing the first token - if(TextPos(token.rowEnd, token.columnEnd+1)>=pos) + dragging=false; + switch(editMode) { - if(table->GetTableTokenIndex(token.token)!=-1 && lastToken.reading) + case ViewOnly: { - pos=TextPos(lastToken.rowStart, lastToken.columnStart); + auto package = documentElement->GetHyperlinkFromPoint({ x, y }); + if(activeHyperlinks) + { + if (package && CompareEnumerable(activeHyperlinks->hyperlinks, package->hyperlinks) == 0) + { + ActiveHyperlinkExecuted.Execute(documentControl->GetNotifyEventArguments()); + } + else + { + SetActiveHyperlink(nullptr); + } + } } break; + default:; } - lastToken=token; } - return pos; } - void GuiGrammarAutoComplete::ExecuteRefresh(AutoCompleteContext& newContext) + void GuiDocumentCommonInterface::OnMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - // process the input of a task is submitted not by text editing - // find the text selection by the edit version of the input - TextPos startPos, endPos; - { - SPIN_LOCK(editTraceLock) - { - vint traceIndex = UnsafeGetEditTraceIndex(newContext.input.editVersion); - if (traceIndex == -1) return; + SetActiveHyperlink(nullptr); + } - TextEditNotifyStruct& trace = editTrace[traceIndex]; - startPos = trace.inputStart; - endPos = trace.inputEnd; - } + Point GuiDocumentCommonInterface::GetDocumentViewPosition() + { + return Point(0, 0); + } - const RegexLexer& lexer = grammarParser->GetTable()->GetLexer(); - RegexTokens tokens = lexer.Parse(newContext.input.code); - startPos = ChooseCorrectTextPos(startPos, tokens); - } + void GuiDocumentCommonInterface::EnsureRectVisible(Rect bounds) + { + } - // locate the deepest node using the text selection - ParsingTextPos start(startPos.row, startPos.column); - ParsingTextPos end(endPos.row, endPos.column); - ParsingTextRange range(start, end); - ParsingTreeNode* found = newContext.input.node->FindDeepestNode(range); - ParsingTreeObject* selectedNode = 0; + //================ callback - // if the location failed, choose the root node - if (!found || startPos == TextPos(0, 0)) + void GuiDocumentCommonInterface::OnStartRender() + { + for (auto item : documentItems.Values()) { - found = newContext.input.node.Obj(); + item->visible = false; } + } - if (!selectedNode) + void GuiDocumentCommonInterface::OnFinishRender() + { + for (auto item : documentItems.Values()) { - // from the deepest node, traverse towards the root node - // find the deepest node whose created rule is a left recursive rule and whose parent is not - ParsingTreeObject* lrec = 0; - ParsingTreeNode* current = found; - while (current) + if (item->container->GetVisible() != item->visible) { - ParsingTreeObject* obj = dynamic_cast(current); - if (obj) - { - for (auto rule : obj->GetCreatorRules()) - { - if (leftRecursiveRules.Contains(rule)) - { - lrec = obj; - break; - } - } - if (obj && lrec && lrec != obj) - { - selectedNode = lrec; - break; - } - } - current = current->GetParent(); + item->container->SetVisible(item->visible); } } + } - if (!selectedNode) + Size GuiDocumentCommonInterface::OnRenderEmbeddedObject(const WString& name, const Rect& location) + { + vint index = documentItems.Keys().IndexOf(name); + if (index != -1) { - // if there is no left recursive rule that creates the deepest node and all indirect parents - // choose the deepest ParsingTreeObject - ParsingTreeNode* current = found; - while (current) - { - ParsingTreeObject* obj = dynamic_cast(current); - if (obj) - { - selectedNode = obj; - break; - } - current = current->GetParent(); - } + auto item = documentItems.Values()[index]; + auto size = item->container->GetBounds().GetSize(); + item->container->SetBounds(Rect(location.LeftTop(), Size(0, 0))); + item->visible = true; + return size; } + return Size(); + } - if (selectedNode) - { - // get the code range of the selected node - start = selectedNode->GetCodeRange().start; - end = selectedNode->GetCodeRange().end; + //================ basic - // get all properties from the selected node - newContext.rule = selectedNode->GetCreatorRules()[selectedNode->GetCreatorRules().Count() - 1]; - newContext.originalRange = selectedNode->GetCodeRange(); - newContext.originalNode = dynamic_cast(selectedNode); - newContext.modifiedNode = newContext.originalNode; - newContext.modifiedEditVersion = newContext.input.editVersion; + GuiDocumentCommonInterface::GuiDocumentCommonInterface() + { + undoRedoProcessor = Ptr(new GuiDocumentUndoRedoProcessor); - // get the corresponding code of the selected node - if (start.index >= 0 && end.index >= 0) - { - newContext.modifiedCode = newContext.input.code.Sub(start.index, end.index - start.index + 1).Buffer(); - } - } + internalShortcutKeyManager = Ptr(new GuiShortcutKeyManager); + AddShortcutCommand(VKEY::KEY_Z, Func(this, &GuiDocumentCommonInterface::Undo)); + AddShortcutCommand(VKEY::KEY_Y, Func(this, &GuiDocumentCommonInterface::Redo)); + AddShortcutCommand(VKEY::KEY_A, Func(this, &GuiDocumentCommonInterface::SelectAll)); + AddShortcutCommand(VKEY::KEY_X, Func(this, &GuiDocumentCommonInterface::Cut)); + AddShortcutCommand(VKEY::KEY_C, Func(this, &GuiDocumentCommonInterface::Copy)); + AddShortcutCommand(VKEY::KEY_V, Func(this, &GuiDocumentCommonInterface::Paste)); } - bool GuiGrammarAutoComplete::NormalizeTextPos(AutoCompleteContext& newContext, elements::text::TextLines& lines, TextPos& pos) + GuiDocumentCommonInterface::~GuiDocumentCommonInterface() { - // get the start position - TextPos start(newContext.originalRange.start.row, newContext.originalRange.start.column); + } - // get the end position of the end of lines - TextPos end - = lines.GetCount() <= 1 - ? TextPos(start.row, start.column + lines.GetLine(0).dataLength) - : TextPos(start.row + lines.GetCount() - 1, lines.GetLine(lines.GetCount() - 1).dataLength) - ; + Ptr GuiDocumentCommonInterface::GetDocument() + { + return documentElement->GetDocument(); + } - if (start <= pos && pos <= end) + void GuiDocumentCommonInterface::SetDocument(Ptr value) + { + SetActiveHyperlink(0); + ClearUndoRedo(); + NotifyModificationSaved(); + + if (value) { - // if the pos is inside the range - // normalize the pos to a new coordinate that the beginning position of lines is (row=0, column=0) - pos.row -= start.row; - if (pos.row == 0) + if (value->paragraphs.Count() == 0) { - pos.column -= start.column; + value->paragraphs.Add(Ptr(new DocumentParagraphRun)); } - return true; + MergeBaselineAndDefaultFont(value); } - else + + documentElement->SetDocument(value); + } + + //================ document items + + bool GuiDocumentCommonInterface::AddDocumentItem(Ptr value) + { + if (documentItems.Keys().Contains(value->GetName())) { return false; } + documentItems.Add(value->GetName(), value); + documentComposition->AddChild(value->container); + value->visible = false; + value->owned = true; + value->container->SetVisible(false); + return true; } - void GuiGrammarAutoComplete::ExecuteEdit(AutoCompleteContext& newContext) + bool GuiDocumentCommonInterface::RemoveDocumentItem(Ptr value) { - // process the input of a task that is submitted by text editing - // this function make an approximiation to the context if the RepeatingParsingExecutor is not fast enough - // copy all TextEditNotifyStruct that is caused by a text editing before (and including) the edit version of the input - List usedTrace; + vint index = documentItems.Keys().IndexOf(value->GetName()); + if (index == -1) { - SPIN_LOCK(editTraceLock) - { - CopyFrom( - usedTrace, - From(editTrace) - .Where([&newContext](const TextEditNotifyStruct& value) - { - return (value.originalText != L"" || value.inputText != L"") && value.editVersion > newContext.modifiedEditVersion; - }) - ); - } + return false; } - - // apply all modification to get the new modifiedCode - bool failed = false; - if (usedTrace.Count() > 0) + if (documentItems.Values()[index] != value) { - if (usedTrace[0].editVersion != newContext.modifiedEditVersion + 1) - { - // failed if any TextEditNotifyStruct is missing - failed = true; - } - else - { - // initialize a TextLines with the latest modifiedCode - text::TextLines lines(nullptr); - lines.SetText(newContext.modifiedCode); - for (auto trace : usedTrace) - { - // apply a modification to lines - TextPos start = trace.originalStart; - TextPos end = trace.originalEnd; + return false; + } + value->owned = false; + documentComposition->RemoveChild(value->container); + documentItems.Remove(value->GetName()); + return true; + } - // only if the modification is meaningful - if (NormalizeTextPos(newContext, lines, start) && NormalizeTextPos(newContext, lines, end)) - { - lines.Modify(start, end, trace.inputText); - } - else - { - // otherwise, failed - failed = true; - break; - } - } + const GuiDocumentCommonInterface::DocumentItemMap& GuiDocumentCommonInterface::GetDocumentItems() + { + return documentItems; + } - if (!failed) - { - newContext.modifiedCode = lines.GetText(); - } - } - } + //================ caret operations - if (failed) + TextPos GuiDocumentCommonInterface::GetCaretBegin() + { + return documentElement->GetCaretBegin(); + } + + TextPos GuiDocumentCommonInterface::GetCaretEnd() + { + return documentElement->GetCaretEnd(); + } + + void GuiDocumentCommonInterface::SetCaret(TextPos begin, TextPos end) + { + documentElement->SetCaret(begin, end, end>=begin); + UpdateCaretPoint(); + SelectionChanged.Execute(documentControl->GetNotifyEventArguments()); + } + + TextPos GuiDocumentCommonInterface::CalculateCaretFromPoint(Point point) + { + return documentElement->CalculateCaretFromPoint(point); + } + + Rect GuiDocumentCommonInterface::GetCaretBounds(TextPos caret, bool frontSide) + { + return documentElement->GetCaretBounds(caret, frontSide); + } + + //================ editing operations + + void GuiDocumentCommonInterface::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) + { + documentElement->NotifyParagraphUpdated(index, oldCount, newCount, updatedText); + } + + void GuiDocumentCommonInterface::EditRun(TextPos begin, TextPos end, Ptr model, bool copy) + { + EditTextInternal(begin, end, [=](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) { - // clear originalNode to notify that the current context goes wrong - newContext.originalNode = 0; - } + documentElement->EditRun(begin, end, model, copy); + paragraphCount=model->paragraphs.Count(); + lastParagraphLength=paragraphCount==0?0:model->paragraphs[paragraphCount-1]->GetText(false).Length(); + }); + } - if (usedTrace.Count() > 0) + void GuiDocumentCommonInterface::EditText(TextPos begin, TextPos end, bool frontSide, const collections::Array& text) + { + EditTextInternal(begin, end, [=, &text](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) { - // update the edit version - newContext.modifiedEditVersion = usedTrace[usedTrace.Count() - 1].editVersion; - } + documentElement->EditText(begin, end, frontSide, text); + paragraphCount=text.Count(); + lastParagraphLength=paragraphCount==0?0:text[paragraphCount-1].Length(); + }); } - void GuiGrammarAutoComplete::DeleteFutures(collections::List& futures) + void GuiDocumentCommonInterface::EditStyle(TextPos begin, TextPos end, Ptr style) { - // delete all futures and clear the list - for (auto future : futures) + EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) { - delete future; - } - futures.Clear(); + documentElement->EditStyle(begin, end, style); + }); } - regex::RegexToken* GuiGrammarAutoComplete::TraverseTransitions( - parsing::tabling::ParsingState& state, - parsing::tabling::ParsingTransitionCollector& transitionCollector, - TextPos stopPosition, - collections::List& nonRecoveryFutures, - collections::List& recoveryFutures - ) + void GuiDocumentCommonInterface::EditImage(TextPos begin, TextPos end, Ptr image) { - const List& transitions = transitionCollector.GetTransitions(); - for (vint index = 0; index < transitions.Count(); index++) + EditTextInternal(begin, end, [=](TextPos begin, TextPos end, vint& paragraphCount, vint& lastParagraphLength) { - const ParsingState::TransitionResult& transition = transitions[index]; - switch (transition.transitionType) - { - case ParsingState::TransitionResult::AmbiguityBegin: - break; - case ParsingState::TransitionResult::AmbiguityBranch: - // ambiguity branches are not nested - // tokens in different braches are the same - // so we only need to run one branch, and skip the others - index = transitionCollector.GetAmbiguityEndFromBegin(transitionCollector.GetAmbiguityBeginFromBranch(index)); - break; - case ParsingState::TransitionResult::AmbiguityEnd: - break; - case ParsingState::TransitionResult::ExecuteInstructions: - { - // test does the token reach the stop position - if (transition.token) - { - // we treat "A|B" as editing A if token A is endless, otherwise treated as editing B - TextPos tokenEnd(transition.token->rowEnd, transition.token->columnEnd + 1); + documentElement->EditImage(begin, end, image); + paragraphCount=1; + lastParagraphLength=wcslen(DocumentImageRun::RepresentationText); + }); + } - // if the caret is not at the end of the token - if (tokenEnd > stopPosition) - { - // stop the traversing and return the editing token - return transition.token; - } - else if (tokenEnd == stopPosition) - { - // if the caret is at the end of the token, and it is a closed token - // e.g. identifier is not a closed token, string is a closed token - if (!grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(transition.token->reading, transition.token->length)) - { - // stop the traversing and return the editing token - return transition.token; - } - } - } + void GuiDocumentCommonInterface::EditHyperlink(vint paragraphIndex, vint begin, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) + { + EditStyleInternal(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), [=](TextPos begin, TextPos end) + { + documentElement->EditHyperlink(begin.row, begin.column, end.column, reference, normalStyleName, activeStyleName); + }); + } - // traverse the PDA using the token specified in the current transition - vint tableTokenIndex = transition.tableTokenIndex; - List possibilities; - if (recoveryFutures.Count() > 0) - { - for (auto future : recoveryFutures) - { - state.Explore(tableTokenIndex, future, possibilities); - } - } - else - { - for (auto future : nonRecoveryFutures) - { - state.Explore(tableTokenIndex, future, possibilities); - } - } + void GuiDocumentCommonInterface::RemoveHyperlink(vint paragraphIndex, vint begin, vint end) + { + EditStyleInternal(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), [=](TextPos begin, TextPos end) + { + documentElement->RemoveHyperlink(begin.row, begin.column, end.column); + }); + } - // delete duplicated futures - List selectedPossibilities; - for (vint i = 0; i < possibilities.Count(); i++) - { - ParsingState::Future* candidateFuture = possibilities[i]; - bool duplicated = false; - for (auto future : selectedPossibilities) - { - if ( - candidateFuture->currentState == future->currentState && - candidateFuture->reduceStateCount == future->reduceStateCount && - candidateFuture->shiftStates.Count() == future->shiftStates.Count() - ) - { - bool same = true; - for (vint j = 0; j < future->shiftStates.Count(); j++) - { - if (candidateFuture->shiftStates[i] != future->shiftStates[i]) - { - same = false; - break; - } - } + void GuiDocumentCommonInterface::EditStyleName(TextPos begin, TextPos end, const WString& styleName) + { + EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + { + documentElement->EditStyleName(begin, end, styleName); + }); + } - if ((duplicated = same)) - { - break; - } - } - } + void GuiDocumentCommonInterface::RemoveStyleName(TextPos begin, TextPos end) + { + EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + { + documentElement->RemoveStyleName(begin, end); + }); + } - if (duplicated) - { - delete candidateFuture; - } - else - { - selectedPossibilities.Add(candidateFuture); - } - } + void GuiDocumentCommonInterface::RenameStyle(const WString& oldStyleName, const WString& newStyleName) + { + documentElement->RenameStyle(oldStyleName, newStyleName); - // step forward - if (transition.token || transition.tableTokenIndex == ParsingTable::TokenBegin) - { - DeleteFutures(nonRecoveryFutures); - DeleteFutures(recoveryFutures); - CopyFrom(nonRecoveryFutures, selectedPossibilities); - } - else - { - DeleteFutures(recoveryFutures); - CopyFrom(recoveryFutures, selectedPossibilities); - } - } - break; - default:; - } - } - return 0; + // submit redo-undo + GuiDocumentUndoRedoProcessor::RenameStyleStruct arguments; + arguments.oldStyleName=oldStyleName; + arguments.newStyleName=newStyleName; + undoRedoProcessor->OnRenameStyle(arguments); } - regex::RegexToken* GuiGrammarAutoComplete::SearchValidInputToken( - parsing::tabling::ParsingState& state, - parsing::tabling::ParsingTransitionCollector& transitionCollector, - TextPos stopPosition, - AutoCompleteContext& newContext, - collections::SortedList& tableTokenIndices - ) + void GuiDocumentCommonInterface::ClearStyle(TextPos begin, TextPos end) { - // initialize the PDA state - state.Reset(newContext.rule); - List nonRecoveryFutures, recoveryFutures; - nonRecoveryFutures.Add(state.ExploreCreateRootFuture()); + EditStyleInternal(begin, end, [=](TextPos begin, TextPos end) + { + documentElement->ClearStyle(begin, end); + }); + } - // traverse the PDA until it reach the stop position - // nonRecoveryFutures store the state when the last token (existing) is reached - // recoveryFutures store the state when the last token (inserted by error recovery) is reached - RegexToken* token = TraverseTransitions(state, transitionCollector, stopPosition, nonRecoveryFutures, recoveryFutures); + Ptr GuiDocumentCommonInterface::SummarizeStyle(TextPos begin, TextPos end) + { + if (begin>end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + return documentElement->SummarizeStyle(begin, end); + } - // explore all possibilities from the last token before the stop position - List possibilities; - for (vint i = 0; i < nonRecoveryFutures.Count(); i++) + Nullable GuiDocumentCommonInterface::SummarizeStyleName(TextPos begin, TextPos end) + { + if (begin>end) { - state.Explore(ParsingTable::NormalReduce, nonRecoveryFutures[i], nonRecoveryFutures); - state.Explore(ParsingTable::LeftRecursiveReduce, nonRecoveryFutures[i], nonRecoveryFutures); + TextPos temp = begin; + begin = end; + end = temp; } - for (auto future : nonRecoveryFutures) + return documentElement->SummarizeStyleName(begin, end); + } + + void GuiDocumentCommonInterface::SetParagraphAlignments(TextPos begin, TextPos end, const collections::Array>& alignments) + { + vint first = begin.row; + vint last = end.row; + if (first > last) { - vint count = state.GetTable()->GetTokenCount(); - for (vint i = ParsingTable::UserTokenStart; i < count; i++) - { - state.Explore(i, future, possibilities); - } + vint temp = first; + first = last; + last = temp; } - // get all possible tokens that marked using @AutoCompleteCandidate - for (auto future : possibilities) + Ptr document = documentElement->GetDocument(); + if (0 <= first && first < document->paragraphs.Count() && 0 <= last && last < document->paragraphs.Count() && last - first + 1 == alignments.Count()) { - if (!tableTokenIndices.Contains(future->selectedToken)) + auto arguments = Ptr(new GuiDocumentUndoRedoProcessor::SetAlignmentStruct); + arguments->start = first; + arguments->end = last; + arguments->originalAlignments.Resize(alignments.Count()); + arguments->inputAlignments.Resize(alignments.Count()); + for (vint i = first; i <= last; i++) { - tableTokenIndices.Add(future->selectedToken); + arguments->originalAlignments[i - first] = document->paragraphs[i]->alignment; + arguments->inputAlignments[i - first] = alignments[i - first]; } + documentElement->SetParagraphAlignment(begin, end, alignments); + undoRedoProcessor->OnSetAlignment(arguments); } - - // release all data - DeleteFutures(possibilities); - DeleteFutures(nonRecoveryFutures); - DeleteFutures(recoveryFutures); - - // return the editing token - return token; } - TextPos GuiGrammarAutoComplete::GlobalTextPosToModifiedTextPos(AutoCompleteContext& newContext, TextPos pos) + void GuiDocumentCommonInterface::SetParagraphAlignment(TextPos begin, TextPos end, Nullable alignment) { - pos.row-=newContext.originalRange.start.row; - if(pos.row==0) +#if defined VCZH_GCC && defined VCZH_64 +#define abs labs +#endif + Array> alignments(abs(begin.row - end.row) + 1); +#if defined VCZH_GCC && defined VCZH_64 +#undef abs +#endif + for (vint i = 0; i < alignments.Count(); i++) { - pos.column-=newContext.originalRange.start.column; + alignments[i] = alignment; } - return pos; + SetParagraphAlignments(begin, end, alignments); } - TextPos GuiGrammarAutoComplete::ModifiedTextPosToGlobalTextPos(AutoCompleteContext& newContext, TextPos pos) + Nullable GuiDocumentCommonInterface::SummarizeParagraphAlignment(TextPos begin, TextPos end) { - if(pos.row==0) + if (begin>end) { - pos.column+=newContext.originalRange.start.column; + TextPos temp = begin; + begin = end; + end = temp; } - pos.row+=newContext.originalRange.start.row; - return pos; + return documentElement->SummarizeParagraphAlignment(begin, end); } - void GuiGrammarAutoComplete::ExecuteCalculateList(AutoCompleteContext& newContext) + //================ editing control + + WString GuiDocumentCommonInterface::GetActiveHyperlinkReference() { - // calcuate the content of the auto complete list - // it is sad that, because the parser's algorithm is too complex - // we need to reparse and track the internal state of the PDA(push-down automaton) here. - // initialize the PDA - ParsingState state(newContext.modifiedCode, grammarParser->GetTable()); - state.Reset(newContext.rule); + return activeHyperlinks ? activeHyperlinks->hyperlinks[0]->reference : L""; + } - // prepare to get all transitions - ParsingTransitionCollector collector; - List> errors; + GuiDocumentCommonInterface::EditMode GuiDocumentCommonInterface::GetEditMode() + { + return editMode; + } - // reparse and get all transitions during parsing - if (grammarParser->Parse(state, collector, errors)) + void GuiDocumentCommonInterface::SetEditMode(EditMode value) + { + if(activeHyperlinks) { - // if modifiedNode is not prepared (the task is submitted because of text editing) - // use the transition to build the syntax tree - if (!newContext.modifiedNode) - { - ParsingTreeBuilder builder; - builder.Reset(); - bool succeeded = true; - for (auto transition : collector.GetTransitions()) - { - if (!(succeeded = builder.Run(transition))) - { - break; - } - } - - if (succeeded) - { - Ptr parsedNode = builder.GetNode(); - newContext.modifiedNode = parsedNode.Cast(); - newContext.modifiedNode->InitializeQueryCache(); - } - } - - if (newContext.modifiedNode) - { - // get the latest text editing trace - TextEditNotifyStruct trace; - SPIN_LOCK(editTraceLock) - { - vint index = UnsafeGetEditTraceIndex(newContext.modifiedEditVersion); - if (index == -1) - { - return; - } - else - { - trace = editTrace[index]; - } - } - - // calculate the stop position for PDA traversing - TextPos stopPosition = GlobalTextPosToModifiedTextPos(newContext, trace.inputStart); - - // find all possible token before the current caret using the PDA - Ptr autoComplete = new AutoCompleteData; - SortedList tableTokenIndices; - RegexToken* editingToken = SearchValidInputToken(state, collector, stopPosition, newContext, tableTokenIndices); + SetActiveHyperlink(nullptr); + } - // collect all auto complete types - { - // collect all keywords that can be put into the auto complete list - for (auto token : tableTokenIndices) - { - vint regexToken = token - ParsingTable::UserTokenStart; - if (regexToken >= 0) - { - autoComplete->candidates.Add(regexToken); - if (parsingExecutor->GetTokenMetaData(regexToken).isCandidate) - { - autoComplete->shownCandidates.Add(regexToken); - } - } - } + editMode=value; + if(editMode==ViewOnly) + { + UpdateCursor(nullptr); + } + else + { + INativeCursor* cursor=GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::IBeam); + UpdateCursor(cursor); + } + } - // calculate the arranged stopPosition - if (editingToken) - { - TextPos tokenPos(editingToken->rowStart, editingToken->columnStart); - if (tokenPos < stopPosition) - { - stopPosition = tokenPos; - } - } + //================ selection operations - // calculate the start/end position for PDA traversing - TextPos startPos, endPos; - { - startPos = ModifiedTextPosToGlobalTextPos(newContext, stopPosition); - autoComplete->startPosition = startPos; - endPos = trace.inputEnd; - if (newContext.modifiedNode != newContext.originalNode) - { - startPos = GlobalTextPosToModifiedTextPos(newContext, startPos); - endPos = GlobalTextPosToModifiedTextPos(newContext, endPos); - } - if (startPos0) - { - endPos.column--; - } - } + void GuiDocumentCommonInterface::SelectAll() + { + vint lastIndex=documentElement->GetDocument()->paragraphs.Count()-1; + Ptr lastParagraph=documentElement->GetDocument()->paragraphs[lastIndex]; - // calculate the auto complete type - if (editingToken && parsingExecutor->GetTokenMetaData(editingToken->token).hasAutoComplete) - { - ParsingTextRange range(ParsingTextPos(startPos.row, startPos.column), ParsingTextPos(endPos.row, endPos.column)); - AutoCompleteData::RetriveContext(*autoComplete.Obj(), range, newContext.modifiedNode.Obj(), parsingExecutor.Obj()); - } - } - newContext.autoComplete = autoComplete; - } - } + TextPos begin(0, 0); + TextPos end(lastIndex, lastParagraph->GetText(false).Length()); + SetCaret(begin, end); } - void GuiGrammarAutoComplete::Execute(const RepeatingParsingOutput& input) + WString GuiDocumentCommonInterface::GetSelectionText() { - SPIN_LOCK(contextLock) + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + if(begin>end) { - if(input.editVersion model=documentElement->GetDocument()->CopyDocument(begin, end, false); + return model->GetText(true); + } + + void GuiDocumentCommonInterface::SetSelectionText(const WString& value) + { + List paragraphs; { - SPIN_LOCK(contextLock) + stream::StringReader reader(value); + WString paragraph; + bool empty=true; + + while(!reader.IsEnd()) { - newContext=context; - newContext.modifiedNode=0; - newContext.autoComplete=0; + WString line=reader.ReadLine(); + if(empty) + { + paragraph+=line; + empty=false; + } + else if(line!=L"") + { + paragraph+=L"\r\n"+line; + } + else + { + paragraphs.Add(paragraph); + paragraph=L""; + empty=true; + } } - if(newContext.originalNode) + + if(!empty) { - ExecuteEdit(newContext); + paragraphs.Add(paragraph); } } - if(newContext.originalNode) + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + if(begin>end) { - ExecuteCalculateList(newContext); + TextPos temp=begin; + begin=end; + end=temp; } - SPIN_LOCK(contextLock) - { - context=newContext; - } - if(newContext.modifiedNode) + Array text; + CopyFrom(text, paragraphs); + EditText(begin, end, documentElement->IsCaretEndPreferFrontSide(), text); + } + + Ptr GuiDocumentCommonInterface::GetSelectionModel() + { + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + if(begin>end) { - OnContextFinishedAsync(context); - GetApplication()->InvokeInMainThread(ownerComposition->GetRelatedControlHost(), [=]() - { - PostList(newContext, byGlobalCorrection); - }); + TextPos temp=begin; + begin=end; + end=temp; } + + Ptr model=documentElement->GetDocument()->CopyDocument(begin, end, true); + return model; } - void GuiGrammarAutoComplete::PostList(const AutoCompleteContext& newContext, bool byGlobalCorrection) + void GuiDocumentCommonInterface::SetSelectionModel(Ptr value) { - bool openList = true; // true: make the list visible - bool keepListState = false; // true: don't change the list visibility - Ptr autoComplete = newContext.autoComplete; - - // if failed to get the auto complete list, close - if (!autoComplete) + TextPos begin=documentElement->GetCaretBegin(); + TextPos end=documentElement->GetCaretEnd(); + if(begin>end) { - openList = false; - } - if (openList) - { - if (autoComplete->shownCandidates.Count() + autoComplete->candidateItems.Count() == 0) - { - openList = false; - } + TextPos temp=begin; + begin=end; + end=temp; } - TextPos startPosition, endPosition; - WString editingText; - if (openList) - { - SPIN_LOCK(editTraceLock) - { - // if the edit version is invalid, cancel - vint traceIndex = UnsafeGetEditTraceIndex(newContext.modifiedEditVersion); - if (traceIndex == -1) - { - return; - } - // an edit version has two trace at most, for text change and caret change, here we peak the text change - if (traceIndex > 0 && editTrace[traceIndex - 1].editVersion == context.modifiedEditVersion) - { - traceIndex--; - } - // if the edit version is not created by keyboard input, close - if (traceIndex >= 0) - { - TextEditNotifyStruct& trace = editTrace[traceIndex]; - if (!trace.keyInput) - { - openList = false; - } - } + EditRun(begin, end, value, true); + } - // scan all traces from the calculation's edit version until now - if (openList) - { - keepListState = true; - startPosition = autoComplete->startPosition; - endPosition = editTrace[editTrace.Count() - 1].inputEnd; - for (vint i = traceIndex; i < editTrace.Count(); i++) - { - TextEditNotifyStruct& trace = editTrace[i]; - // if there are no text change trace until now, don't change the list - if (trace.originalText != L"" || trace.inputText != L"") - { - keepListState = false; - } - // if the edit position goes before the start position of the auto complete, refresh - if (trace.inputEnd <= startPosition) - { - openList = false; - break; - } - } - } + //================ clipboard operations - if (traceIndex > 0) - { - editTrace.RemoveRange(0, traceIndex); - } - } - } + bool GuiDocumentCommonInterface::CanCut() + { + return editMode==Editable && documentElement->GetCaretBegin()!=documentElement->GetCaretEnd(); + } - // if there is a global correction send to the UI thread but the list is not opening, cancel - if (byGlobalCorrection && !IsListOpening()) - { - return; - } + bool GuiDocumentCommonInterface::CanCopy() + { + return documentElement->GetCaretBegin()!=documentElement->GetCaretEnd(); + } - // if the input text from the start position to the current position crosses a token, close - if (openList && element) + bool GuiDocumentCommonInterface::CanPaste() + { + if (editMode == Editable) { - editingText = element->GetLines().GetText(startPosition, endPosition); - if (grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(editingText)) - { - openList = false; - } + auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); + return reader->ContainsText() || reader->ContainsDocument() || reader->ContainsImage(); } + return false; + } - // calculate the content of the list - if (autoComplete && ((!keepListState && openList) || IsListOpening())) - { - SortedList itemKeys; - List itemValues; - - // copy all candidate keywords - for (auto token : autoComplete->shownCandidates) - { - WString literal = parsingExecutor->GetTokenMetaData(token).unescapedRegexText; - if (literal != L"" && !itemKeys.Contains(literal)) - { - ParsingCandidateItem item; - item.name = literal; - item.semanticId = -1; - itemValues.Insert(itemKeys.Add(literal), item); - } - } - - // copy all candidate symbols - if (autoComplete->acceptableSemanticIds) - { - for (auto item : autoComplete->candidateItems) - { - if (autoComplete->acceptableSemanticIds->Contains(item.semanticId)) - { - // add all acceptable display of a symbol - // because a symbol can has multiple representation in different places - if (item.name != L"" && !itemKeys.Contains(item.name)) - { - itemValues.Insert(itemKeys.Add(item.name), item); - } - } - } - } - - // fill the list - List candidateItems; - for (vint i = 0; i < itemValues.Count(); i++) - { - auto& item = itemValues[i]; - if (item.tag.IsNull()) - { - if (auto analyzer = parsingExecutor->GetAnalyzer()) - { - item.tag = analyzer->CreateTagForCandidateItem(item); - } - } + bool GuiDocumentCommonInterface::Cut() + { + if (!CanCut())return false; + auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); + auto model = GetSelectionModel(); + writer->SetDocument(model); + writer->Submit(); + SetSelectionText(L""); + return true; + } - GuiTextBoxAutoCompleteBase::AutoCompleteItem candidateItem; - candidateItem.text = item.name; - candidateItem.tag = item.tag; - candidateItems.Add(candidateItem); - } - SetListContent(candidateItems); - } + bool GuiDocumentCommonInterface::Copy() + { + if (!CanCopy()) return false; + auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); + auto model = GetSelectionModel(); + writer->SetDocument(model); + writer->Submit(); + return true; + } - // set the list state - if (!keepListState) + bool GuiDocumentCommonInterface::Paste() + { + if (!CanPaste()) return false; + auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); + if (reader->ContainsDocument()) { - if (openList) - { - OpenList(startPosition); - } - else + if (auto document = reader->GetDocument()) { - CloseList(); + SetSelectionModel(document); + return true; } } - - if (IsListOpening()) + if (reader->ContainsText()) { - HighlightList(editingText); + SetSelectionText(reader->GetText()); + return true; } - } - - void GuiGrammarAutoComplete::Initialize() - { - grammarParser=CreateAutoRecoverParser(parsingExecutor->GetParser()->GetTable()); - CollectLeftRecursiveRules(); - parsingExecutor->AttachCallback(this); - } - - void GuiGrammarAutoComplete::OnContextFinishedAsync(AutoCompleteContext& context) - { - if (auto analyzer = parsingExecutor->GetAnalyzer()) + if (reader->ContainsImage()) { - if (context.autoComplete && context.autoComplete->acceptableSemanticIds) + if (auto image = reader->GetImage()) { - analyzer->GetCandidateItemsAsync(*context.autoComplete.Obj(), context, context.autoComplete->candidateItems); + auto imageData = Ptr(new GuiImageData(image, 0)); + EditImage(GetCaretBegin(), GetCaretEnd(), imageData); + return true; } } + return false; } - void GuiGrammarAutoComplete::EnsureAutoCompleteFinished() + //================ undo redo control + + bool GuiDocumentCommonInterface::CanUndo() { - parsingExecutor->EnsureTaskFinished(); - SPIN_LOCK(contextLock) - { - context = AutoCompleteContext(); - } + return editMode==Editable && undoRedoProcessor->CanUndo(); } - GuiGrammarAutoComplete::GuiGrammarAutoComplete(Ptr _parsingExecutor) - :RepeatingParsingExecutor::CallbackBase(_parsingExecutor) - ,editing(false) + bool GuiDocumentCommonInterface::CanRedo() { - Initialize(); + return editMode==Editable && undoRedoProcessor->CanRedo(); } - GuiGrammarAutoComplete::GuiGrammarAutoComplete(Ptr _grammarParser, const WString& _grammarRule) - :RepeatingParsingExecutor::CallbackBase(new RepeatingParsingExecutor(_grammarParser, _grammarRule)) - ,editing(false) + void GuiDocumentCommonInterface::ClearUndoRedo() { - Initialize(); + undoRedoProcessor->ClearUndoRedo(); } - GuiGrammarAutoComplete::~GuiGrammarAutoComplete() + bool GuiDocumentCommonInterface::GetModified() { - EnsureAutoCompleteFinished(); - parsingExecutor->DetachCallback(this); + return undoRedoProcessor->GetModified(); } - Ptr GuiGrammarAutoComplete::GetParsingExecutor() + void GuiDocumentCommonInterface::NotifyModificationSaved() { - return parsingExecutor; + undoRedoProcessor->NotifyModificationSaved(); } - } - } -} - -/*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGECOLORIZER.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace elements; - using namespace parsing; - using namespace parsing::tabling; - using namespace collections; - using namespace theme; - -/*********************************************************************** -GuiGrammarColorizer -***********************************************************************/ - void GuiGrammarColorizer::OnParsingFinishedAsync(const RepeatingParsingOutput& output) + bool GuiDocumentCommonInterface::Undo() { - SPIN_LOCK(contextLock) + if(CanUndo()) { - context=output; - OnContextFinishedAsync(context); + return undoRedoProcessor->Undo(); + } + else + { + return false; } - RestartColorizer(); - } - - void GuiGrammarColorizer::OnContextFinishedAsync(const RepeatingParsingOutput& context) - { - } - - void GuiGrammarColorizer::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) - { - GuiTextBoxRegexColorizer::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); - RepeatingParsingExecutor::CallbackBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); } - void GuiGrammarColorizer::Detach() + bool GuiDocumentCommonInterface::Redo() { - GuiTextBoxRegexColorizer::Detach(); - RepeatingParsingExecutor::CallbackBase::Detach(); - if(element && elementModifyLock) + if(CanRedo()) { - parsingExecutor->EnsureTaskFinished(); - StopColorizer(false); + return undoRedoProcessor->Redo(); + } + else + { + return false; } } - void GuiGrammarColorizer::TextEditPreview(TextEditPreviewStruct& arguments) +/*********************************************************************** +GuiDocumentViewer +***********************************************************************/ + + void GuiDocumentViewer::BeforeControlTemplateUninstalled_() { - GuiTextBoxRegexColorizer::TextEditPreview(arguments); - RepeatingParsingExecutor::CallbackBase::TextEditPreview(arguments); + ReplaceMouseArea(nullptr); } - void GuiGrammarColorizer::TextEditNotify(const TextEditNotifyStruct& arguments) + void GuiDocumentViewer::AfterControlTemplateInstalled_(bool initialize) { - GuiTextBoxRegexColorizer::TextEditNotify(arguments); - RepeatingParsingExecutor::CallbackBase::TextEditNotify(arguments); + auto ct = TypedControlTemplateObject(true); + baselineDocument = ct->GetBaselineDocument(); + if (documentElement) + { + documentElement->SetCaretColor(ct->GetCaretColor()); + SetDocument(GetDocument()); + } + ReplaceMouseArea(containerComposition->GetParent()); } - void GuiGrammarColorizer::TextCaretChanged(const TextCaretChangedStruct& arguments) + void GuiDocumentViewer::UpdateDisplayFont() { - GuiTextBoxRegexColorizer::TextCaretChanged(arguments); - RepeatingParsingExecutor::CallbackBase::TextCaretChanged(arguments); + GuiScrollContainer::UpdateDisplayFont(); + OnFontChanged(); } - void GuiGrammarColorizer::TextEditFinished(vuint editVersion) + Point GuiDocumentViewer::GetDocumentViewPosition() { - GuiTextBoxRegexColorizer::TextEditFinished(editVersion); - RepeatingParsingExecutor::CallbackBase::TextEditFinished(editVersion); + return GetViewBounds().LeftTop(); } - void GuiGrammarColorizer::OnSemanticColorize(SemanticColorizeContext& context, const RepeatingParsingOutput& input) + void GuiDocumentViewer::EnsureRectVisible(Rect bounds) { - if (auto analyzer = parsingExecutor->GetAnalyzer()) + Rect viewBounds=GetViewBounds(); + vint offset=0; + if(bounds.y1GetSemanticIdForTokenAsync(context, input); - if(semanticId!=-1) - { - context.semanticId=semanticId; - } + offset=bounds.y1-viewBounds.y1; + } + else if(bounds.y2>viewBounds.y2) + { + offset=bounds.y2-viewBounds.y2; } - } - void GuiGrammarColorizer::EnsureColorizerFinished() - { - parsingExecutor->EnsureTaskFinished(); - StopColorizerForever(); - SPIN_LOCK(contextLock) + if (auto scroll = GetVerticalScroll()) { - context=RepeatingParsingOutput(); + scroll->SetPosition(viewBounds.y1 + offset); } } - GuiGrammarColorizer::GuiGrammarColorizer(Ptr _parsingExecutor) - :RepeatingParsingExecutor::CallbackBase(_parsingExecutor) + GuiDocumentViewer::GuiDocumentViewer(theme::ThemeName themeName) + :GuiScrollContainer(themeName) { - parsingExecutor->AttachCallback(this); - BeginSetColors(); + SetAcceptTabInput(true); + SetFocusableComposition(boundsComposition); + InstallDocumentViewer(this, containerComposition->GetParent(), containerComposition, boundsComposition, focusableComposition); + + SetExtendToFullWidth(true); + SetHorizontalAlwaysVisible(false); } - GuiGrammarColorizer::GuiGrammarColorizer(Ptr _grammarParser, const WString& _grammarRule) - :RepeatingParsingExecutor::CallbackBase(new RepeatingParsingExecutor(_grammarParser, _grammarRule)) + GuiDocumentViewer::~GuiDocumentViewer() { - parsingExecutor->AttachCallback(this); - BeginSetColors(); } - GuiGrammarColorizer::~GuiGrammarColorizer() + const WString& GuiDocumentViewer::GetText() { - EnsureColorizerFinished(); - parsingExecutor->DetachCallback(this); + text=documentElement->GetDocument()->GetText(true); + return text; } - void GuiGrammarColorizer::BeginSetColors() + void GuiDocumentViewer::SetText(const WString& value) { - ClearTokens(); - colorSettings.Clear(); - - text::ColorEntry entry; - { - entry.normal.text = Color(0, 0, 0); - entry.normal.background = Color(0, 0, 0, 0); - entry.selectedFocused.text = Color(255, 255, 255); - entry.selectedFocused.background = Color(51, 153, 255); - entry.selectedUnfocused.text = Color(255, 255, 255); - entry.selectedUnfocused.background = Color(51, 153, 255); - } - - SetDefaultColor(entry); - colorSettings.Add(L"Default", entry); + SelectAll(); + SetSelectionText(value); } - const collections::SortedList& GuiGrammarColorizer::GetColorNames() +/*********************************************************************** +GuiDocumentLabel +***********************************************************************/ + + void GuiDocumentLabel::BeforeControlTemplateUninstalled_() { - return colorSettings.Keys(); } - GuiGrammarColorizer::ColorEntry GuiGrammarColorizer::GetColor(const WString& name) + void GuiDocumentLabel::AfterControlTemplateInstalled_(bool initialize) { - vint index=colorSettings.Keys().IndexOf(name); - return index==-1?GetDefaultColor():colorSettings.Values().Get(index); + auto ct = TypedControlTemplateObject(true); + baselineDocument = ct->GetBaselineDocument(); + if (documentElement) + { + documentElement->SetCaretColor(ct->GetCaretColor()); + SetDocument(GetDocument()); + } } - void GuiGrammarColorizer::SetColor(const WString& name, const ColorEntry& entry) + void GuiDocumentLabel::UpdateDisplayFont() { - colorSettings.Set(name, entry); + GuiControl::UpdateDisplayFont(); + OnFontChanged(); } - void GuiGrammarColorizer::SetColor(const WString& name, const Color& color) + GuiDocumentLabel::GuiDocumentLabel(theme::ThemeName themeName) + :GuiControl(themeName) { - text::ColorEntry entry=GetDefaultColor(); - entry.normal.text=color; - SetColor(name, entry); + SetAcceptTabInput(true); + SetFocusableComposition(boundsComposition); + InstallDocumentViewer(this, containerComposition, containerComposition, boundsComposition, focusableComposition); } - void GuiGrammarColorizer::EndSetColors() + GuiDocumentLabel::~GuiDocumentLabel() { - SortedList tokenColors; - Ptr table=parsingExecutor->GetParser()->GetTable(); - semanticColorMap.Clear(); - - vint tokenCount=table->GetTokenCount(); - for(vint token=ParsingTable::UserTokenStart;tokenGetTokenInfo(token); - const RepeatingParsingExecutor::TokenMetaData& md=parsingExecutor->GetTokenMetaData(token-ParsingTable::UserTokenStart); - if(md.defaultColorIndex==-1) - { - AddToken(tokenInfo.regex, GetDefaultColor()); - } - else - { - WString name=parsingExecutor->GetSemanticName(md.defaultColorIndex); - vint color=AddToken(tokenInfo.regex, GetColor(name)); - semanticColorMap.Set(md.defaultColorIndex, color); - tokenColors.Add(name); - } - } - - for (auto [color, index] : indexed(colorSettings.Keys())) - { - if(!tokenColors.Contains(color)) - { - vint semanticId=parsingExecutor->GetSemanticId(color); - if(semanticId!=-1) - { - vint tokenId=AddExtraToken(colorSettings.Values().Get(index)); - vint color=tokenId+tokenCount-ParsingTable::UserTokenStart; - semanticColorMap.Set(semanticId, color); - } - } - } - Setup(); } - void GuiGrammarColorizer::ColorizeTokenContextSensitive(vint lineIndex, const wchar_t* text, vint start, vint length, vint& token, vint& contextState) + const WString& GuiDocumentLabel::GetText() { - SPIN_LOCK(contextLock) - { - ParsingTreeObject* node=context.node.Obj(); - if(node && token!=-1 && parsingExecutor->GetTokenMetaData(token).hasContextColor) - { - ParsingTextPos pos(lineIndex, start); - SemanticColorizeContext scContext; - if(SemanticColorizeContext::RetriveContext(scContext, pos, node, parsingExecutor.Obj())) - { - const RepeatingParsingExecutor::FieldMetaData& md=parsingExecutor->GetFieldMetaData(scContext.type, scContext.field); - vint semantic=md.colorIndex; - scContext.semanticId=-1; - - if(scContext.acceptableSemanticIds) - { - OnSemanticColorize(scContext, context); - if(md.semantics->Contains(scContext.semanticId)) - { - semantic=scContext.semanticId; - } - } - - if(semantic!=-1) - { - vint index=semanticColorMap.Keys().IndexOf(semantic); - if(index!=-1) - { - token=semanticColorMap.Values()[index]; - } - } - } - } - } + text=documentElement->GetDocument()->GetText(true); + return text; } - Ptr GuiGrammarColorizer::GetParsingExecutor() + void GuiDocumentLabel::SetText(const WString& value) { - return parsingExecutor; + SelectAll(); + SetSelectionText(value); } } } } + /*********************************************************************** -.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGEOPERATIONS.CPP +.\CONTROLS\TEXTEDITORPACKAGE\GUITEXTCOMMONINTERFACE.CPP ***********************************************************************/ +#include namespace vl { @@ -20068,1022 +19245,933 @@ namespace vl { namespace controls { - using namespace collections; - using namespace parsing; - using namespace parsing::tabling; - using namespace regex_internal; + using namespace elements; + using namespace elements::text; + using namespace compositions; /*********************************************************************** -ParsingContext +GuiTextBoxCommonInterface::DefaultCallback ***********************************************************************/ - bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTreeNode* foundNode, RepeatingParsingExecutor* executor) + GuiTextBoxCommonInterface::DefaultCallback::DefaultCallback(elements::GuiColorizedTextElement* _textElement, compositions::GuiGraphicsComposition* _textComposition) + :textElement(_textElement) + ,textComposition(_textComposition) { - ParsingTreeToken* foundToken=dynamic_cast(foundNode); - if(!foundToken) return false; - ParsingTreeObject* tokenParent=dynamic_cast(foundNode->GetParent()); - if(!tokenParent) return false; - vint index=tokenParent->GetMembers().Values().IndexOf(foundNode); - if(index==-1) return false; - - WString type=tokenParent->GetType(); - WString field=tokenParent->GetMembers().Keys().Get(index); - const RepeatingParsingExecutor::FieldMetaData& md=executor->GetFieldMetaData(type, field); - - output.foundToken=foundToken; - output.tokenParent=tokenParent; - output.type=type; - output.field=field; - output.acceptableSemanticIds=md.semantics; - return true; } - bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTextPos pos, parsing::ParsingTreeObject* rootNode, RepeatingParsingExecutor* executor) + GuiTextBoxCommonInterface::DefaultCallback::~DefaultCallback() { - ParsingTreeNode* foundNode=rootNode->FindDeepestNode(pos); - if(!foundNode) return false; - return RetriveContext(output, foundNode, executor); } - bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTextRange range, ParsingTreeObject* rootNode, RepeatingParsingExecutor* executor) + TextPos GuiTextBoxCommonInterface::DefaultCallback::GetLeftWord(TextPos pos) { - ParsingTreeNode* foundNode=rootNode->FindDeepestNode(range); - if(!foundNode) return false; - return RetriveContext(output, foundNode, executor); + return pos; } -/*********************************************************************** -RepeatingParsingExecutor::IParsingAnalyzer -***********************************************************************/ - - parsing::ParsingTreeNode* RepeatingParsingExecutor::IParsingAnalyzer::ToParent(parsing::ParsingTreeNode* node, const RepeatingPartialParsingOutput* output) - { - if (!output || !output->modifiedNode) return node; - return node == output->modifiedNode.Obj() - ? output->originalNode.Obj() - : node; - } - - parsing::ParsingTreeObject* RepeatingParsingExecutor::IParsingAnalyzer::ToChild(parsing::ParsingTreeObject* node, const RepeatingPartialParsingOutput* output) - { - if (!output || !output->modifiedNode) return node; - return node == output->originalNode.Obj() - ? output->modifiedNode.Obj() - : node; - } - - Ptr RepeatingParsingExecutor::IParsingAnalyzer::ToChild(Ptr node, const RepeatingPartialParsingOutput* output) - { - if (!output) return node; - return node == output->originalNode - ? output->modifiedNode.Cast() - : node; - } + TextPos GuiTextBoxCommonInterface::DefaultCallback::GetRightWord(TextPos pos) + { + return pos; + } - parsing::ParsingTreeNode* RepeatingParsingExecutor::IParsingAnalyzer::GetParent(parsing::ParsingTreeNode* node, const RepeatingPartialParsingOutput* output) - { - return ToParent(node, output)->GetParent(); - } + void GuiTextBoxCommonInterface::DefaultCallback::GetWord(TextPos pos, TextPos& begin, TextPos& end) + { + begin=pos; + end=pos; + } - Ptr RepeatingParsingExecutor::IParsingAnalyzer::GetMember(parsing::ParsingTreeObject* node, const WString& name, const RepeatingPartialParsingOutput* output) - { - return ToChild(ToChild(node, output)->GetMember(name), output); - } + vint GuiTextBoxCommonInterface::DefaultCallback::GetPageRows() + { + return textComposition->GetBounds().Height()/textElement->GetLines().GetRowHeight(); + } - Ptr RepeatingParsingExecutor::IParsingAnalyzer::GetItem(parsing::ParsingTreeArray* node, vint index, const RepeatingPartialParsingOutput* output) - { - return ToChild(node->GetItem(index), output); - } + bool GuiTextBoxCommonInterface::DefaultCallback::BeforeModify(TextPos start, TextPos end, const WString& originalText, WString& inputText) + { + return true; + } /*********************************************************************** -RepeatingParsingExecutor::CallbackBase +GuiTextBoxCommonInterface ***********************************************************************/ - - RepeatingParsingExecutor::CallbackBase::CallbackBase(Ptr _parsingExecutor) - :parsingExecutor(_parsingExecutor) - ,callbackAutoPushing(false) - ,callbackElement(0) - ,callbackElementModifyLock(0) + + void GuiTextBoxCommonInterface::InvokeUndoRedoChanged() { + UndoRedoChanged.Execute(textControl->GetNotifyEventArguments()); } - RepeatingParsingExecutor::CallbackBase::~CallbackBase() + void GuiTextBoxCommonInterface::InvokeModifiedChanged() { + ModifiedChanged.Execute(textControl->GetNotifyEventArguments()); } - void RepeatingParsingExecutor::CallbackBase::RequireAutoSubmitTask(bool enabled) + void GuiTextBoxCommonInterface::UpdateCaretPoint() { - callbackAutoPushing=enabled; + GuiGraphicsHost* host=textComposition->GetRelatedGraphicsHost(); + if(host) + { + Rect caret=textElement->GetLines().GetRectFromTextPos(textElement->GetCaretEnd()); + Point view=textElement->GetViewPosition(); + vint x=caret.x1-view.x; + vint y=caret.y2-view.y; + host->SetCaretPoint(Point(x, y), textComposition); + } } - void RepeatingParsingExecutor::CallbackBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) + void GuiTextBoxCommonInterface::Move(TextPos pos, bool shift) { - if(_element) + TextPos oldBegin = textElement->GetCaretBegin(); + TextPos oldEnd = textElement->GetCaretEnd(); + +#if defined VCZH_MSVC + if (0 <= pos.row && pos.row < textElement->GetLines().GetCount()) { - SPIN_LOCK(_elementModifyLock) + TextLine& line = textElement->GetLines().GetLine(pos.row); + if (pos.column > 0 && UTF16SPFirst(line.text[pos.column - 1]) && UTF16SPSecond(line.text[pos.column])) { - callbackElement=_element; - callbackElementModifyLock=&_elementModifyLock; + if (pos < oldBegin) + { + pos.column--; + } + else if (pos > oldBegin) + { + pos.column++; + } } } - - parsingExecutor->ActivateCallback(this); - if(callbackElement && callbackElementModifyLock && callbackAutoPushing) +#endif + + pos = textElement->GetLines().Normalize(pos); + if (!shift) { - SPIN_LOCK(*callbackElementModifyLock) + textElement->SetCaretBegin(pos); + } + textElement->SetCaretEnd(pos); + if (textControl) + { + GuiGraphicsHost* host = textComposition->GetRelatedGraphicsHost(); + if (host) { - RepeatingParsingInput input; - input.editVersion=editVersion; - input.code=callbackElement->GetLines().GetText(); - parsingExecutor->SubmitTask(input); + if (host->GetFocusedComposition() == textControl->GetFocusableComposition()) + { + textElement->SetCaretVisible(true); + } } } - } - void RepeatingParsingExecutor::CallbackBase::Detach() - { - if(callbackElement && callbackElementModifyLock) + Rect bounds = textElement->GetLines().GetRectFromTextPos(pos); + Rect view = Rect(textElement->GetViewPosition(), textComposition->GetBounds().GetSize()); + Point viewPoint = view.LeftTop(); + + if (view.x2 > view.x1 && view.y2 > view.y1) { - SPIN_LOCK(*callbackElementModifyLock) + if (bounds.x1 < view.x1) { - callbackElement=0; - callbackElementModifyLock=0; + viewPoint.x = bounds.x1; + } + else if (bounds.x2 > view.x2) + { + viewPoint.x = bounds.x2 - view.Width(); + } + if (bounds.y1 < view.y1) + { + viewPoint.y = bounds.y1; + } + else if (bounds.y2 > view.y2) + { + viewPoint.y = bounds.y2 - view.Height(); } } - - parsingExecutor->DeactivateCallback(this); - } - - void RepeatingParsingExecutor::CallbackBase::TextEditPreview(TextEditPreviewStruct& arguments) - { - } - - void RepeatingParsingExecutor::CallbackBase::TextEditNotify(const TextEditNotifyStruct& arguments) - { - } - void RepeatingParsingExecutor::CallbackBase::TextCaretChanged(const TextCaretChangedStruct& arguments) - { - } + callback->ScrollToView(viewPoint); + UpdateCaretPoint(); - void RepeatingParsingExecutor::CallbackBase::TextEditFinished(vuint editVersion) - { - if(callbackElement && callbackElementModifyLock && callbackAutoPushing) + TextPos newBegin = textElement->GetCaretBegin(); + TextPos newEnd = textElement->GetCaretEnd(); + if (oldBegin != newBegin || oldEnd != newEnd) { - SPIN_LOCK(*callbackElementModifyLock) + ICommonTextEditCallback::TextCaretChangedStruct arguments; + arguments.oldBegin = oldBegin; + arguments.oldEnd = oldEnd; + arguments.newBegin = newBegin; + arguments.newEnd = newEnd; + arguments.editVersion = editVersion; + for (vint i = 0; i < textEditCallbacks.Count(); i++) { - RepeatingParsingInput input; - input.editVersion=editVersion; - input.code=callbackElement->GetLines().GetText(); - parsingExecutor->SubmitTask(input); + textEditCallbacks[i]->TextCaretChanged(arguments); } + SelectionChanged.Execute(textControl->GetNotifyEventArguments()); } } -/*********************************************************************** -RepeatingParsingExecutor -***********************************************************************/ - - void RepeatingParsingExecutor::Execute(const RepeatingParsingInput& input) + void GuiTextBoxCommonInterface::Modify(TextPos start, TextPos end, const WString& input, bool asKeyInput) { - List> errors; - Ptr node=grammarParser->Parse(input.code, grammarRule, errors).Cast(); - if(node) + if(start>end) { - node->InitializeQueryCache(); + TextPos temp=start; + start=end; + end=temp; } - - RepeatingParsingOutput result; - result.node=node; - result.editVersion=input.editVersion; - result.code=input.code; - if(node) + TextPos originalStart=start; + TextPos originalEnd=end; + WString originalText=textElement->GetLines().GetText(start, end); + WString inputText=input; + if(callback->BeforeModify(start, end, originalText, inputText)) { - OnContextFinishedAsync(result); - for (auto callback : callbacks) { - callback->OnParsingFinishedAsync(result); + ICommonTextEditCallback::TextEditPreviewStruct arguments; + arguments.originalStart=originalStart; + arguments.originalEnd=originalEnd; + arguments.originalText=originalText; + arguments.inputText=inputText; + arguments.editVersion=editVersion; + arguments.keyInput=asKeyInput; + for(vint i=0;iTextEditPreview(arguments); + } + + inputText=arguments.inputText; + if(originalStart!=arguments.originalStart || originalEnd!=arguments.originalEnd) + { + originalStart=arguments.originalStart; + originalEnd=arguments.originalEnd; + originalText=textElement->GetLines().GetText(originalStart, originalEnd); + start=originalStart; + end=originalEnd; + } + } + + SPIN_LOCK(elementModifyLock) + { + end=textElement->GetLines().Modify(start, end, inputText); + } + callback->AfterModify(originalStart, originalEnd, originalText, start, end, inputText); + + editVersion++; + { + ICommonTextEditCallback::TextEditNotifyStruct arguments; + arguments.originalStart=originalStart; + arguments.originalEnd=originalEnd; + arguments.originalText=originalText; + arguments.inputStart=start; + arguments.inputEnd=end; + arguments.inputText=inputText; + arguments.editVersion=editVersion; + arguments.keyInput=asKeyInput; + for(vint i=0;iTextEditNotify(arguments); + } + } + + Move(end, false); + + for(vint i=0;iTextEditFinished(editVersion); } + + textControl->TextChanged.Execute(textControl->GetNotifyEventArguments()); } } - void RepeatingParsingExecutor::PrepareMetaData() + bool GuiTextBoxCommonInterface::ProcessKey(VKEY code, bool shift, bool ctrl) { - Ptr table=grammarParser->GetTable(); - tokenIndexMap.Clear(); - semanticIndexMap.Clear(); - tokenMetaDatas.Clear(); - fieldMetaDatas.Clear(); - - Dictionary> tokenColorAtts, tokenContextColorAtts, tokenCandidateAtts, tokenAutoCompleteAtts; - Dictionary> fieldColorAtts, fieldSemanticAtts; + if(IGuiShortcutKeyItem* item=internalShortcutKeyManager->TryGetShortcut(ctrl, shift, false, code)) + { + GuiEventArgs arguments(textControl->GetBoundsComposition()); + item->Executed.Execute(arguments); + return true; + } + TextPos begin=textElement->GetCaretBegin(); + TextPos end=textElement->GetCaretEnd(); + switch(code) { - vint tokenCount=table->GetTokenCount(); - for(vint token=ParsingTable::UserTokenStart;tokenIsListOpening() && !shift && !ctrl) { - const ParsingTable::TokenInfo& tokenInfo=table->GetTokenInfo(token); - vint tokenIndex=token-ParsingTable::UserTokenStart; - tokenIndexMap.Add(tokenInfo.name, tokenIndex); - - if(Ptr att=GetColorAttribute(tokenInfo.attributeIndex)) + autoComplete->CloseList(); + return true; + } + break; + case VKEY::KEY_RETURN: + if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) + { + if(autoComplete->ApplySelectedListItem()) { - tokenColorAtts.Add(tokenIndex, att); + preventEnterDueToAutoComplete=true; + return true; } - if(Ptr att=GetContextColorAttribute(tokenInfo.attributeIndex)) + } + break; + case VKEY::KEY_UP: + if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) + { + autoComplete->SelectPreviousListItem(); + } + else + { + end.row--; + Move(end, shift); + } + return true; + case VKEY::KEY_DOWN: + if(autoComplete && autoComplete->IsListOpening() && !shift && !ctrl) + { + autoComplete->SelectNextListItem(); + } + else + { + end.row++; + Move(end, shift); + } + return true; + case VKEY::KEY_LEFT: + { + if(ctrl) { - tokenContextColorAtts.Add(tokenIndex, att); + Move(callback->GetLeftWord(end), shift); } - if(Ptr att=GetCandidateAttribute(tokenInfo.attributeIndex)) + else { - tokenCandidateAtts.Add(tokenIndex, att); + if(end.column==0) + { + if(end.row>0) + { + end.row--; + end=textElement->GetLines().Normalize(end); + end.column=textElement->GetLines().GetLine(end.row).dataLength; + } + } + else + { + end.column--; + } + Move(end, shift); } - if(Ptr att=GetAutoCompleteAttribute(tokenInfo.attributeIndex)) + } + return true; + case VKEY::KEY_RIGHT: + { + if(ctrl) { - tokenAutoCompleteAtts.Add(tokenIndex, att); + Move(callback->GetRightWord(end), shift); + } + else + { + if(end.column==textElement->GetLines().GetLine(end.row).dataLength) + { + if(end.rowGetLines().GetCount()-1) + { + end.row++; + end.column=0; + } + } + else + { + end.column++; + } + Move(end, shift); } } - } - { - vint fieldCount=table->GetTreeFieldInfoCount(); - for(vint field=0;fieldGetTreeFieldInfo(field); - FieldDesc fieldDesc(fieldInfo.type, fieldInfo.field); - - if(Ptr att=GetColorAttribute(fieldInfo.attributeIndex)) + if(ctrl) { - fieldColorAtts.Add(fieldDesc, att); + Move(TextPos(0, 0), shift); } - if(Ptr att=GetSemanticAttribute(fieldInfo.attributeIndex)) + else { - fieldSemanticAtts.Add(fieldDesc, att); + end.column=0; + Move(end, shift); } } - } - - for (auto att : - From(tokenColorAtts.Values()) - .Concat(tokenContextColorAtts.Values()) - .Concat(fieldColorAtts.Values()) - .Concat(fieldSemanticAtts.Values()) - ) - { - for (auto argument : att->arguments) + return true; + case VKEY::KEY_END: { - if(!semanticIndexMap.Contains(argument)) + if(ctrl) { - semanticIndexMap.Add(argument); + end.row=textElement->GetLines().GetCount()-1; } + end.column=textElement->GetLines().GetLine(end.row).dataLength; + Move(end, shift); } - } - - vint index=0; - for (auto tokenIndex : tokenIndexMap.Values()) - { - TokenMetaData md; - md.tableTokenIndex=tokenIndex+ParsingTable::UserTokenStart; - md.lexerTokenIndex=tokenIndex; - md.defaultColorIndex=-1; - md.hasContextColor=false; - md.hasAutoComplete=false; - md.isCandidate=false; - - if((index=tokenColorAtts.Keys().IndexOf(tokenIndex))!=-1) + return true; + case VKEY::KEY_PRIOR: { - md.defaultColorIndex=semanticIndexMap.IndexOf(tokenColorAtts.Values()[index]->arguments[0]); + end.row-=callback->GetPageRows(); + Move(end, shift); } - md.hasContextColor=tokenContextColorAtts.Keys().Contains(tokenIndex); - md.hasAutoComplete=tokenAutoCompleteAtts.Keys().Contains(tokenIndex); - if ((md.isCandidate = tokenCandidateAtts.Keys().Contains(tokenIndex))) + return true; + case VKEY::KEY_NEXT: { - const ParsingTable::TokenInfo& tokenInfo = table->GetTokenInfo(md.tableTokenIndex); - auto regex = wtou32(tokenInfo.regex); - if (IsRegexEscapedLiteralString(regex)) + end.row+=callback->GetPageRows(); + Move(end, shift); + } + return true; + case VKEY::KEY_BACK: + if(!readonly) + { + if(ctrl && !shift) { - md.unescapedRegexText = u32tow(UnescapeTextForRegex(regex)); + ProcessKey(VKEY::KEY_LEFT, true, true); + ProcessKey(VKEY::KEY_BACK, false, false); + } + else if(!ctrl && shift) + { + ProcessKey(VKEY::KEY_UP, true, false); + ProcessKey(VKEY::KEY_BACK, false, false); } else { - md.isCandidate = false; + if(begin==end) + { + ProcessKey(VKEY::KEY_LEFT, true, false); + } + SetSelectionTextAsKeyInput(L""); } + return true; } - - tokenMetaDatas.Add(tokenIndex, md); - } - { - vint fieldCount=table->GetTreeFieldInfoCount(); - for(vint field=0;fieldGetTreeFieldInfo(field); - FieldDesc fieldDesc(fieldInfo.type, fieldInfo.field); - - FieldMetaData md; - md.colorIndex=-1; - - if((index=fieldColorAtts.Keys().IndexOf(fieldDesc))!=-1) + if(ctrl && !shift) { - md.colorIndex=semanticIndexMap.IndexOf(fieldColorAtts.Values()[index]->arguments[0]); + ProcessKey(VKEY::KEY_RIGHT, true, true); + ProcessKey(VKEY::KEY_DELETE, false, false); } - if((index=fieldSemanticAtts.Keys().IndexOf(fieldDesc))!=-1) + else if(!ctrl && shift) { - md.semantics=new List; - for (auto argument : fieldSemanticAtts.Values()[index]->arguments) + ProcessKey(VKEY::KEY_DOWN, true, false); + ProcessKey(VKEY::KEY_DELETE, false, false); + } + else + { + if(begin==end) { - md.semantics->Add(semanticIndexMap.IndexOf(argument)); + ProcessKey(VKEY::KEY_RIGHT, true, false); } + SetSelectionTextAsKeyInput(L""); } - - fieldMetaDatas.Add(fieldDesc, md); + return true; } + break; + default:; } + return false; } - void RepeatingParsingExecutor::OnContextFinishedAsync(RepeatingParsingOutput& context) + void GuiTextBoxCommonInterface::OnGotFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if(analyzer) - { - context.cache = analyzer->CreateCacheAsync(context); - } + textElement->SetFocused(true); + textElement->SetCaretVisible(true); + UpdateCaretPoint(); } - RepeatingParsingExecutor::RepeatingParsingExecutor(Ptr _grammarParser, const WString& _grammarRule, Ptr _analyzer) - :grammarParser(_grammarParser) - ,grammarRule(_grammarRule) - ,analyzer(_analyzer) - ,autoPushingCallback(0) + void GuiTextBoxCommonInterface::OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - PrepareMetaData(); - if (analyzer) - { - analyzer->Attach(this); - } + textElement->SetFocused(false); + textElement->SetCaretVisible(false); } - RepeatingParsingExecutor::~RepeatingParsingExecutor() + void GuiTextBoxCommonInterface::OnCaretNotify(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - EnsureTaskFinished(); - if (analyzer) - { - analyzer->Detach(this); - } + textElement->SetCaretVisible(!textElement->GetCaretVisible()); } - Ptr RepeatingParsingExecutor::GetParser() + void GuiTextBoxCommonInterface::OnLeftButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - return grammarParser; + if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) + { + dragging=true; + TextPos pos=GetNearestTextPos(Point(arguments.x, arguments.y)); + Move(pos, arguments.shift); + } } - bool RepeatingParsingExecutor::AttachCallback(ICallback* value) + void GuiTextBoxCommonInterface::OnLeftButtonUp(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if(!value) return false; - if(callbacks.Contains(value)) return false; - callbacks.Add(value); - return true; + if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) + { + dragging=false; + } } - bool RepeatingParsingExecutor::DetachCallback(ICallback* value) + void GuiTextBoxCommonInterface::OnMouseMove(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if(!value) return false; - if(!callbacks.Contains(value)) return false; - DeactivateCallback(value); - callbacks.Remove(value); - return true; + if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) + { + if(dragging) + { + TextPos pos=GetNearestTextPos(Point(arguments.x, arguments.y)); + Move(pos, true); + } + } } - bool RepeatingParsingExecutor::ActivateCallback(ICallback* value) + void GuiTextBoxCommonInterface::OnKeyDown(compositions::GuiGraphicsComposition* sender, compositions::GuiKeyEventArgs& arguments) { - if(!value) return false; - if(!callbacks.Contains(value)) return false; - if(activatedCallbacks.Contains(value)) return false; - activatedCallbacks.Add(value); - - if(!autoPushingCallback) + if(textControl->GetVisuallyEnabled() && arguments.compositionSource==arguments.eventSource) { - autoPushingCallback=value; - autoPushingCallback->RequireAutoSubmitTask(true); + if(ProcessKey(arguments.code, arguments.shift, arguments.ctrl)) + { + arguments.handled=true; + } } - return true; } - bool RepeatingParsingExecutor::DeactivateCallback(ICallback* value) + void GuiTextBoxCommonInterface::OnCharInput(compositions::GuiGraphicsComposition* sender, compositions::GuiCharEventArgs& arguments) { - if(!value) return false; - if(!callbacks.Contains(value)) return false; - if(!activatedCallbacks.Contains(value)) return false; - - if(autoPushingCallback==value) + if (preventEnterDueToAutoComplete) { - autoPushingCallback->RequireAutoSubmitTask(false); - autoPushingCallback=0; + preventEnterDueToAutoComplete = false; + if (arguments.code == (wchar_t)VKEY::KEY_RETURN) + { + return; + } } - activatedCallbacks.Remove(value); - if(!autoPushingCallback && activatedCallbacks.Count()>0) + if (textControl->GetVisuallyEnabled() && arguments.compositionSource == arguments.eventSource) { - autoPushingCallback=activatedCallbacks[0]; - autoPushingCallback->RequireAutoSubmitTask(true); + if (!readonly && + arguments.code != (wchar_t)VKEY::KEY_ESCAPE && + arguments.code != (wchar_t)VKEY::KEY_BACK && + (arguments.code != (wchar_t)VKEY::KEY_TAB || textControl->GetAcceptTabInput()) && + !arguments.ctrl) + { + SetSelectionTextAsKeyInput(WString::FromChar(arguments.code)); + } } - return true; } - Ptr RepeatingParsingExecutor::GetAnalyzer() + void GuiTextBoxCommonInterface::Install( + elements::GuiColorizedTextElement* _textElement, + compositions::GuiGraphicsComposition* _textComposition, + GuiControl* _textControl, + compositions::GuiGraphicsComposition* eventComposition, + compositions::GuiGraphicsComposition* focusableComposition + ) { - return analyzer; - } + textElement=_textElement; + textComposition=_textComposition; + textControl=_textControl; + textComposition->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::IBeam)); + SelectionChanged.SetAssociatedComposition(eventComposition); + UndoRedoChanged.SetAssociatedComposition(eventComposition); + ModifiedChanged.SetAssociatedComposition(eventComposition); - vint RepeatingParsingExecutor::GetTokenIndex(const WString& tokenName) - { - vint index=tokenIndexMap.Keys().IndexOf(tokenName); - return index==-1?-1:tokenIndexMap.Values()[index]; - } + undoRedoProcessor->UndoRedoChanged.Add(this, &GuiTextBoxCommonInterface::InvokeUndoRedoChanged); + undoRedoProcessor->ModifiedChanged.Add(this, &GuiTextBoxCommonInterface::InvokeModifiedChanged); - vint RepeatingParsingExecutor::GetSemanticId(const WString& name) - { - return semanticIndexMap.IndexOf(name); - } + focusableComposition->GetEventReceiver()->gotFocus.AttachMethod(this, &GuiTextBoxCommonInterface::OnGotFocus); + focusableComposition->GetEventReceiver()->lostFocus.AttachMethod(this, &GuiTextBoxCommonInterface::OnLostFocus); + focusableComposition->GetEventReceiver()->caretNotify.AttachMethod(this, &GuiTextBoxCommonInterface::OnCaretNotify); + textComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiTextBoxCommonInterface::OnLeftButtonDown); + textComposition->GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiTextBoxCommonInterface::OnLeftButtonUp); + textComposition->GetEventReceiver()->mouseMove.AttachMethod(this, &GuiTextBoxCommonInterface::OnMouseMove); + focusableComposition->GetEventReceiver()->keyDown.AttachMethod(this, &GuiTextBoxCommonInterface::OnKeyDown); + focusableComposition->GetEventReceiver()->charInput.AttachMethod(this, &GuiTextBoxCommonInterface::OnCharInput); - WString RepeatingParsingExecutor::GetSemanticName(vint id) - { - return 0<=id&&idAttach(textElement, elementModifyLock, textComposition ,editVersion); + } } - - const RepeatingParsingExecutor::TokenMetaData& RepeatingParsingExecutor::GetTokenMetaData(vint regexTokenIndex) + + GuiTextBoxCommonInterface::ICallback* GuiTextBoxCommonInterface::GetCallback() { - return tokenMetaDatas[regexTokenIndex]; + return callback; } - const RepeatingParsingExecutor::FieldMetaData& RepeatingParsingExecutor::GetFieldMetaData(const WString& type, const WString& field) + void GuiTextBoxCommonInterface::SetCallback(ICallback* value) { - return fieldMetaDatas[FieldDesc(type, field)]; + callback=value; } - Ptr RepeatingParsingExecutor::GetAttribute(vint index, const WString& name, vint argumentCount) + bool GuiTextBoxCommonInterface::AttachTextEditCallback(Ptr value) { - if(index!=-1) + if(textEditCallbacks.Contains(value.Obj())) { - Ptr att=grammarParser->GetTable()->GetAttributeInfo(index)->FindFirst(name); - if(att && (argumentCount==-1 || att->arguments.Count()==argumentCount)) + return false; + } + else + { + textEditCallbacks.Add(value); + if(textElement) { - return att; + value->Attach(textElement, elementModifyLock, textComposition, editVersion); } + return true; } - return 0; } - Ptr RepeatingParsingExecutor::GetColorAttribute(vint index) + bool GuiTextBoxCommonInterface::DetachTextEditCallback(Ptr value) { - return GetAttribute(index, L"Color", 1); + if(textEditCallbacks.Remove(value.Obj())) + { + value->Detach(); + return true; + } + else + { + return false; + } } - Ptr RepeatingParsingExecutor::GetContextColorAttribute(vint index) + void GuiTextBoxCommonInterface::AddShortcutCommand(VKEY key, const Func& eventHandler) { - return GetAttribute(index, L"ContextColor", 0); + IGuiShortcutKeyItem* item=internalShortcutKeyManager->CreateNewShortcut(true, false, false, key); + item->Executed.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + eventHandler(); + }); } - Ptr RepeatingParsingExecutor::GetSemanticAttribute(vint index) + elements::GuiColorizedTextElement* GuiTextBoxCommonInterface::GetTextElement() { - return GetAttribute(index, L"Semantic", -1); + return textElement; } - Ptr RepeatingParsingExecutor::GetCandidateAttribute(vint index) + void GuiTextBoxCommonInterface::UnsafeSetText(const WString& value) { - return GetAttribute(index, L"Candidate", 0); + if(textElement) + { + TextPos end; + if(textElement->GetLines().GetCount()>0) + { + end.row=textElement->GetLines().GetCount()-1; + end.column=textElement->GetLines().GetLine(end.row).dataLength; + } + Modify(TextPos(), end, value, false); + } } - Ptr RepeatingParsingExecutor::GetAutoCompleteAttribute(vint index) + GuiTextBoxCommonInterface::GuiTextBoxCommonInterface() + :textElement(0) + ,textComposition(0) + ,editVersion(0) + ,textControl(0) + ,callback(0) + ,dragging(false) + ,readonly(false) + ,preventEnterDueToAutoComplete(false) { - return GetAttribute(index, L"AutoComplete", 0); - } - } - } -} - -/*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUIMENUCONTROLS.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace compositions; - -/*********************************************************************** -IGuiMenuService -***********************************************************************/ - - const wchar_t* const IGuiMenuService::Identifier = L"vl::presentation::controls::IGuiMenuService"; - const wchar_t* const IGuiMenuDropdownProvider::Identifier = L"vl::presentation::controls::IGuiMenuDropdownProvider"; + undoRedoProcessor=Ptr(new GuiTextBoxUndoRedoProcessor); + AttachTextEditCallback(undoRedoProcessor); - IGuiMenuService::IGuiMenuService() - :openingMenu(0) - { + internalShortcutKeyManager=Ptr(new GuiShortcutKeyManager); + AddShortcutCommand(VKEY::KEY_Z, Func(this, &GuiTextBoxCommonInterface::Undo)); + AddShortcutCommand(VKEY::KEY_Y, Func(this, &GuiTextBoxCommonInterface::Redo)); + AddShortcutCommand(VKEY::KEY_A, Func(this, &GuiTextBoxCommonInterface::SelectAll)); + AddShortcutCommand(VKEY::KEY_X, Func(this, &GuiTextBoxCommonInterface::Cut)); + AddShortcutCommand(VKEY::KEY_C, Func(this, &GuiTextBoxCommonInterface::Copy)); + AddShortcutCommand(VKEY::KEY_V, Func(this, &GuiTextBoxCommonInterface::Paste)); } - void IGuiMenuService::MenuItemExecuted() + GuiTextBoxCommonInterface::~GuiTextBoxCommonInterface() { - if(openingMenu) - { - openingMenu->Hide(); - } - if(GetParentMenuService()) + if(colorizer) { - GetParentMenuService()->MenuItemExecuted(); + DetachTextEditCallback(colorizer); + colorizer=0; } - } - - GuiMenu* IGuiMenuService::GetOpeningMenu() - { - return openingMenu; - } - - void IGuiMenuService::MenuOpened(GuiMenu* menu) - { - if(openingMenu!=menu && openingMenu) + if(undoRedoProcessor) { - openingMenu->Hide(); + DetachTextEditCallback(undoRedoProcessor); + undoRedoProcessor=0; } - openingMenu=menu; - } - void IGuiMenuService::MenuClosed(GuiMenu* menu) - { - if(openingMenu==menu) + for(vint i=0;iDetach(); } + textEditCallbacks.Clear(); } -/*********************************************************************** -GuiMenu -***********************************************************************/ + //================ clipboard operations - void GuiMenu::BeforeControlTemplateUninstalled_() + bool GuiTextBoxCommonInterface::CanCut() { + return !readonly && textElement->GetCaretBegin()!=textElement->GetCaretEnd() && textElement->GetPasswordChar()==L'\0'; } - void GuiMenu::AfterControlTemplateInstalled_(bool initialize) + bool GuiTextBoxCommonInterface::CanCopy() { + return textElement->GetCaretBegin()!=textElement->GetCaretEnd() && textElement->GetPasswordChar()==L'\0'; } - IGuiMenuService* GuiMenu::GetParentMenuService() + bool GuiTextBoxCommonInterface::CanPaste() { - return parentMenuService; + if (!readonly && textElement->GetPasswordChar() == L'\0') + { + auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); + return reader->ContainsText(); + } + return false; } - IGuiMenuService::Direction GuiMenu::GetPreferredDirection() + bool GuiTextBoxCommonInterface::Cut() { - return IGuiMenuService::Vertical; + if (!CanCut()) return false; + auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); + writer->SetText(GetSelectionText()); + writer->Submit(); + SetSelectionText(L""); + return true; } - bool GuiMenu::IsActiveState() + bool GuiTextBoxCommonInterface::Copy() { + if (!CanCopy()) return false; + auto writer = GetCurrentController()->ClipboardService()->WriteClipboard(); + writer->SetText(GetSelectionText()); + writer->Submit(); return true; } - bool GuiMenu::IsSubMenuActivatedByMouseDown() + bool GuiTextBoxCommonInterface::Paste() { - return false; + if (!CanPaste()) return false; + auto reader = GetCurrentController()->ClipboardService()->ReadClipboard(); + SetSelectionText(reader->GetText()); + return true; } - - void GuiMenu::MenuItemExecuted() + + //================ editing control + + bool GuiTextBoxCommonInterface::GetReadonly() { - IGuiMenuService::MenuItemExecuted(); - Hide(); + return readonly; } - void GuiMenu::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) + void GuiTextBoxCommonInterface::SetReadonly(bool value) { - GuiPopup::Moving(bounds, fixSizeOnly, draggingBorder); - if (draggingBorder) - { - if (auto nativeWindow = GetNativeWindow()) - { - auto newSize = bounds.GetSize(); - auto nativeOffset = (nativeWindow->GetBounds().GetSize() - nativeWindow->GetClientSize()); - auto preferredNativeSize = nativeWindow->Convert(preferredMenuClientSizeBeforeUpdating) + nativeOffset; - if (newSize.x < preferredNativeSize.x) newSize.x = preferredNativeSize.x; - if (newSize.y < preferredNativeSize.y) newSize.y = preferredNativeSize.y; - preferredMenuClientSize = nativeWindow->Convert(newSize - nativeOffset); - } - } + readonly=value; } - void GuiMenu::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) + //================ text operations + + void GuiTextBoxCommonInterface::Select(TextPos begin, TextPos end) { - auto size = preferredSize; - if (size.x < preferredMenuClientSize.x) size.x = preferredMenuClientSize.x; - if (size.y < preferredMenuClientSize.y) size.y = preferredMenuClientSize.y; - GuiPopup::UpdateClientSizeAfterRendering(preferredSize, size); + Move(begin, false); + Move(end, true); } - void GuiMenu::OnWindowOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiTextBoxCommonInterface::SelectAll() { - if(parentMenuService) - { - parentMenuService->MenuOpened(this); - } + vint row=textElement->GetLines().GetCount()-1; + Move(TextPos(0, 0), false); + Move(TextPos(row, textElement->GetLines().GetLine(row).dataLength), true); } - void GuiMenu::OnDeactivatedAltHost() + WString GuiTextBoxCommonInterface::GetSelectionText() { - if(hideOnDeactivateAltHost) - { - Hide(); - } - GuiPopup::OnDeactivatedAltHost(); + TextPos selectionBegin=textElement->GetCaretBegin()GetCaretEnd()?textElement->GetCaretBegin():textElement->GetCaretEnd(); + TextPos selectionEnd=textElement->GetCaretBegin()>textElement->GetCaretEnd()?textElement->GetCaretBegin():textElement->GetCaretEnd(); + return textElement->GetLines().GetText(selectionBegin, selectionEnd); } - void GuiMenu::OnWindowClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiTextBoxCommonInterface::SetSelectionText(const WString& value) { - if(parentMenuService) - { - parentMenuService->MenuClosed(this); - GuiMenu* openingSubMenu=GetOpeningMenu(); - if(openingSubMenu) - { - openingSubMenu->Hide(); - } - } + Modify(textElement->GetCaretBegin(), textElement->GetCaretEnd(), value, false); } - GuiMenu::GuiMenu(theme::ThemeName themeName, GuiControl* _owner) - :GuiPopup(themeName, INativeWindow::Menu) - , owner(_owner) + void GuiTextBoxCommonInterface::SetSelectionTextAsKeyInput(const WString& value) { - UpdateMenuService(); - WindowOpened.AttachMethod(this, &GuiMenu::OnWindowOpened); - WindowClosed.AttachMethod(this, &GuiMenu::OnWindowClosed); + Modify(textElement->GetCaretBegin(), textElement->GetCaretEnd(), value, true); } - GuiMenu::~GuiMenu() + WString GuiTextBoxCommonInterface::GetRowText(vint row) { + TextPos start=textElement->GetLines().Normalize(TextPos(row, 0)); + TextPos end=TextPos(start.row, textElement->GetLines().GetLine(start.row).dataLength); + return GetFragmentText(start, end); } - void GuiMenu::UpdateMenuService() + vint GuiTextBoxCommonInterface::GetRowCount() { - if(owner) - { - parentMenuService=owner->QueryTypedService(); - } + return textElement->GetLines().GetCount(); } - IDescriptable* GuiMenu::QueryService(const WString& identifier) + WString GuiTextBoxCommonInterface::GetFragmentText(TextPos start, TextPos end) { - if(identifier==IGuiMenuService::Identifier) - { - return (IGuiMenuService*)this; - } - else - { - return GuiPopup::QueryService(identifier); - } + start=textElement->GetLines().Normalize(start); + end=textElement->GetLines().Normalize(end); + return textElement->GetLines().GetText(start, end); } - - bool GuiMenu::GetHideOnDeactivateAltHost() + + TextPos GuiTextBoxCommonInterface::GetCaretBegin() { - return hideOnDeactivateAltHost; + return textElement->GetCaretBegin(); } - void GuiMenu::SetHideOnDeactivateAltHost(bool value) + TextPos GuiTextBoxCommonInterface::GetCaretEnd() { - hideOnDeactivateAltHost = value; + return textElement->GetCaretEnd(); } - Size GuiMenu::GetPreferredMenuClientSize() + TextPos GuiTextBoxCommonInterface::GetCaretSmall() { - return preferredMenuClientSize; + TextPos c1=GetCaretBegin(); + TextPos c2=GetCaretEnd(); + return c1c2?c1:c2; } -/*********************************************************************** -GuiMenuBar -***********************************************************************/ - - IGuiMenuService* GuiMenuBar::GetParentMenuService() + //================ position query + + vint GuiTextBoxCommonInterface::GetRowWidth(vint row) { - return 0; + return textElement->GetLines().GetRowWidth(row); } - IGuiMenuService::Direction GuiMenuBar::GetPreferredDirection() + vint GuiTextBoxCommonInterface::GetRowHeight() { - return IGuiMenuService::Horizontal; + return textElement->GetLines().GetRowHeight(); } - bool GuiMenuBar::IsActiveState() + vint GuiTextBoxCommonInterface::GetMaxWidth() { - return GetOpeningMenu()!=0; + return textElement->GetLines().GetMaxWidth(); } - bool GuiMenuBar::IsSubMenuActivatedByMouseDown() + vint GuiTextBoxCommonInterface::GetMaxHeight() { - return true; + return textElement->GetLines().GetMaxHeight(); } - GuiMenuBar::GuiMenuBar(theme::ThemeName themeName) - :GuiControl(themeName) + TextPos GuiTextBoxCommonInterface::GetTextPosFromPoint(Point point) { + Point view=textElement->GetViewPosition(); + return textElement->GetLines().GetTextPosFromPoint(Point(point.x+view.x, point.y+view.y)); } - GuiMenuBar::~GuiMenuBar() + Point GuiTextBoxCommonInterface::GetPointFromTextPos(TextPos pos) { + Point view=textElement->GetViewPosition(); + Point result=textElement->GetLines().GetPointFromTextPos(pos); + return Point(result.x-view.x, result.y-view.y); } - IDescriptable* GuiMenuBar::QueryService(const WString& identifier) - { - if(identifier==IGuiMenuService::Identifier) - { - return (IGuiMenuService*)this; - } - else - { - return GuiControl::QueryService(identifier); - } - } - -/*********************************************************************** -GuiMenuButton -***********************************************************************/ - - void GuiMenuButton::BeforeControlTemplateUninstalled_() - { - auto host = GetSubMenuHost(); - host->Clicked.Detach(hostClickedHandler); - host->GetBoundsComposition()->GetEventReceiver()->mouseEnter.Detach(hostMouseEnterHandler); - - hostClickedHandler = nullptr; - hostMouseEnterHandler = nullptr; - } - - void GuiMenuButton::AfterControlTemplateInstalled_(bool initialize) - { - auto ct = TypedControlTemplateObject(true); - auto host = GetSubMenuHost(); - - ct->SetSubMenuOpening(GetSubMenuOpening()); - ct->SetLargeImage(largeImage); - ct->SetImage(image); - ct->SetShortcutText(shortcutText); - ct->SetSubMenuExisting(subMenu != nullptr); - - hostClickedHandler = host->Clicked.AttachMethod(this, &GuiMenuButton::OnClicked); - hostMouseEnterHandler = host->GetBoundsComposition()->GetEventReceiver()->mouseEnter.AttachMethod(this, &GuiMenuButton::OnMouseEnter); - } - - GuiButton* GuiMenuButton::GetSubMenuHost() + Rect GuiTextBoxCommonInterface::GetRectFromTextPos(TextPos pos) { - GuiButton* button = TypedControlTemplateObject(true)->GetSubMenuHost(); - return button ? button : this; + Point view=textElement->GetViewPosition(); + Rect result=textElement->GetLines().GetRectFromTextPos(pos); + return Rect(Point(result.x1-view.x, result.y1-view.y), result.GetSize()); } - bool GuiMenuButton::OpenSubMenuInternal() + TextPos GuiTextBoxCommonInterface::GetNearestTextPos(Point point) { - if (!GetSubMenuOpening()) + Point viewPosition=textElement->GetViewPosition(); + Point mousePosition=Point(point.x+viewPosition.x, point.y+viewPosition.y); + TextPos pos=textElement->GetLines().GetTextPosFromPoint(mousePosition); + if(pos.columnGetLines().GetLine(pos.row).dataLength) { - if (ownerMenuService) - { - GuiMenu* openingSiblingMenu = ownerMenuService->GetOpeningMenu(); - if (openingSiblingMenu) - { - openingSiblingMenu->Hide(); - } - } - - BeforeSubMenuOpening.Execute(GetNotifyEventArguments()); - if (subMenu) + Rect rect=textElement->GetLines().GetRectFromTextPos(pos); + if(abs((int)(rect.x1-mousePosition.x))>=abs((int)(rect.x2-1-mousePosition.x))) { - subMenu->SetClientSize(preferredMenuClientSize); - IGuiMenuService::Direction direction = GetSubMenuDirection(); - subMenu->ShowPopup(GetSubMenuHost(), direction == IGuiMenuService::Horizontal); - AfterSubMenuOpening.Execute(GetNotifyEventArguments()); - return true; + pos.column++; } } - return false; - } - - void GuiMenuButton::OnParentLineChanged() - { - GuiButton::OnParentLineChanged(); - ownerMenuService=QueryTypedService(); - if(ownerMenuService) - { - SetClickOnMouseUp(!ownerMenuService->IsSubMenuActivatedByMouseDown()); - } - if(subMenu) - { - subMenu->UpdateMenuService(); - } - } - - compositions::IGuiAltActionHost* GuiMenuButton::GetActivatingAltHost() - { - if (subMenu) - { - return subMenu->QueryTypedService(); - } - else - { - return GuiSelectableButton::GetActivatingAltHost(); - } + return pos; } - void GuiMenuButton::OnSubMenuWindowOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - SubMenuOpeningChanged.Execute(GetNotifyEventArguments()); - TypedControlTemplateObject(true)->SetSubMenuOpening(true); - } + //================ colorizing - void GuiMenuButton::OnSubMenuWindowClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + Ptr GuiTextBoxCommonInterface::GetColorizer() { - SubMenuOpeningChanged.Execute(GetNotifyEventArguments()); - TypedControlTemplateObject(true)->SetSubMenuOpening(false); + return colorizer; } - void GuiMenuButton::OnMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiTextBoxCommonInterface::SetColorizer(Ptr value) { - if(GetVisuallyEnabled()) + if (!filledDefaultColors) { - if(cascadeAction && ownerMenuService && ownerMenuService->IsActiveState()) - { - OpenSubMenuInternal(); - } + filledDefaultColors = true; + CopyFrom(defaultColors, GetTextElement()->GetColors()); } - } - void GuiMenuButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - if(GetVisuallyEnabled()) + if(colorizer) { - if(!OpenSubMenuInternal() && ownerMenuService) - { - ownerMenuService->MenuItemExecuted(); - } + DetachTextEditCallback(colorizer); } - } - - IGuiMenuService::Direction GuiMenuButton::GetSubMenuDirection() - { - return ownerMenuService?ownerMenuService->GetPreferredDirection():IGuiMenuService::Horizontal; - } - - void GuiMenuButton::DetachSubMenu() - { - if (subMenu) + colorizer=value; + if(colorizer) { - subMenu->WindowOpened.Detach(subMenuWindowOpenedHandler); - subMenu->WindowClosed.Detach(subMenuWindowClosedHandler); - - subMenuWindowOpenedHandler = nullptr; - subMenuWindowClosedHandler = nullptr; - if (ownedSubMenu) - { - delete subMenu; - } + AttachTextEditCallback(colorizer); + GetTextElement()->SetColors(colorizer->GetColors()); } - } - - GuiMenu* GuiMenuButton::ProvideDropdownMenu() - { - return GetSubMenu(); - } - - GuiMenuButton::GuiMenuButton(theme::ThemeName themeName) - :GuiSelectableButton(themeName) - ,subMenu(0) - ,ownedSubMenu(false) - ,ownerMenuService(0) - ,cascadeAction(true) - { - SetAutoSelection(false); - BeforeSubMenuOpening.SetAssociatedComposition(boundsComposition); - SubMenuOpeningChanged.SetAssociatedComposition(boundsComposition); - LargeImageChanged.SetAssociatedComposition(boundsComposition); - ImageChanged.SetAssociatedComposition(boundsComposition); - ShortcutTextChanged.SetAssociatedComposition(boundsComposition); - } - - GuiMenuButton::~GuiMenuButton() - { - if (!subMenuDisposeFlag || !subMenuDisposeFlag->IsDisposed()) + else { - DetachSubMenu(); + GetTextElement()->SetColors(defaultColors); + GetTextElement()->ResetTextColorIndex(0); } } - Ptr GuiMenuButton::GetLargeImage() - { - return largeImage; - } - - void GuiMenuButton::SetLargeImage(Ptr value) - { - if (largeImage != value) - { - largeImage = value; - TypedControlTemplateObject(true)->SetLargeImage(largeImage); - LargeImageChanged.Execute(GetNotifyEventArguments()); - } - } + //================ auto complete - Ptr GuiMenuButton::GetImage() + Ptr GuiTextBoxCommonInterface::GetAutoComplete() { - return image; + return autoComplete; } - void GuiMenuButton::SetImage(Ptr value) + void GuiTextBoxCommonInterface::SetAutoComplete(Ptr value) { - if (image != value) + if(autoComplete) { - image = value; - TypedControlTemplateObject(true)->SetImage(image); - ImageChanged.Execute(GetNotifyEventArguments()); + DetachTextEditCallback(autoComplete); } - } - - const WString& GuiMenuButton::GetShortcutText() - { - return shortcutText; - } - - void GuiMenuButton::SetShortcutText(const WString& value) - { - if (shortcutText != value) + autoComplete=value; + if(autoComplete) { - shortcutText = value; - TypedControlTemplateObject(true)->SetShortcutText(shortcutText); - ShortcutTextChanged.Execute(GetNotifyEventArguments()); + AttachTextEditCallback(autoComplete); } } - bool GuiMenuButton::IsSubMenuExists() + //================ undo redo control + + vuint GuiTextBoxCommonInterface::GetEditVersion() { - return subMenu!=0; + return editVersion; } - GuiMenu* GuiMenuButton::GetSubMenu() + bool GuiTextBoxCommonInterface::CanUndo() { - return subMenu; + return !readonly && undoRedoProcessor->CanUndo(); } - GuiMenu* GuiMenuButton::CreateSubMenu(TemplateProperty subMenuTemplate) + bool GuiTextBoxCommonInterface::CanRedo() { - if (!subMenu) - { - GuiMenu* newSubMenu = new GuiMenu(theme::ThemeName::Menu, this); - newSubMenu->SetControlTemplate(subMenuTemplate ? subMenuTemplate : TypedControlTemplateObject(true)->GetSubMenuTemplate()); - SetSubMenu(newSubMenu, true); - } - return subMenu; + return !readonly && undoRedoProcessor->CanRedo(); } - void GuiMenuButton::SetSubMenu(GuiMenu* value, bool owned) + void GuiTextBoxCommonInterface::ClearUndoRedo() { - if (subMenu) - { - DetachSubMenu(); - subMenuDisposeFlag = nullptr; - } - subMenu = value; - ownedSubMenu = owned; - if (subMenu) - { - subMenu->SetPreferredMenuClientSize(preferredMenuClientSize); - subMenuDisposeFlag = subMenu->GetDisposedFlag(); - subMenuWindowOpenedHandler = subMenu->WindowOpened.AttachMethod(this, &GuiMenuButton::OnSubMenuWindowOpened); - subMenuWindowClosedHandler = subMenu->WindowClosed.AttachMethod(this, &GuiMenuButton::OnSubMenuWindowClosed); - } - TypedControlTemplateObject(true)->SetSubMenuExisting(subMenu != nullptr); + undoRedoProcessor->ClearUndoRedo(); } - void GuiMenuButton::DestroySubMenu() + bool GuiTextBoxCommonInterface::GetModified() { - if(subMenu) - { - DetachSubMenu(); - subMenu=0; - ownedSubMenu=false; - TypedControlTemplateObject(true)->SetSubMenuExisting(false); - } + return undoRedoProcessor->GetModified(); } - bool GuiMenuButton::GetOwnedSubMenu() + void GuiTextBoxCommonInterface::NotifyModificationSaved() { - return subMenu && ownedSubMenu; + undoRedoProcessor->NotifyModificationSaved(); } - bool GuiMenuButton::GetSubMenuOpening() + bool GuiTextBoxCommonInterface::Undo() { - if(subMenu) + if(CanUndo()) { - return subMenu->GetOpening(); + return undoRedoProcessor->Undo(); } else { @@ -21091,54 +20179,15 @@ GuiMenuButton } } - void GuiMenuButton::SetSubMenuOpening(bool value) - { - if (subMenu && subMenu->GetOpening() != value) - { - if (value) - { - OpenSubMenuInternal(); - } - else - { - subMenu->Close(); - } - } - } - - Size GuiMenuButton::GetPreferredMenuClientSize() - { - return preferredMenuClientSize; - } - - void GuiMenuButton::SetPreferredMenuClientSize(Size value) - { - preferredMenuClientSize = value; - if (subMenu) - { - subMenu->SetPreferredMenuClientSize(preferredMenuClientSize); - } - } - - bool GuiMenuButton::GetCascadeAction() - { - return cascadeAction; - } - - void GuiMenuButton::SetCascadeAction(bool value) - { - cascadeAction=value; - } - - IDescriptable* GuiMenuButton::QueryService(const WString& identifier) + bool GuiTextBoxCommonInterface::Redo() { - if (identifier == IGuiMenuDropdownProvider::Identifier) + if(CanRedo()) { - return (IGuiMenuDropdownProvider*)this; + return undoRedoProcessor->Redo(); } else { - return GuiSelectableButton::QueryService(identifier); + return false; } } } @@ -21146,7 +20195,7 @@ GuiMenuButton } /*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONCONTROLS.CPP +.\CONTROLS\TEXTEDITORPACKAGE\GUITEXTCONTROLS.CPP ***********************************************************************/ namespace vl @@ -21155,2169 +20204,2435 @@ namespace vl { namespace controls { - using namespace reflection::description; - using namespace collections; + using namespace elements; + using namespace elements::text; using namespace compositions; - using namespace theme; - using namespace templates; + using namespace collections; /*********************************************************************** -GuiRibbonTab +GuiMultilineTextBox::DefaultTextElementOperatorCallback ***********************************************************************/ - void GuiRibbonTab::BeforeControlTemplateUninstalled_() + GuiMultilineTextBox::TextElementOperatorCallback::TextElementOperatorCallback(GuiMultilineTextBox* _textControl) + :GuiTextBoxCommonInterface::DefaultCallback( + _textControl->textElement, + _textControl->textComposition + ) + ,textControl(_textControl) { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; + } - if (auto bhc = ct->GetBeforeHeadersContainer()) + void GuiMultilineTextBox::TextElementOperatorCallback::AfterModify(TextPos originalStart, TextPos originalEnd, const WString& originalText, TextPos inputStart, TextPos inputEnd, const WString& inputText) + { + textControl->CalculateView(); + } + + void GuiMultilineTextBox::TextElementOperatorCallback::ScrollToView(Point point) + { + point.x+=TextMargin; + point.y+=TextMargin; + Point oldPoint = textControl->GetViewPosition(); + vint marginX=0; + vint marginY=0; + if(oldPoint.xRemoveChild(beforeHeaders); + marginX=TextMargin; } - if (auto ahc = ct->GetAfterHeadersContainer()) + else if(oldPoint.x>point.x) { - ahc->RemoveChild(afterHeaders); + marginX=-TextMargin; } - } - - void GuiRibbonTab::AfterControlTemplateInstalled_(bool initialize) - { - auto ct = TypedControlTemplateObject(true); - if (auto bhc = ct->GetBeforeHeadersContainer()) + if(oldPoint.yAddChild(beforeHeaders); + marginY=TextMargin; } - if (auto ahc = ct->GetAfterHeadersContainer()) + else if(oldPoint.y>point.y) { - ahc->AddChild(afterHeaders); + marginY=-TextMargin; } + textControl->SetViewPosition(Point(point.x + marginX, point.y + marginY)); } - GuiRibbonTab::GuiRibbonTab(theme::ThemeName themeName) - :GuiTab(themeName) + vint GuiMultilineTextBox::TextElementOperatorCallback::GetTextMargin() { - beforeHeaders = new GuiBoundsComposition(); - beforeHeaders->SetAlignmentToParent(Margin(0, 0, 0, 0)); - beforeHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - - afterHeaders = new GuiBoundsComposition(); - afterHeaders->SetAlignmentToParent(Margin(0, 0, 0, 0)); - afterHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + return TextMargin; } - GuiRibbonTab::~GuiRibbonTab() +/*********************************************************************** +GuiMultilineTextBox::CommandExecutor +***********************************************************************/ + + GuiMultilineTextBox::CommandExecutor::CommandExecutor(GuiMultilineTextBox* _textBox) + :textBox(_textBox) { - if (!beforeHeaders->GetParent()) - { - SafeDeleteComposition(beforeHeaders); - } - if (!afterHeaders->GetParent()) - { - SafeDeleteComposition(afterHeaders); - } } - compositions::GuiGraphicsComposition* GuiRibbonTab::GetBeforeHeaders() + GuiMultilineTextBox::CommandExecutor::~CommandExecutor() { - return beforeHeaders; } - compositions::GuiGraphicsComposition* GuiRibbonTab::GetAfterHeaders() + void GuiMultilineTextBox::CommandExecutor::UnsafeSetText(const WString& value) { - return afterHeaders; + textBox->UnsafeSetText(value); } /*********************************************************************** -GuiRibbonGroupCollection +GuiMultilineTextBox ***********************************************************************/ - bool GuiRibbonGroupCollection::QueryInsert(vint index, GuiRibbonGroup* const& value) - { - return !value->GetBoundsComposition()->GetParent(); - } - - void GuiRibbonGroupCollection::AfterInsert(vint index, GuiRibbonGroup* const& value) + void GuiMultilineTextBox::BeforeControlTemplateUninstalled_() { - value->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - - auto item = new GuiStackItemComposition(); - item->AddChild(value->GetBoundsComposition()); + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - tabPage->stack->InsertStackItem(index, item); + ct->SetCommands(nullptr); } - void GuiRibbonGroupCollection::AfterRemove(vint index, vint count) + void GuiMultilineTextBox::AfterControlTemplateInstalled_(bool initialize) { - for (vint i = 0; i < count; i++) - { - auto item = tabPage->stack->GetStackItems()[index]; - tabPage->stack->RemoveChild(item); - - item->RemoveChild(item->Children()[0]); - delete item; - } + auto ct = TypedControlTemplateObject(true); + Array colors(1); + colors[0] = ct->GetTextColor(); + textElement->SetColors(colors); + textElement->SetCaretColor(ct->GetCaretColor()); + ct->SetCommands(commandExecutor.Obj()); } - GuiRibbonGroupCollection::GuiRibbonGroupCollection(GuiRibbonTabPage* _tabPage) - :tabPage(_tabPage) + void GuiMultilineTextBox::UpdateVisuallyEnabled() { + GuiControl::UpdateVisuallyEnabled(); + textElement->SetVisuallyEnabled(GetVisuallyEnabled()); } - GuiRibbonGroupCollection::~GuiRibbonGroupCollection() + void GuiMultilineTextBox::UpdateDisplayFont() { + GuiControl::UpdateDisplayFont(); + textElement->SetFont(GetDisplayFont()); + CalculateViewAndSetScroll(); } -/*********************************************************************** -GuiRibbonTabPage -***********************************************************************/ - - GuiRibbonTabPage::GuiRibbonTabPage(theme::ThemeName themeName) - :GuiTabPage(themeName) - , groups(this) + void GuiMultilineTextBox::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) { - stack = new GuiStackComposition(); - stack->SetDirection(GuiStackComposition::Horizontal); - stack->SetAlignmentToParent(Margin(2, 2, 2, 2)); - stack->SetPadding(2); - stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - - responsiveStack = new GuiResponsiveStackComposition(); - responsiveStack->SetDirection(ResponsiveDirection::Horizontal); - responsiveStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveStack->AddChild(stack); - - responsiveContainer = new GuiResponsiveContainerComposition(); - responsiveContainer->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveContainer->SetResponsiveTarget(responsiveStack); - - containerComposition->AddChild(responsiveContainer); - - HighlightedChanged.SetAssociatedComposition(boundsComposition); + CalculateViewAndSetScroll(); + GuiScrollView::OnRenderTargetChanged(renderTarget); } - GuiRibbonTabPage::~GuiRibbonTabPage() + Size GuiMultilineTextBox::QueryFullSize() { + TextLines& lines = textElement->GetLines(); + return Size(lines.GetMaxWidth() + TextMargin * 2, lines.GetMaxHeight() + TextMargin * 2); } - bool GuiRibbonTabPage::GetHighlighted() + void GuiMultilineTextBox::UpdateView(Rect viewBounds) { - return highlighted; + textElement->SetViewPosition(viewBounds.LeftTop() - Size(TextMargin, TextMargin)); } - void GuiRibbonTabPage::SetHighlighted(bool value) + void GuiMultilineTextBox::CalculateViewAndSetScroll() { - if (highlighted != value) - { - highlighted = value; - HighlightedChanged.Execute(GetNotifyEventArguments()); - } - } + auto ct = TypedControlTemplateObject(true); + CalculateView(); + vint smallMove = textElement->GetLines().GetRowHeight(); + vint bigMove = smallMove * 5; - collections::ObservableListBase& GuiRibbonTabPage::GetGroups() - { - return groups; - } + if (auto scroll = ct->GetHorizontalScroll()) + { + scroll->SetSmallMove(smallMove); + scroll->SetBigMove(bigMove); + } -/*********************************************************************** -GuiRibbonGroupItemCollection -***********************************************************************/ + if (auto scroll = ct->GetVerticalScroll()) + { + scroll->SetSmallMove(smallMove); + scroll->SetBigMove(bigMove); + } + } - bool GuiRibbonGroupItemCollection::QueryInsert(vint index, GuiControl* const& value) + void GuiMultilineTextBox::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - return !value->GetBoundsComposition()->GetParent(); + if(GetVisuallyEnabled()) + { + SetFocused(); + } } - void GuiRibbonGroupItemCollection::AfterInsert(vint index, GuiControl* const& value) + GuiMultilineTextBox::GuiMultilineTextBox(theme::ThemeName themeName) + :GuiScrollView(themeName) { - value->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + textElement = GuiColorizedTextElement::Create(); + textElement->SetFont(GetDisplayFont()); - auto item = new GuiStackItemComposition(); - item->AddChild(value->GetBoundsComposition()); + textComposition = new GuiBoundsComposition; + textComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + textComposition->SetOwnedElement(Ptr(textElement)); + containerComposition->AddChild(textComposition); - group->stack->InsertStackItem(index, item); + callback = Ptr(new TextElementOperatorCallback(this)); + commandExecutor = Ptr(new CommandExecutor(this)); + + SetAcceptTabInput(true); + SetFocusableComposition(boundsComposition); + Install(textElement, textComposition, this, boundsComposition, focusableComposition); + SetCallback(callback.Obj()); + + boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiMultilineTextBox::OnBoundsMouseButtonDown); } - void GuiRibbonGroupItemCollection::AfterRemove(vint index, vint count) + GuiMultilineTextBox::~GuiMultilineTextBox() { - for (vint i = 0; i < count; i++) - { - auto item = group->stack->GetStackItems()[index]; - group->stack->RemoveChild(item); - - item->RemoveChild(item->Children()[0]); - delete item; - } } - GuiRibbonGroupItemCollection::GuiRibbonGroupItemCollection(GuiRibbonGroup* _group) - :group(_group) + const WString& GuiMultilineTextBox::GetText() { + text = textElement->GetLines().GetText(); + return text; } - GuiRibbonGroupItemCollection::~GuiRibbonGroupItemCollection() + void GuiMultilineTextBox::SetText(const WString& value) { + UnsafeSetText(value); + textElement->SetCaretBegin(TextPos(0, 0)); + textElement->SetCaretEnd(TextPos(0, 0)); + CalculateView(); } /*********************************************************************** -GuiRibbonGroup::CommandExecutor +GuiSinglelineTextBox::DefaultTextElementOperatorCallback ***********************************************************************/ - GuiRibbonGroup::CommandExecutor::CommandExecutor(GuiRibbonGroup* _group) - :group(_group) + GuiSinglelineTextBox::TextElementOperatorCallback::TextElementOperatorCallback(GuiSinglelineTextBox* _textControl) + :GuiTextBoxCommonInterface::DefaultCallback( + _textControl->textElement, + _textControl->textComposition + ) { } - GuiRibbonGroup::CommandExecutor::~CommandExecutor() + bool GuiSinglelineTextBox::TextElementOperatorCallback::BeforeModify(TextPos start, TextPos end, const WString& originalText, WString& inputText) { + vint length = inputText.Length(); + const wchar_t* input = inputText.Buffer(); + for (vint i = 0; i < length; i++) + { + if (*input == 0 || *input == L'\r' || *input == L'\n') + { + length = i; + break; + } + } + if (length != inputText.Length()) + { + if (length == 0) + { + // if the first line is empty after adjustment + // the input should just be canceled + // to prevent from making noise in undo + return false; + } + inputText = inputText.Left(length); + } + return true; } - void GuiRibbonGroup::CommandExecutor::NotifyExpandButtonClicked() + void GuiSinglelineTextBox::TextElementOperatorCallback::AfterModify(TextPos originalStart, TextPos originalEnd, const WString& originalText, TextPos inputStart, TextPos inputEnd, const WString& inputText) { - group->ExpandButtonClicked.Execute(group->GetNotifyEventArguments()); } - -/*********************************************************************** -GuiRibbonGroupMenu -***********************************************************************/ - - class GuiRibbonGroupMenu : public GuiMenu, public Description + + void GuiSinglelineTextBox::TextElementOperatorCallback::ScrollToView(Point point) { - private: - IGuiMenuService::Direction GetPreferredDirection()override + vint newX=point.x; + vint oldX=textElement->GetViewPosition().x; + vint marginX=0; + if(oldXnewX) { - return false; + marginX=-TextMargin; } - public: - GuiRibbonGroupMenu(theme::ThemeName themeName, GuiControl* _owner) - :GuiMenu(themeName, _owner) + newX+=marginX; + vint minX=-TextMargin; + vint maxX=textElement->GetLines().GetMaxWidth()+TextMargin-textComposition->GetBounds().Width(); + if(newX>=maxX) { + newX=maxX-1; } - }; + if(newXSetViewPosition(Point(newX, -TextMargin)); + } + + vint GuiSinglelineTextBox::TextElementOperatorCallback::GetTextMargin() + { + return TextMargin; + } /*********************************************************************** -GuiRibbonGroup +GuiSinglelineTextBox ***********************************************************************/ - void GuiRibbonGroup::BeforeControlTemplateUninstalled_() + void GuiSinglelineTextBox::BeforeControlTemplateUninstalled_() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - ct->SetCommands(nullptr); } - void GuiRibbonGroup::AfterControlTemplateInstalled_(bool initialize) + void GuiSinglelineTextBox::AfterControlTemplateInstalled_(bool initialize) { auto ct = TypedControlTemplateObject(true); - ct->SetExpandable(expandable); - ct->SetCollapsed(responsiveView->GetCurrentView() == responsiveFixedButton); - ct->SetCommands(commandExecutor.Obj()); - dropdownButton->SetControlTemplate(ct->GetLargeDropdownButtonTemplate()); - dropdownMenu->SetControlTemplate(ct->GetSubMenuTemplate()); + Array colors(1); + colors[0] = ct->GetTextColor(); + textElement->SetColors(colors); + textElement->SetCaretColor(ct->GetCaretColor()); } - bool GuiRibbonGroup::IsAltAvailable() + void GuiSinglelineTextBox::UpdateVisuallyEnabled() { - return alt != L""; + GuiControl::UpdateVisuallyEnabled(); + textElement->SetVisuallyEnabled(GetVisuallyEnabled()); } - compositions::IGuiAltActionHost* GuiRibbonGroup::GetActivatingAltHost() + void GuiSinglelineTextBox::UpdateDisplayFont() { - if (IsAltAvailable()) - { - return this; - } - else - { - return GuiControl::GetActivatingAltHost(); - } + GuiControl::UpdateDisplayFont(); + textElement->SetFont(GetDisplayFont()); + RearrangeTextElement(); } - void GuiRibbonGroup::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiSinglelineTextBox::RearrangeTextElement() { - dropdownMenu->GetBoundsComposition()->SetPreferredMinSize(Size(0, containerComposition->GetBounds().Height())); + textCompositionTable->SetRowOption( + 1, + GuiCellOption::AbsoluteOption( + textElement->GetLines().GetRowHeight() + 2 * TextMargin) + ); } - void GuiRibbonGroup::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiSinglelineTextBox::OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget) { - dropdownButton->SetText(GetText()); + GuiControl::OnRenderTargetChanged(renderTarget); + RearrangeTextElement(); } - void GuiRibbonGroup::OnBeforeSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiSinglelineTextBox::OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments) { - if (responsiveView->GetViews().Contains(responsiveFixedButton)) + if(GetVisuallyEnabled()) { - auto currentDropdown = dropdownMenu; - if (items.Count() == 1) - { - if (auto provider = items[0]->QueryTypedService()) - { - if (auto menu = provider->ProvideDropdownMenu()) - { - currentDropdown = menu; - } - } - } - dropdownButton->SetSubMenu(currentDropdown, false); + SetFocused(); } } - void GuiRibbonGroup::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + GuiSinglelineTextBox::GuiSinglelineTextBox(theme::ThemeName themeName) + :GuiControl(themeName) { - if (auto ct = TypedControlTemplateObject(false)) - { - ct->SetCollapsed(arguments.itemIndex == 1); - } + textElement = GuiColorizedTextElement::Create(); + textElement->SetFont(GetDisplayFont()); + textElement->SetViewPosition(Point(-GuiSinglelineTextBox::TextMargin, -GuiSinglelineTextBox::TextMargin)); - if (arguments.itemIndex == 0) - { - while (responsiveStack->LevelDown()); - dropdownMenu->GetContainerComposition()->RemoveChild(stack); - responsiveStack->AddChild(stack); - dropdownButton->SetSubMenu(nullptr, false); - } - else - { - while (responsiveStack->LevelUp()); - responsiveStack->RemoveChild(stack); - dropdownMenu->GetContainerComposition()->AddChild(stack); - } + textCompositionTable = new GuiTableComposition; + textCompositionTable->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + textCompositionTable->SetAlignmentToParent(Margin(0, 0, 0, 0)); + textCompositionTable->SetRowsAndColumns(3, 1); + textCompositionTable->SetRowOption(0, GuiCellOption::PercentageOption(0.5)); + textCompositionTable->SetRowOption(1, GuiCellOption::AbsoluteOption(0)); + textCompositionTable->SetRowOption(2, GuiCellOption::PercentageOption(0.5)); + textCompositionTable->SetColumnOption(0, GuiCellOption::PercentageOption(1.0)); + containerComposition->AddChild(textCompositionTable); + + textComposition = new GuiCellComposition; + textComposition->SetOwnedElement(Ptr(textElement)); + textCompositionTable->AddChild(textComposition); + textComposition->SetSite(1, 0, 1, 1); + + callback = Ptr(new TextElementOperatorCallback(this)); + SetAcceptTabInput(true); + SetFocusableComposition(boundsComposition); + Install(textElement, textComposition, this, boundsComposition, focusableComposition); + SetCallback(callback.Obj()); + + boundsComposition->GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->middleButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); + boundsComposition->GetEventReceiver()->rightButtonDown.AttachMethod(this, &GuiSinglelineTextBox::OnBoundsMouseButtonDown); } - GuiRibbonGroup::GuiRibbonGroup(theme::ThemeName themeName) - :GuiControl(themeName) - , items(this) + GuiSinglelineTextBox::~GuiSinglelineTextBox() { - SetAltComposition(boundsComposition); - SetAltControl(this, false); - - commandExecutor = new CommandExecutor(this); - { - stack = new GuiStackComposition(); - stack->SetDirection(GuiStackComposition::Horizontal); - stack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stack->SetPadding(2); - stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + } - responsiveStack = new GuiResponsiveStackComposition(); - responsiveStack->SetDirection(ResponsiveDirection::Horizontal); - responsiveStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveStack->AddChild(stack); - } - { - dropdownButton = new GuiToolstripButton(theme::ThemeName::RibbonLargeDropdownButton); - dropdownButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + const WString& GuiSinglelineTextBox::GetText() + { + text = textElement->GetLines().GetText(); + return text; + } - responsiveFixedButton = new GuiResponsiveFixedComposition(); - responsiveFixedButton->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveFixedButton->AddChild(dropdownButton->GetBoundsComposition()); + void GuiSinglelineTextBox::SetText(const WString& value) + { + UnsafeSetText(value); + textElement->SetCaretBegin(TextPos(0, 0)); + textElement->SetCaretEnd(TextPos(0, 0)); + } - dropdownMenu = new GuiRibbonGroupMenu(theme::ThemeName::Menu, dropdownButton); - } + wchar_t GuiSinglelineTextBox::GetPasswordChar() + { + return textElement->GetPasswordChar(); + } - responsiveView = new GuiResponsiveViewComposition(); - responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveView->GetViews().Add(responsiveStack); + void GuiSinglelineTextBox::SetPasswordChar(wchar_t value) + { + textElement->SetPasswordChar(value); + } + } + } +} - containerComposition->AddChild(responsiveView); +/*********************************************************************** +.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTAUTOCOMPLETE.CPP +***********************************************************************/ - ExpandableChanged.SetAssociatedComposition(boundsComposition); - ExpandButtonClicked.SetAssociatedComposition(boundsComposition); - LargeImageChanged.SetAssociatedComposition(boundsComposition); +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace collections; - TextChanged.AttachMethod(this, &GuiRibbonGroup::OnTextChanged); - boundsComposition->BoundsChanged.AttachMethod(this, &GuiRibbonGroup::OnBoundsChanged); - responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonGroup::OnBeforeSwitchingView); - dropdownButton->BeforeSubMenuOpening.AttachMethod(this, &GuiRibbonGroup::OnBeforeSubMenuOpening); - } +/*********************************************************************** +GuiTextBoxAutoCompleteBase::TextListControlProvider +***********************************************************************/ - GuiRibbonGroup::~GuiRibbonGroup() + GuiTextBoxAutoCompleteBase::TextListControlProvider::TextListControlProvider(TemplateProperty controlTemplate) { - if (!responsiveView->GetViews().Contains(responsiveFixedButton)) + autoCompleteList = new GuiTextList(theme::ThemeName::TextList); + if (controlTemplate) { - SafeDeleteComposition(responsiveFixedButton); + autoCompleteList->SetControlTemplate(controlTemplate); } - delete dropdownMenu; + autoCompleteList->SetHorizontalAlwaysVisible(false); + autoCompleteList->SetVerticalAlwaysVisible(false); } - bool GuiRibbonGroup::GetExpandable() + GuiTextBoxAutoCompleteBase::TextListControlProvider::~TextListControlProvider() { - return expandable; } - void GuiRibbonGroup::SetExpandable(bool value) + GuiControl* GuiTextBoxAutoCompleteBase::TextListControlProvider::GetAutoCompleteControl() { - if (expandable != value) - { - expandable = value; - TypedControlTemplateObject(true)->SetExpandable(expandable); - ExpandableChanged.Execute(GetNotifyEventArguments()); - } + return autoCompleteList; } - Ptr GuiRibbonGroup::GetLargeImage() + GuiSelectableListControl* GuiTextBoxAutoCompleteBase::TextListControlProvider::GetListControl() { - return largeImage; + return autoCompleteList; } - void GuiRibbonGroup::SetLargeImage(Ptr value) + void GuiTextBoxAutoCompleteBase::TextListControlProvider::SetSortedContent(const collections::List& items) { - if (largeImage != value) + autoCompleteList->GetItems().Clear(); + for (auto item : items) { - largeImage = value; - dropdownButton->SetLargeImage(value); - LargeImageChanged.Execute(GetNotifyEventArguments()); - - if (value) - { - if (!responsiveView->GetViews().Contains(responsiveFixedButton)) - { - responsiveView->GetViews().Add(responsiveFixedButton); - } - } - else - { - if (responsiveView->GetViews().Contains(responsiveFixedButton)) - { - responsiveView->GetViews().Remove(responsiveFixedButton); - } - } + autoCompleteList->GetItems().Add(Ptr(new list::TextItem(item.text))); } } - collections::ObservableListBase& GuiRibbonGroup::GetItems() + vint GuiTextBoxAutoCompleteBase::TextListControlProvider::GetItemCount() { - return items; + return autoCompleteList->GetItems().Count(); + } + + WString GuiTextBoxAutoCompleteBase::TextListControlProvider::GetItemText(vint index) + { + return autoCompleteList->GetItems()[index]->GetText(); } /*********************************************************************** -GuiRibbonIconLabel +GuiTextBoxAutoCompleteBase ***********************************************************************/ - void GuiRibbonIconLabel::BeforeControlTemplateUninstalled_() + bool GuiTextBoxAutoCompleteBase::IsPrefix(const WString& prefix, const WString& candidate) { + if(candidate.Length()>=prefix.Length()) + { + if(INVLOC.Compare(prefix, candidate.Sub(0, prefix.Length()), Locale::IgnoreCase)==0) + { + return true; + } + } + return false; } - void GuiRibbonIconLabel::AfterControlTemplateInstalled_(bool initialize) + GuiTextBoxAutoCompleteBase::GuiTextBoxAutoCompleteBase(Ptr _autoCompleteControlProvider) + :element(0) + , elementModifyLock(0) + , ownerComposition(0) + , autoCompleteControlProvider(_autoCompleteControlProvider) { - auto ct = TypedControlTemplateObject(true); - ct->SetImage(image); - } + if (!autoCompleteControlProvider) + { + autoCompleteControlProvider = Ptr(new TextListControlProvider); + } + autoCompleteControlProvider->GetAutoCompleteControl()->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - GuiRibbonIconLabel::GuiRibbonIconLabel(theme::ThemeName themeName) - :GuiControl(themeName) - { - ImageChanged.SetAssociatedComposition(boundsComposition); + autoCompletePopup = new GuiPopup(theme::ThemeName::Menu); + autoCompletePopup->AddChild(autoCompleteControlProvider->GetAutoCompleteControl()); } - GuiRibbonIconLabel::~GuiRibbonIconLabel() + GuiTextBoxAutoCompleteBase::~GuiTextBoxAutoCompleteBase() { + delete autoCompletePopup; } - Ptr GuiRibbonIconLabel::GetImage() + void GuiTextBoxAutoCompleteBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) { - return image; + if(_element) + { + SPIN_LOCK(_elementModifyLock) + { + element=_element; + elementModifyLock=&_elementModifyLock; + ownerComposition=_ownerComposition; + } + } } - void GuiRibbonIconLabel::SetImage(Ptr value) + void GuiTextBoxAutoCompleteBase::Detach() { - if (image != value) + if(element && elementModifyLock) { - image = value; - TypedControlTemplateObject(true)->SetImage(image); - ImageChanged.Execute(GetNotifyEventArguments()); + SPIN_LOCK(*elementModifyLock) + { + element=0; + elementModifyLock=0; + } } } -/*********************************************************************** -GuiRibbonButtonsItemCollection -***********************************************************************/ - - bool GuiRibbonButtonsItemCollection::QueryInsert(vint index, GuiControl* const& value) + void GuiTextBoxAutoCompleteBase::TextEditPreview(TextEditPreviewStruct& arguments) { - return !value->GetBoundsComposition()->GetParent(); } - void GuiRibbonButtonsItemCollection::AfterInsert(vint index, GuiControl* const& value) + void GuiTextBoxAutoCompleteBase::TextEditNotify(const TextEditNotifyStruct& arguments) { - buttons->responsiveView->GetSharedControls().Add(value); - buttons->SetButtonThemeName(buttons->responsiveView->GetCurrentView(), value); - - for (vint i = 0; i < sizeof(buttons->views) / sizeof(*buttons->views); i++) + if(element && elementModifyLock) { - if (auto view = buttons->views[i]) + if(IsListOpening()) { - auto stack = dynamic_cast(view->Children()[0]); - - auto shared = new GuiResponsiveSharedComposition(); - shared->SetAlignmentToParent(Margin(0, 0, 0, 0)); - shared->SetShared(value); - - auto item = new GuiStackItemComposition(); - item->AddChild(shared); - - stack->InsertStackItem(index, item); + TextPos begin=GetListStartPosition(); + TextPos end=arguments.inputEnd; + WString editingText=element->GetLines().GetText(begin, end); + HighlightList(editingText); } } } - void GuiRibbonButtonsItemCollection::BeforeRemove(vint index, GuiControl* const& value) - { - CHECK_FAIL(L"GuiRibbonButtonsItemCollection::BeforeRemove(vint, GuiControl* const&)#Controls are not allowed to be removed from GuiRibbonButtons."); - } - - GuiRibbonButtonsItemCollection::GuiRibbonButtonsItemCollection(GuiRibbonButtons* _buttons) - :buttons(_buttons) + void GuiTextBoxAutoCompleteBase::TextCaretChanged(const TextCaretChangedStruct& arguments) { } - GuiRibbonButtonsItemCollection::~GuiRibbonButtonsItemCollection() + void GuiTextBoxAutoCompleteBase::TextEditFinished(vuint editVersion) { } -/*********************************************************************** -GuiRibbonButtons -***********************************************************************/ - - void GuiRibbonButtons::BeforeControlTemplateUninstalled_() + bool GuiTextBoxAutoCompleteBase::IsListOpening() { + return autoCompletePopup->GetOpening(); } - void GuiRibbonButtons::AfterControlTemplateInstalled_(bool initialize) + void GuiTextBoxAutoCompleteBase::OpenList(TextPos startPosition) { - for (auto button : buttons) + if(element && elementModifyLock) { - SetButtonThemeName(responsiveView->GetCurrentView(), button); + autoCompleteStartPosition=startPosition; + Rect bounds=element->GetLines().GetRectFromTextPos(startPosition); + Point viewPosition=element->GetViewPosition(); + GuiControl* ownerControl=ownerComposition->GetRelatedControl(); + Rect compositionBounds=ownerComposition->GetGlobalBounds(); + Rect controlBounds=ownerControl->GetBoundsComposition()->GetGlobalBounds(); + vint px=compositionBounds.x1-controlBounds.x1-viewPosition.x; + vint py=compositionBounds.y1-controlBounds.y1-viewPosition.y; + bounds.x1+=px; + bounds.x2+=px; + bounds.y1+=py+5; + bounds.y2+=py+5; + autoCompletePopup->ShowPopup(ownerControl, bounds, true); } } - void GuiRibbonButtons::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + void GuiTextBoxAutoCompleteBase::CloseList() { - for (auto button : buttons) + autoCompletePopup->Close(); + } + + void GuiTextBoxAutoCompleteBase::SetListContent(const collections::List& items) + { + if(items.Count()==0) { - SetButtonThemeName(responsiveView->GetViews()[arguments.itemIndex], button); + CloseList(); } + + List sortedItems; + CopyFrom( + sortedItems, + From(items) + .OrderBy([](const AutoCompleteItem& a, const AutoCompleteItem& b) + { + return INVLOC.Compare(a.text, b.text, Locale::IgnoreCase) <=> 0; + }) + ); + + autoCompleteControlProvider->SetSortedContent(sortedItems); + autoCompleteControlProvider->GetAutoCompleteControl()->GetBoundsComposition()->SetPreferredMinSize(Size(200, 200)); } - void GuiRibbonButtons::SetButtonThemeName(compositions::GuiResponsiveCompositionBase* fixed, GuiControl* button) + TextPos GuiTextBoxAutoCompleteBase::GetListStartPosition() { - if (fixed && button) + return autoCompleteStartPosition; + } + + bool GuiTextBoxAutoCompleteBase::SelectPreviousListItem() + { + if(!IsListOpening()) return false; + if(autoCompleteControlProvider->GetListControl()->GetSelectedItems().Count()==0) { - auto themeName = button->GetControlThemeName(); - vint type = -1; - switch (themeName) + autoCompleteControlProvider->GetListControl()->SetSelected(0, true); + } + else + { + vint index=autoCompleteControlProvider->GetListControl()->GetSelectedItems()[0]; + if (index > 0) index--; + autoCompleteControlProvider->GetListControl()->SetSelected(index, true); + autoCompleteControlProvider->GetListControl()->EnsureItemVisible(index); + } + return true; + } + + bool GuiTextBoxAutoCompleteBase::SelectNextListItem() + { + if(!IsListOpening()) return false; + if (autoCompleteControlProvider->GetListControl()->GetSelectedItems().Count() == 0) + { + autoCompleteControlProvider->GetListControl()->SetSelected(0, true); + } + else + { + vint index = autoCompleteControlProvider->GetListControl()->GetSelectedItems()[0]; + if (index < autoCompleteControlProvider->GetItemCount() - 1) index++; + autoCompleteControlProvider->GetListControl()->SetSelected(index, true); + autoCompleteControlProvider->GetListControl()->EnsureItemVisible(index); + } + return true; + } + + bool GuiTextBoxAutoCompleteBase::ApplySelectedListItem() + { + if(!IsListOpening()) return false; + if(!ownerComposition) return false; + const auto& selectedItems = autoCompleteControlProvider->GetListControl()->GetSelectedItems(); + if (selectedItems.Count() == 0) return false; + GuiTextBoxCommonInterface* ci=dynamic_cast(ownerComposition->GetRelatedControl()); + if(!ci) return false; + + vint index = selectedItems[0]; + WString selectedItem = autoCompleteControlProvider->GetItemText(index); + TextPos begin = autoCompleteStartPosition; + TextPos end = ci->GetCaretEnd(); + ci->Select(begin, end); + ci->SetSelectionText(selectedItem); + CloseList(); + return true; + } + + WString GuiTextBoxAutoCompleteBase::GetSelectedListItem() + { + if(!IsListOpening()) return L""; + const auto& selectedItems = autoCompleteControlProvider->GetListControl()->GetSelectedItems(); + if (selectedItems.Count() == 0) return L""; + vint index = selectedItems[0]; + return autoCompleteControlProvider->GetItemText(index); + } + + void GuiTextBoxAutoCompleteBase::HighlightList(const WString& editingText) + { + if(IsListOpening()) + { + vint first=0; + vint last = autoCompleteControlProvider->GetItemCount() - 1; + vint selected=-1; + + while (first <= last) { - case ThemeName::RibbonLargeButton: - case ThemeName::RibbonSmallButton: - case ThemeName::ToolstripButton: - type = 0; - break; - case ThemeName::RibbonLargeDropdownButton: - case ThemeName::RibbonSmallDropdownButton: - case ThemeName::ToolstripDropdownButton: - type = 1; - break; - case ThemeName::RibbonLargeSplitButton: - case ThemeName::RibbonSmallSplitButton: - case ThemeName::ToolstripSplitButton: - type = 2; - break; - case ThemeName::RibbonSmallIconLabel: - case ThemeName::RibbonIconLabel: - type = 3; - break; - default:; + vint middle = (first + last) / 2; + WString text = autoCompleteControlProvider->GetItemText(middle); + if (IsPrefix(editingText, text)) + { + selected = middle; + break; + } + + vint result = INVLOC.Compare(editingText, text, Locale::IgnoreCase); + if (result <= 0) + { + last = middle - 1; + } + else + { + first = middle + 1; + } } - if (type != -1) + while(selected>0) { - ThemeName themeName = ThemeName::Unknown; - TemplateProperty controlTemplate; - - if (fixed == views[(vint)RibbonButtonSize::Large]) + WString text = autoCompleteControlProvider->GetItemText(selected - 1); + if (IsPrefix(editingText, text)) { - switch (type) - { - case 0: themeName = ThemeName::RibbonLargeButton; break; - case 1: themeName = ThemeName::RibbonLargeDropdownButton; break; - case 2: themeName = ThemeName::RibbonLargeSplitButton; break; - case 3: themeName = ThemeName::RibbonSmallIconLabel; break; - } + selected--; } - else if (fixed == views[(vint)RibbonButtonSize::Small]) + else { - switch (type) - { - case 0: themeName = ThemeName::RibbonSmallButton; break; - case 1: themeName = ThemeName::RibbonSmallDropdownButton; break; - case 2: themeName = ThemeName::RibbonSmallSplitButton; break; - case 3: themeName = ThemeName::RibbonSmallIconLabel; break; - } + break; } - else if (fixed == views[(vint)RibbonButtonSize::Icon]) + } + + if(selected!=-1) + { + autoCompleteControlProvider->GetListControl()->SetSelected(selected, true); + autoCompleteControlProvider->GetListControl()->EnsureItemVisible(selected); + } + } + } + } + } +} + +/*********************************************************************** +.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTCOLORIZER.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace elements::text; + +/*********************************************************************** +GuiTextBoxColorizerBase +***********************************************************************/ + + void GuiTextBoxColorizerBase::ColorizerThreadProc(void* argument) + { + GuiTextBoxColorizerBase* colorizer=(GuiTextBoxColorizerBase*)argument; + while(!colorizer->isFinalizing) + { + vint lineIndex=-1; + wchar_t* text=0; + vuint32_t* colors=0; + vint length=0; + vint lexerState=-1; + vint contextState=-1; + + SPIN_LOCK(*colorizer->elementModifyLock) + { + if(colorizer->colorizedLineCount>=colorizer->element->GetLines().GetCount()) { - switch (type) - { - case 0: themeName = ThemeName::ToolstripButton; break; - case 1: themeName = ThemeName::ToolstripDropdownButton; break; - case 2: themeName = ThemeName::ToolstripSplitButton; break; - case 3: themeName = ThemeName::RibbonIconLabel; break; - } + colorizer->isColorizerRunning=false; + goto CANCEL_COLORIZING; } - if (auto ct = TypedControlTemplateObject(false)) + lineIndex=colorizer->colorizedLineCount++; + TextLine& line=colorizer->element->GetLines().GetLine(lineIndex); + length=line.dataLength; + text=new wchar_t[length+2]; + colors=new vuint32_t[length+2]; + memcpy(text, line.text, sizeof(wchar_t)*length); + text[length]=L'\r'; + text[length+1]=L'\n'; + lexerState=lineIndex==0?colorizer->GetLexerStartState():colorizer->element->GetLines().GetLine(lineIndex-1).lexerFinalState; + contextState=lineIndex==0?colorizer->GetContextStartState():colorizer->element->GetLines().GetLine(lineIndex-1).contextFinalState; + } + + colorizer->ColorizeLineWithCRLF(lineIndex, text, colors, length+2, lexerState, contextState); + + SPIN_LOCK(*colorizer->elementModifyLock) + { + if(lineIndexcolorizedLineCount && lineIndexelement->GetLines().GetCount()) { - if (fixed == views[(vint)RibbonButtonSize::Large]) - { - switch (type) - { - case 0: controlTemplate = ct->GetLargeButtonTemplate(); break; - case 1: controlTemplate = ct->GetLargeDropdownButtonTemplate(); break; - case 2: controlTemplate = ct->GetLargeSplitButtonTemplate(); break; - case 3: controlTemplate = ct->GetSmallIconLabelTemplate(); break; - } - } - else if (fixed == views[(vint)RibbonButtonSize::Small]) - { - switch (type) - { - case 0: controlTemplate = ct->GetSmallButtonTemplate(); break; - case 1: controlTemplate = ct->GetSmallDropdownButtonTemplate(); break; - case 2: controlTemplate = ct->GetSmallSplitButtonTemplate(); break; - case 3: controlTemplate = ct->GetSmallIconLabelTemplate(); break; - } - } - else if (fixed == views[(vint)RibbonButtonSize::Icon]) + TextLine& line=colorizer->element->GetLines().GetLine(lineIndex); + line.lexerFinalState=lexerState; + line.contextFinalState=contextState; + for(vint i=0;iGetIconButtonTemplate(); break; - case 1: controlTemplate = ct->GetIconDropdownButtonTemplate(); break; - case 2: controlTemplate = ct->GetIconSplitButtonTemplate(); break; - case 3: controlTemplate = ct->GetIconLabelTemplate(); break; - } + line.att[i].colorIndex=colors[i]; } } - - button->SetControlThemeNameAndTemplate(themeName, controlTemplate); + delete[] text; + delete[] colors; } } + CANCEL_COLORIZING: + colorizer->colorizerRunningEvent.Leave(); } - GuiRibbonButtons::GuiRibbonButtons(theme::ThemeName themeName, RibbonButtonSize _maxSize, RibbonButtonSize _minSize) - :GuiControl(themeName) - , maxSize(_maxSize) - , minSize(_minSize) - , buttons(this) + void GuiTextBoxColorizerBase::StartColorizer() { - responsiveView = new GuiResponsiveViewComposition(); - responsiveView->SetDirection(ResponsiveDirection::Horizontal); - responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonButtons::OnBeforeSwitchingView); + if(!isColorizerRunning) + { + isColorizerRunning=true; + colorizerRunningEvent.Enter(); + ThreadPoolLite::Queue(&GuiTextBoxColorizerBase::ColorizerThreadProc, this); + } + } - auto installButton = [&](GuiTableComposition* table, vint row, vint column, GuiControl* buttonContainer) + void GuiTextBoxColorizerBase::StopColorizer(bool forever) + { + isFinalizing=true; + colorizerRunningEvent.Enter(); + colorizerRunningEvent.Leave(); + colorizedLineCount=0; + if(!forever) { - auto shared = new GuiResponsiveSharedComposition(); - shared->SetAlignmentToParent(Margin(0, 0, 0, 0)); - shared->SetShared(buttonContainer); + isFinalizing=false; + } + } - auto cell = new GuiCellComposition(); - cell->SetSite(row, column, 1, 1); - cell->AddChild(shared); + void GuiTextBoxColorizerBase::StopColorizerForever() + { + StopColorizer(true); + } - table->AddChild(cell); - }; + GuiTextBoxColorizerBase::GuiTextBoxColorizerBase() + :element(0) + ,elementModifyLock(0) + ,colorizedLineCount(0) + ,isColorizerRunning(false) + ,isFinalizing(false) + { + } - for (vint i = 0; i < sizeof(views) / sizeof(*views); i++) + GuiTextBoxColorizerBase::~GuiTextBoxColorizerBase() + { + StopColorizerForever(); + } + + void GuiTextBoxColorizerBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) + { + if(_element) { - if ((vint)maxSize <= i && i <= (vint)minSize) + SPIN_LOCK(_elementModifyLock) { - auto stack = new GuiStackComposition(); - stack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - stack->SetDirection(i == 0 ? GuiStackComposition::Horizontal : GuiStackComposition::Vertical); + element=_element; + elementModifyLock=&_elementModifyLock; + StartColorizer(); + } + } + } - views[i] = new GuiResponsiveFixedComposition(); - views[i]->AddChild(stack); - responsiveView->GetViews().Add(views[i]); + void GuiTextBoxColorizerBase::Detach() + { + if(element && elementModifyLock) + { + StopColorizer(false); + SPIN_LOCK(*elementModifyLock) + { + element=0; + elementModifyLock=0; } } + } - auto sharedSizeRootComposition = new GuiSharedSizeRootComposition(); - sharedSizeRootComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - sharedSizeRootComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - sharedSizeRootComposition->AddChild(responsiveView); + void GuiTextBoxColorizerBase::TextEditPreview(TextEditPreviewStruct& arguments) + { + } - containerComposition->AddChild(sharedSizeRootComposition); + void GuiTextBoxColorizerBase::TextEditNotify(const TextEditNotifyStruct& arguments) + { + if(element && elementModifyLock) + { + SPIN_LOCK(*elementModifyLock) + { + vint line + =arguments.originalStart.rowline) + { + colorizedLineCount=line; + } + StartColorizer(); + } + } } - GuiRibbonButtons::~GuiRibbonButtons() + void GuiTextBoxColorizerBase::TextCaretChanged(const TextCaretChangedStruct& arguments) { } - collections::ObservableListBase& GuiRibbonButtons::GetButtons() + void GuiTextBoxColorizerBase::TextEditFinished(vuint editVersion) { - return buttons; + } + + void GuiTextBoxColorizerBase::RestartColorizer() + { + if(element && elementModifyLock) + { + SPIN_LOCK(*elementModifyLock) + { + colorizedLineCount=0; + StartColorizer(); + } + } } /*********************************************************************** -GuiRibbonToolstripsGroupCollection +GuiTextBoxRegexColorizer ***********************************************************************/ - bool GuiRibbonToolstripsGroupCollection::QueryInsert(vint index, GuiToolstripGroup* const& value) + struct GuiTextBoxRegexColorizerProcData { - return !value->GetBoundsComposition()->GetParent(); - } + GuiTextBoxRegexColorizer* colorizer; + vint lineIndex; + const wchar_t* text; + vuint32_t* colors; + vint contextState; + }; - void GuiRibbonToolstripsGroupCollection::AfterInsert(vint index, GuiToolstripGroup* const& value) + void GuiTextBoxRegexColorizer::ColorizerProc(void* argument, vint start, vint length, vint token) { - toolstrips->RearrangeToolstripGroups(); + GuiTextBoxRegexColorizerProcData& data=**(GuiTextBoxRegexColorizerProcData**)argument; + data.colorizer->ColorizeTokenContextSensitive(data.lineIndex, data.text, start, length, token, data.contextState); + for(vint i=0;iRearrangeToolstripGroups(); + colors.Resize(1); } - GuiRibbonToolstripsGroupCollection::GuiRibbonToolstripsGroupCollection(GuiRibbonToolstrips* _toolstrips) - :toolstrips(_toolstrips) + GuiTextBoxRegexColorizer::~GuiTextBoxRegexColorizer() { + StopColorizerForever(); } - GuiRibbonToolstripsGroupCollection::~GuiRibbonToolstripsGroupCollection() + elements::text::ColorEntry GuiTextBoxRegexColorizer::GetDefaultColor() { + return defaultColor; } -/*********************************************************************** -GuiRibbonToolstrips -***********************************************************************/ + collections::List& GuiTextBoxRegexColorizer::GetTokenRegexes() + { + return tokenRegexes; + } -#define ARRLEN(X) sizeof(X) / sizeof(*X) + collections::List& GuiTextBoxRegexColorizer::GetTokenColors() + { + return tokenColors; + } - void GuiRibbonToolstrips::BeforeControlTemplateUninstalled_() + collections::List& GuiTextBoxRegexColorizer::GetExtraTokenColors() { + return extraTokenColors; } - void GuiRibbonToolstrips::AfterControlTemplateInstalled_(bool initialize) + vint GuiTextBoxRegexColorizer::GetExtraTokenIndexStart() { - auto ct = TypedControlTemplateObject(true); - for (vint i = 0; i < ARRLEN(toolbars); i++) + if(lexer) { - toolbars[i]->SetControlTemplate(ct->GetToolbarTemplate()); + return tokenColors.Count(); + } + else + { + return -1; } } - void GuiRibbonToolstrips::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + bool GuiTextBoxRegexColorizer::SetDefaultColor(elements::text::ColorEntry value) { - RearrangeToolstripGroups(arguments.itemIndex); + if(lexer) + { + return false; + } + else + { + defaultColor=value; + return true; + } } - void GuiRibbonToolstrips::RearrangeToolstripGroups(vint viewIndex) + vint GuiTextBoxRegexColorizer::AddToken(const WString& regex, elements::text::ColorEntry color) { - static_assert(ARRLEN(longContainers) == 2, ""); - static_assert(ARRLEN(shortContainers) == 3, ""); - - if (viewIndex == -1) + if(lexer) { - viewIndex = responsiveView->GetViews().IndexOf(responsiveView->GetCurrentView()); + return -1; + } + else + { + tokenRegexes.Add(regex); + tokenColors.Add(color); + return tokenColors.Count()-1; } + } - for (vint i = 0; i < ARRLEN(longContainers); i++) + vint GuiTextBoxRegexColorizer::AddExtraToken(elements::text::ColorEntry color) + { + if(lexer) { - longContainers[i]->GetToolstripItems().Clear(); + return -1; } - for (vint i = 0; i < ARRLEN(shortContainers); i++) + else { - shortContainers[i]->GetToolstripItems().Clear(); + extraTokenColors.Add(color); + return extraTokenColors.Count()-1; } + } - vint count = viewIndex == 0 ? 2 : 3; + void GuiTextBoxRegexColorizer::ClearTokens() + { + tokenRegexes.Clear(); + tokenColors.Clear(); + extraTokenColors.Clear(); + lexer=0; + } - if (groups.Count() <= count) + void GuiTextBoxRegexColorizer::Setup() + { + if (lexer || tokenRegexes.Count() == 0) { - auto containers = viewIndex == 0 ? longContainers : shortContainers; - for (vint i = 0; i < groups.Count(); i++) - { - containers[i]->GetToolstripItems().Add(groups[i]); - } + colors.Resize(1); + colors[0] = defaultColor; } - else if (count == 3) + else { -#define DELTA(POSTFIX) (abs(count1##POSTFIX - count2##POSTFIX) + abs(count2##POSTFIX - count3##POSTFIX) + abs(count3##POSTFIX - count1##POSTFIX)) -#define DEFINE_COUNT(POSTFIX, OFFSET_FIRST, OFFSET_LAST) \ - vint count1##POSTFIX = count1_o + (OFFSET_FIRST); \ - vint count2##POSTFIX = count2_o - (OFFSET_FIRST) - (OFFSET_LAST); \ - vint count3##POSTFIX = count3_o + (OFFSET_LAST) -#define MIN(a, b) (a)<(b)?(a):(b) - - vint firstGroupCount = 0; - vint lastGroupCount = 0; - - vint count1_o = 0; - vint count2_o = From(groups) - .Select([](GuiToolstripGroup* group) {return group->GetToolstripItems().Count(); }) - .Aggregate([](vint a, vint b) {return a + b; }); - vint count3_o = 0; - vint delta_o = DELTA(_o); - - while (firstGroupCount + lastGroupCount < groups.Count()) + lexer = Ptr(new regex::RegexLexer(tokenRegexes)); + colors.Resize(1 + tokenRegexes.Count() + extraTokenColors.Count()); + colors[0] = defaultColor; + for (vint i = 0; i < tokenColors.Count(); i++) { - auto newFirstGroup = groups[firstGroupCount]; - auto newLastGroup = groups[groups.Count() - lastGroupCount - 1]; + colors[i + 1] = tokenColors[i]; + } + for (vint i = 0; i < extraTokenColors.Count(); i++) + { + colors[i + 1 + tokenColors.Count()] = extraTokenColors[i]; + } + { + regex::RegexProc proc; + proc.colorizeProc = &GuiTextBoxRegexColorizer::ColorizerProc; + proc.argument = colorizerArgument; + colorizer = Ptr(new regex::RegexLexerColorizer(lexer->Colorize(proc))); + } + } + } - DEFINE_COUNT(_f, newFirstGroup->GetToolstripItems().Count(), 0); - vint delta_f = DELTA(_f); + void GuiTextBoxRegexColorizer::ColorizeTokenContextSensitive(vint lineIndex, const wchar_t* text, vint start, vint length, vint& token, vint& contextState) + { + } - DEFINE_COUNT(_l, 0, newLastGroup->GetToolstripItems().Count()); - vint delta_l = DELTA(_l); + vint GuiTextBoxRegexColorizer::GetLexerStartState() + { + return lexer?colorizer->GetStartState():-1; + } - vint delta = MIN(delta_o, MIN(delta_f, delta_l)); - if (delta == delta_f) - { - firstGroupCount++; - count1_o = count1_f; - count2_o = count2_f; - count3_o = count3_f; - delta_o = delta_f; - } - else if (delta == delta_l) - { - lastGroupCount++; - count1_o = count1_l; - count2_o = count2_l; - count3_o = count3_l; - delta_o = delta_l; - } - else - { - break; - } - } + vint GuiTextBoxRegexColorizer::GetContextStartState() + { + return 0; + } - vint minMiddle = firstGroupCount; - vint maxMiddle = groups.Count() - lastGroupCount - 1; - for (vint j = 0; j < groups.Count(); j++) - { - shortContainers[ - j < minMiddle ? 0 : - j>maxMiddle ? 2 : - 1 - ]->GetToolstripItems().Add(groups[j]); - } + void GuiTextBoxRegexColorizer::ColorizeLineWithCRLF(vint lineIndex, const wchar_t* text, vuint32_t* colors, vint length, vint& lexerState, vint& contextState) + { + memset(colors, 0, sizeof(*colors)*length); + if (lexer) + { + GuiTextBoxRegexColorizerProcData data; + data.colorizer = this; + data.lineIndex = lineIndex; + data.text = text; + data.colors = colors; + data.contextState = contextState; -#undef MIN -#undef DEFINE_COUNT -#undef DELTA + regex::RegexLexerColorizer::InternalState internalState; + internalState.currentState = lexerState; + colorizer->SetInternalState(internalState); + colorizerArgument[0] = &data; + colorizer->Colorize(text, length); + + lexerState = colorizer->GetInternalState().currentState; + contextState = data.contextState; } - else if (count == 2) + else { - vint firstGroupCount = groups.Count(); - { - vint count1 = 0; - vint count2 = From(groups) - .Select([](GuiToolstripGroup* group) {return group->GetToolstripItems().Count(); }) - .Aggregate([](vint a, vint b) {return a + b; }); - vint delta = abs(count2 - count1); + lexerState = -1; + contextState = -1; + } + } - for (vint i = 0; i < groups.Count(); i++) - { - auto groupCount = groups[i]->GetToolstripItems().Count(); - vint count1_2 = count1 + groupCount; - vint count2_2 = count2 - groupCount; - vint delta_2 = abs(count2_2 - count1_2); + const GuiTextBoxRegexColorizer::ColorArray& GuiTextBoxRegexColorizer::GetColors() + { + return colors; + } + } + } +} - if (delta < delta_2) - { - firstGroupCount = i; - break; - } +/*********************************************************************** +.\CONTROLS\TEXTEDITORPACKAGE\EDITORCALLBACK\GUITEXTUNDOREDO.CPP +***********************************************************************/ - count1 = count1_2; - count2 = count2_2; - delta = delta_2; - } - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace elements; + using namespace elements::text; + using namespace compositions; - for (vint j = 0; j < groups.Count(); j++) - { - longContainers[j < firstGroupCount ? 0 : 1]->GetToolstripItems().Add(groups[j]); - } - } +/*********************************************************************** +GuiGeneralUndoRedoProcessor +***********************************************************************/ + + GuiGeneralUndoRedoProcessor::GuiGeneralUndoRedoProcessor() + :firstFutureStep(0) + ,savedStep(0) + ,performingUndoRedo(false) + { } - GuiRibbonToolstrips::GuiRibbonToolstrips(theme::ThemeName themeName) - :GuiControl(themeName) - , groups(this) + GuiGeneralUndoRedoProcessor::~GuiGeneralUndoRedoProcessor() { - responsiveView = new GuiResponsiveViewComposition(); - responsiveView->SetDirection(ResponsiveDirection::Horizontal); - responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); - responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonToolstrips::OnBeforeSwitchingView); + } - vint toolbarIndex = 0; - for (vint i = 0; i < sizeof(views) / sizeof(*views); i++) + void GuiGeneralUndoRedoProcessor::PushStep(Ptr step) + { + if(!performingUndoRedo) { - auto containers = i == 0 ? longContainers : shortContainers; - vint count = i == 0 ? 2 : 3; - - auto table = new GuiTableComposition(); - table->SetAlignmentToParent(Margin(0, 0, 0, 0)); - table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - - table->SetRowsAndColumns(count * 2 + 1, 1); - table->SetColumnOption(0, GuiCellOption::MinSizeOption()); - table->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); - for (vint j = 0; j < count; j++) + if(firstFutureStepSetRowOption(j * 2 + 1, GuiCellOption::MinSizeOption()); - table->SetRowOption(j * 2 + 2, GuiCellOption::PercentageOption(1.0)); + savedStep=-1; } - for (vint j = 0; j < count; j++) + vint count=steps.Count()-firstFutureStep; + if(count>0) { - auto toolbar = new GuiToolstripToolBar(theme::ThemeName::ToolstripToolBar); - toolbar->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - toolbars[toolbarIndex++] = toolbar; + steps.RemoveRange(firstFutureStep, count); + } + + steps.Add(step); + firstFutureStep=steps.Count(); + UndoRedoChanged(); + ModifiedChanged(); + } + } - auto cell = new GuiCellComposition(); - cell->SetSite(j * 2 + 1, 0, 1, 1); - cell->AddChild(toolbar->GetBoundsComposition()); - table->AddChild(cell); + bool GuiGeneralUndoRedoProcessor::CanUndo() + { + return firstFutureStep>0; + } - auto container = new GuiToolstripGroupContainer(theme::ThemeName::CustomControl); - toolbar->GetToolstripItems().Add(container); - containers[j] = container; - } + bool GuiGeneralUndoRedoProcessor::CanRedo() + { + return steps.Count()>firstFutureStep; + } - views[i] = new GuiResponsiveFixedComposition(); - views[i]->AddChild(table); - responsiveView->GetViews().Add(views[i]); + void GuiGeneralUndoRedoProcessor::ClearUndoRedo() + { + if(!performingUndoRedo) + { + steps.Clear(); + firstFutureStep=0; + savedStep=0; } + } - containerComposition->AddChild(responsiveView); + bool GuiGeneralUndoRedoProcessor::GetModified() + { + return firstFutureStep!=savedStep; } - GuiRibbonToolstrips::~GuiRibbonToolstrips() + void GuiGeneralUndoRedoProcessor::NotifyModificationSaved() { + if(!performingUndoRedo) + { + savedStep=firstFutureStep; + ModifiedChanged(); + } } - collections::ObservableListBase& GuiRibbonToolstrips::GetGroups() + bool GuiGeneralUndoRedoProcessor::Undo() { - return groups; + if(!CanUndo()) return false; + performingUndoRedo=true; + firstFutureStep--; + steps[firstFutureStep]->Undo(); + performingUndoRedo=false; + UndoRedoChanged(); + ModifiedChanged(); + return true; } -#undef ARRLEN + bool GuiGeneralUndoRedoProcessor::Redo() + { + if(!CanRedo()) return false; + performingUndoRedo=true; + firstFutureStep++; + steps[firstFutureStep-1]->Redo(); + performingUndoRedo=false; + UndoRedoChanged(); + ModifiedChanged(); + return true; + } /*********************************************************************** -GuiRibbonGallery::CommandExecutor +GuiTextBoxUndoRedoProcessor::EditStep ***********************************************************************/ - GuiRibbonGallery::CommandExecutor::CommandExecutor(GuiRibbonGallery* _gallery) - :gallery(_gallery) + void GuiTextBoxUndoRedoProcessor::EditStep::Undo() { + GuiTextBoxCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) + { + ci->Select(arguments.inputStart, arguments.inputEnd); + ci->SetSelectionText(arguments.originalText); + ci->Select(arguments.originalStart, arguments.originalEnd); + } } - GuiRibbonGallery::CommandExecutor::~CommandExecutor() + void GuiTextBoxUndoRedoProcessor::EditStep::Redo() { + GuiTextBoxCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) + { + ci->Select(arguments.originalStart, arguments.originalEnd); + ci->SetSelectionText(arguments.inputText); + ci->Select(arguments.inputStart, arguments.inputEnd); + } } - void GuiRibbonGallery::CommandExecutor::NotifyScrollUp() +/*********************************************************************** +GuiTextBoxUndoRedoProcessor +***********************************************************************/ + + GuiTextBoxUndoRedoProcessor::GuiTextBoxUndoRedoProcessor() + :ownerComposition(0) { - gallery->RequestedScrollUp.Execute(gallery->GetNotifyEventArguments()); } - void GuiRibbonGallery::CommandExecutor::NotifyScrollDown() + GuiTextBoxUndoRedoProcessor::~GuiTextBoxUndoRedoProcessor() { - gallery->RequestedScrollDown.Execute(gallery->GetNotifyEventArguments()); } - void GuiRibbonGallery::CommandExecutor::NotifyDropdown() + void GuiTextBoxUndoRedoProcessor::Attach(elements::GuiColorizedTextElement* element, SpinLock& elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) { - gallery->RequestedDropdown.Execute(gallery->GetNotifyEventArguments()); + ownerComposition=_ownerComposition; } -/*********************************************************************** -GuiRibbonGallery -***********************************************************************/ - - void GuiRibbonGallery::BeforeControlTemplateUninstalled_() + void GuiTextBoxUndoRedoProcessor::Detach() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - ct->SetCommands(nullptr); + ClearUndoRedo(); } - void GuiRibbonGallery::AfterControlTemplateInstalled_(bool initialize) + void GuiTextBoxUndoRedoProcessor::TextEditPreview(TextEditPreviewStruct& arguments) { - auto ct = TypedControlTemplateObject(true); - ct->SetCommands(commandExecutor.Obj()); - ct->SetScrollUpEnabled(scrollUpEnabled); - ct->SetScrollDownEnabled(scrollDownEnabled); } - GuiRibbonGallery::GuiRibbonGallery(theme::ThemeName themeName) - :GuiControl(themeName) + void GuiTextBoxUndoRedoProcessor::TextEditNotify(const TextEditNotifyStruct& arguments) { - commandExecutor = new CommandExecutor(this); + auto step=Ptr(new EditStep); + step->processor=this; + step->arguments=arguments; + PushStep(step); + } - ScrollUpEnabledChanged.SetAssociatedComposition(boundsComposition); - ScrollDownEnabledChanged.SetAssociatedComposition(boundsComposition); - RequestedScrollUp.SetAssociatedComposition(boundsComposition); - RequestedScrollDown.SetAssociatedComposition(boundsComposition); - RequestedDropdown.SetAssociatedComposition(boundsComposition); + void GuiTextBoxUndoRedoProcessor::TextCaretChanged(const TextCaretChangedStruct& arguments) + { } - GuiRibbonGallery::~GuiRibbonGallery() + void GuiTextBoxUndoRedoProcessor::TextEditFinished(vuint editVersion) { } - bool GuiRibbonGallery::GetScrollUpEnabled() +/*********************************************************************** +GuiDocumentUndoRedoProcessor::ReplaceModelStep +***********************************************************************/ + + void GuiDocumentUndoRedoProcessor::ReplaceModelStep::Undo() { - return scrollUpEnabled; + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) + { + ci->EditRun(arguments.inputStart, arguments.inputEnd, arguments.originalModel, true); + ci->SetCaret(arguments.originalStart, arguments.originalEnd); + } } - void GuiRibbonGallery::SetScrollUpEnabled(bool value) + void GuiDocumentUndoRedoProcessor::ReplaceModelStep::Redo() { - if (scrollUpEnabled != value) + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) { - scrollUpEnabled = value; - TypedControlTemplateObject(true)->SetScrollUpEnabled(value); + ci->EditRun(arguments.originalStart, arguments.originalEnd, arguments.inputModel, true); + ci->SetCaret(arguments.inputStart, arguments.inputEnd); } } - bool GuiRibbonGallery::GetScrollDownEnabled() +/*********************************************************************** +GuiDocumentUndoRedoProcessor::RenameStyleStep +***********************************************************************/ + + void GuiDocumentUndoRedoProcessor::RenameStyleStep::Undo() { - return scrollDownEnabled; + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) + { + ci->RenameStyle(arguments.newStyleName, arguments.oldStyleName); + } } - void GuiRibbonGallery::SetScrollDownEnabled(bool value) + void GuiDocumentUndoRedoProcessor::RenameStyleStep::Redo() { - if (scrollDownEnabled != value) + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) { - scrollDownEnabled = value; - TypedControlTemplateObject(true)->SetScrollDownEnabled(value); + ci->RenameStyle(arguments.oldStyleName, arguments.newStyleName); } } /*********************************************************************** -GuiRibbonToolstripMenu +GuiDocumentUndoRedoProcessor::SetAlignmentStep ***********************************************************************/ - void GuiRibbonToolstripMenu::BeforeControlTemplateUninstalled_() + void GuiDocumentUndoRedoProcessor::SetAlignmentStep::Undo() { - auto ct = TypedControlTemplateObject(false); - if (!ct) return; - - if (auto cc = ct->GetContentComposition()) + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) { - cc->RemoveChild(contentComposition); + ci->SetParagraphAlignments(TextPos(arguments->start, 0), TextPos(arguments->end, 0), arguments->originalAlignments); } } - void GuiRibbonToolstripMenu::AfterControlTemplateInstalled_(bool initialize) + void GuiDocumentUndoRedoProcessor::SetAlignmentStep::Redo() { - auto ct = TypedControlTemplateObject(true); - if (auto cc = ct->GetContentComposition()) + GuiDocumentCommonInterface* ci=dynamic_cast(processor->ownerComposition->GetRelatedControl()); + if(ci) { - cc->AddChild(contentComposition); + ci->SetParagraphAlignments(TextPos(arguments->start, 0), TextPos(arguments->end, 0), arguments->inputAlignments); } } - GuiRibbonToolstripMenu::GuiRibbonToolstripMenu(theme::ThemeName themeName, GuiControl* owner) - :GuiToolstripMenu(themeName, owner) +/*********************************************************************** +GuiDocumentUndoRedoProcessor +***********************************************************************/ + + GuiDocumentUndoRedoProcessor::GuiDocumentUndoRedoProcessor() + :element(0) + ,ownerComposition(0) { - contentComposition = new GuiBoundsComposition(); - contentComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - contentComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - GuiRibbonToolstripMenu::~GuiRibbonToolstripMenu() + GuiDocumentUndoRedoProcessor::~GuiDocumentUndoRedoProcessor() { - if (!contentComposition->GetParent()) - { - SafeDeleteComposition(contentComposition); - } } - compositions::GuiGraphicsComposition* GuiRibbonToolstripMenu::GetContentComposition() + void GuiDocumentUndoRedoProcessor::Setup(elements::GuiDocumentElement* _element, compositions::GuiGraphicsComposition* _ownerComposition) { - return contentComposition; + element=_element; + ownerComposition=_ownerComposition; + } + + void GuiDocumentUndoRedoProcessor::OnReplaceModel(const ReplaceModelStruct& arguments) + { + auto step=Ptr(new ReplaceModelStep); + step->processor=this; + step->arguments=arguments; + PushStep(step); + } + + void GuiDocumentUndoRedoProcessor::OnRenameStyle(const RenameStyleStruct& arguments) + { + auto step=Ptr(new RenameStyleStep); + step->processor=this; + step->arguments=arguments; + PushStep(step); + } + + void GuiDocumentUndoRedoProcessor::OnSetAlignment(Ptr arguments) + { + auto step=Ptr(new SetAlignmentStep); + step->processor=this; + step->arguments=arguments; + PushStep(step); } } } } - /*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONGALLERYLIST.CPP +.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGEAUTOCOMPLETE.CPP ***********************************************************************/ - namespace vl { namespace presentation { namespace controls { - using namespace reflection::description; + using namespace elements; + using namespace regex; + using namespace parsing; + using namespace parsing::tabling; using namespace collections; - using namespace compositions; - using namespace templates; - - namespace list - { /*********************************************************************** -list::GalleryGroup +GuiGrammarAutoComplete ***********************************************************************/ - GalleryGroup::GalleryGroup() + void GuiGrammarAutoComplete::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) + { + GuiTextBoxAutoCompleteBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); + RepeatingParsingExecutor::CallbackBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); + } + + void GuiGrammarAutoComplete::Detach() + { + GuiTextBoxAutoCompleteBase::Detach(); + RepeatingParsingExecutor::CallbackBase::Detach(); + if(element && elementModifyLock) { + EnsureAutoCompleteFinished(); } + } - GalleryGroup::~GalleryGroup() + void GuiGrammarAutoComplete::TextEditPreview(TextEditPreviewStruct& arguments) + { + GuiTextBoxAutoCompleteBase::TextEditPreview(arguments); + RepeatingParsingExecutor::CallbackBase::TextEditPreview(arguments); + + if(element && elementModifyLock) { - if (eventHandler) + if(IsListOpening() && arguments.keyInput && arguments.originalText==L"" && arguments.inputText!=L"") { - itemValues.Cast()->ItemChanged.Remove(eventHandler); + WString selectedItem=GetSelectedListItem(); + if(selectedItem!=L"") + { + TextPos begin=GetListStartPosition(); + TextPos end=arguments.originalStart; + WString editingText=element->GetLines().GetText(begin, end); + editingText+=arguments.inputText; + if(grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(editingText)) + { + arguments.originalStart=begin; + arguments.inputText=selectedItem+arguments.inputText; + CloseList(); + } + } } } + } - WString GalleryGroup::GetName() - { - return name; - } - - Ptr GalleryGroup::GetItemValues() + void GuiGrammarAutoComplete::TextEditNotify(const TextEditNotifyStruct& arguments) + { + GuiTextBoxAutoCompleteBase::TextEditNotify(arguments); + RepeatingParsingExecutor::CallbackBase::TextEditNotify(arguments); + if(element && elementModifyLock) { - return itemValues; + editing=true; + SPIN_LOCK(editTraceLock) + { + editTrace.Add(arguments); + } } + } -/*********************************************************************** -list::GroupedDataSource -***********************************************************************/ - - void GroupedDataSource::RebuildItemSource() + void GuiGrammarAutoComplete::TextCaretChanged(const TextCaretChangedStruct& arguments) + { + GuiTextBoxAutoCompleteBase::TextCaretChanged(arguments); + RepeatingParsingExecutor::CallbackBase::TextCaretChanged(arguments); + if(element && elementModifyLock) { - ignoreGroupChanged = true; - joinedItemSource.Clear(); - groupedItemSource.Clear(); - cachedGroupItemCounts.Clear(); - ignoreGroupChanged = false; + SPIN_LOCK(editTraceLock) + { + // queue a fake TextEditNotifyStruct + // a fake struct can be detected by (trace.originalText==L"" && trace.inputText==L"") + TextEditNotifyStruct trace; + trace.editVersion=arguments.editVersion; + trace.originalStart=arguments.oldBegin; + trace.originalEnd=arguments.oldEnd; + trace.inputStart=arguments.newBegin; + trace.inputEnd=arguments.newEnd; - if (itemSource) + // ensure trace.originalStart<=trace.originalEnd + if(trace.originalStart>trace.originalEnd) + { + TextPos temp=trace.originalStart; + trace.originalStart=trace.originalEnd; + trace.originalEnd=temp; + } + // ensure trace.inputStart<=trace.inputEnd + if(trace.inputStart>trace.inputEnd) + { + TextPos temp=trace.inputStart; + trace.inputStart=trace.inputEnd; + trace.inputEnd=temp; + } + editTrace.Add(trace); + } + + SPIN_LOCK(contextLock) { - if (GetGroupEnabled()) + if(context.input.node) { - for (auto [groupValue, index] : indexed(GetLazyList(itemSource))) + if(editing) { - auto group = MakePtr(); - group->name = titleProperty(groupValue); - group->itemValues = GetChildren(childrenProperty(groupValue)); - AttachGroupChanged(group, index); - groupedItemSource.Add(group); + // if the current caret changing is caused by editing + // submit a task with valid editVersion and invalid node and code + RepeatingParsingOutput input; + input.editVersion=context.input.editVersion; + SubmitTask(input); + } + else if(context.input.editVersion == arguments.editVersion) + { + // if the current caret changing is not caused by editing + // submit a task with the previous input + SubmitTask(context.input); } - } - else - { - auto group = MakePtr(); - group->itemValues = GetChildren(itemSource); - AttachGroupChanged(group, 0); - groupedItemSource.Add(group); } } } + } - Ptr GroupedDataSource::GetChildren(Ptr children) + void GuiGrammarAutoComplete::TextEditFinished(vuint editVersion) + { + GuiTextBoxAutoCompleteBase::TextEditFinished(editVersion); + RepeatingParsingExecutor::CallbackBase::TextEditFinished(editVersion); + if(element && elementModifyLock) { - if (!children) - { - return nullptr; - } - else if (auto list = children.Cast()) - { - return list; - } - else - { - return IValueList::Create(GetLazyList(children)); - } + editing=false; } + } - void GroupedDataSource::AttachGroupChanged(Ptr group, vint index) + void GuiGrammarAutoComplete::OnParsingFinishedAsync(const RepeatingParsingOutput& arguments) + { + if(element && elementModifyLock) { - if (auto observable = group->itemValues.Cast()) + GetApplication()->InvokeInMainThread(ownerComposition->GetRelatedControlHost(), [=]() { - group->eventHandler = observable->ItemChanged.Add([this, index](vint start, vint oldCount, vint newCount) - { - OnGroupItemChanged(index, start, oldCount, newCount); - }); - } + // submit a task if the RepeatingParsingExecutor notices a new parsing result + SubmitTask(arguments); + }); } + } - void GroupedDataSource::OnGroupChanged(vint start, vint oldCount, vint newCount) + void GuiGrammarAutoComplete::CollectLeftRecursiveRules() + { + leftRecursiveRules.Clear(); + Ptr parser=parsingExecutor->GetParser(); + Ptr table=parser->GetTable(); + vint stateCount=table->GetStateCount(); + vint tokenCount=table->GetTokenCount(); + for(vint i=0;i bag=table->GetTransitionBag(i, j); + if(bag) { - InsertGroupToJoined(start + i); + for (auto item : bag->transitionItems) + { + for (auto ins : item->instructions) + { + if(ins.instructionType==ParsingTable::Instruction::LeftRecursiveReduce) + { + if(!leftRecursiveRules.Contains(ins.creatorRule)) + { + leftRecursiveRules.Add(ins.creatorRule); + } + } + } + } } } } + } - void GroupedDataSource::OnGroupItemChanged(vint index, vint start, vint oldCount, vint newCount) + vint GuiGrammarAutoComplete::UnsafeGetEditTraceIndex(vuint editVersion) + { + // get the index of the latest TextEditNotifyStruct of a specified edit version + // this function should be called inside SPIN_LOCK(editTraceLock) + // perform a binary search + vint start = 0; + vint end = editTrace.Count() - 1; + while (start <= end) { - if (!ignoreGroupChanged) - { - vint countBeforeGroup = GetCountBeforeGroup(index); - vint joinedIndex = countBeforeGroup + start; - vint minCount = oldCount < newCount ? oldCount : newCount; - auto itemValues = groupedItemSource[index]->itemValues; - - for (vint i = 0; i < minCount; i++) - { - joinedItemSource.Set(joinedIndex + i, itemValues->Get(start + i)); - } + vint middle = (start + end) / 2; + TextEditNotifyStruct& trace = editTrace[middle]; - if (oldCount < newCount) + if (editVersiontrace.editVersion) + { + start = middle + 1; + } + else + { + // if multiple TextEditNotifyStruct is found, choose the latest one + while (middle < editTrace.Count() - 1) { - for (vint i = minCount; i < newCount; i++) + if (editTrace[middle + 1].editVersion == editTrace[middle].editVersion) { - joinedItemSource.Insert(joinedIndex + i, itemValues->Get(start + i)); + middle++; } - } - else if (oldCount > newCount) - { - for (vint i = minCount; i < oldCount; i++) + else { - joinedItemSource.RemoveAt(joinedIndex + i); + break; } } - - cachedGroupItemCounts[index] += newCount - oldCount; + return middle; } } + return -1; + } - vint GroupedDataSource::GetCountBeforeGroup(vint index) - { - vint count = 0; - for (vint i = 0; i < index; i++) - { - count += cachedGroupItemCounts[i]; - } - return count; - } + TextPos GuiGrammarAutoComplete::ChooseCorrectTextPos(TextPos pos, const regex::RegexTokens& tokens) + { + Ptr table=grammarParser->GetTable(); + RegexToken lastToken; + lastToken.reading=0; - void GroupedDataSource::InsertGroupToJoined(vint index) + for (auto token : tokens) { - vint countBeforeGroup = GetCountBeforeGroup(index); - auto group = groupedItemSource[index]; - vint itemCount = group->itemValues ? group->itemValues->GetCount() : 0; - cachedGroupItemCounts.Insert(index, itemCount); - - if (itemCount > 0) + // we treat "class| Name" as editing the first token + if(TextPos(token.rowEnd, token.columnEnd+1)>=pos) { - for (vint i = 0; i < itemCount; i++) + if(table->GetTableTokenIndex(token.token)!=-1 && lastToken.reading) { - joinedItemSource.Insert(countBeforeGroup + i, group->itemValues->Get(i)); + pos=TextPos(lastToken.rowStart, lastToken.columnStart); } + break; } + lastToken=token; } + return pos; + } - void GroupedDataSource::RemoveGroupFromJoined(vint index) + void GuiGrammarAutoComplete::ExecuteRefresh(AutoCompleteContext& newContext) + { + // process the input of a task is submitted not by text editing + // find the text selection by the edit version of the input + TextPos startPos, endPos; { - vint countBeforeGroup = GetCountBeforeGroup(index); - joinedItemSource.RemoveRange(countBeforeGroup, cachedGroupItemCounts[index]); - cachedGroupItemCounts.RemoveAt(index); - } + SPIN_LOCK(editTraceLock) + { + vint traceIndex = UnsafeGetEditTraceIndex(newContext.input.editVersion); + if (traceIndex == -1) return; - GroupedDataSource::GroupedDataSource(compositions::GuiGraphicsComposition* _associatedComposition) - :associatedComposition(_associatedComposition) - { - GroupEnabledChanged.SetAssociatedComposition(associatedComposition); - GroupTitlePropertyChanged.SetAssociatedComposition(associatedComposition); - GroupChildrenPropertyChanged.SetAssociatedComposition(associatedComposition); + TextEditNotifyStruct& trace = editTrace[traceIndex]; + startPos = trace.inputStart; + endPos = trace.inputEnd; + } - auto vol = UnboxValue>(BoxParameter(groupedItemSource)); - groupChangedHandler = vol->ItemChanged.Add(this, &GroupedDataSource::OnGroupChanged); + const RegexLexer& lexer = grammarParser->GetTable()->GetLexer(); + RegexTokens tokens = lexer.Parse(newContext.input.code); + startPos = ChooseCorrectTextPos(startPos, tokens); } - GroupedDataSource::~GroupedDataSource() - { - auto vol = UnboxValue>(BoxParameter(joinedItemSource)); - vol->ItemChanged.Remove(groupChangedHandler); - } + // locate the deepest node using the text selection + ParsingTextPos start(startPos.row, startPos.column); + ParsingTextPos end(endPos.row, endPos.column); + ParsingTextRange range(start, end); + ParsingTreeNode* found = newContext.input.node->FindDeepestNode(range); + ParsingTreeObject* selectedNode = 0; - Ptr GroupedDataSource::GetItemSource() + // if the location failed, choose the root node + if (!found || startPos == TextPos(0, 0)) { - return itemSource; + found = newContext.input.node.Obj(); } - void GroupedDataSource::SetItemSource(Ptr value) + if (!selectedNode) { - if (itemSource != value) + // from the deepest node, traverse towards the root node + // find the deepest node whose created rule is a left recursive rule and whose parent is not + ParsingTreeObject* lrec = 0; + ParsingTreeNode* current = found; + while (current) { - itemSource = value; - RebuildItemSource(); + ParsingTreeObject* obj = dynamic_cast(current); + if (obj) + { + for (auto rule : obj->GetCreatorRules()) + { + if (leftRecursiveRules.Contains(rule)) + { + lrec = obj; + break; + } + } + if (obj && lrec && lrec != obj) + { + selectedNode = lrec; + break; + } + } + current = current->GetParent(); } } - bool GroupedDataSource::GetGroupEnabled() - { - return titleProperty && childrenProperty; - } - - ItemProperty GroupedDataSource::GetGroupTitleProperty() - { - return titleProperty; - } - - void GroupedDataSource::SetGroupTitleProperty(const ItemProperty& value) + if (!selectedNode) { - if (titleProperty != value) + // if there is no left recursive rule that creates the deepest node and all indirect parents + // choose the deepest ParsingTreeObject + ParsingTreeNode* current = found; + while (current) { - titleProperty = value; - GroupTitlePropertyChanged.Execute(GuiEventArgs(associatedComposition)); - GroupEnabledChanged.Execute(GuiEventArgs(associatedComposition)); - RebuildItemSource(); + ParsingTreeObject* obj = dynamic_cast(current); + if (obj) + { + selectedNode = obj; + break; + } + current = current->GetParent(); } } - ItemProperty> GroupedDataSource::GetGroupChildrenProperty() + if (selectedNode) { - return childrenProperty; - } + // get the code range of the selected node + start = selectedNode->GetCodeRange().start; + end = selectedNode->GetCodeRange().end; - void GroupedDataSource::SetGroupChildrenProperty(const ItemProperty>& value) - { - if (childrenProperty != value) + // get all properties from the selected node + newContext.rule = selectedNode->GetCreatorRules()[selectedNode->GetCreatorRules().Count() - 1]; + newContext.originalRange = selectedNode->GetCodeRange(); + newContext.originalNode = Ptr(selectedNode); + newContext.modifiedNode = newContext.originalNode; + newContext.modifiedEditVersion = newContext.input.editVersion; + + // get the corresponding code of the selected node + if (start.index >= 0 && end.index >= 0) { - childrenProperty = value; - GroupChildrenPropertyChanged.Execute(GuiEventArgs(associatedComposition)); - GroupEnabledChanged.Execute(GuiEventArgs(associatedComposition)); - RebuildItemSource(); + newContext.modifiedCode = newContext.input.code.Sub(start.index, end.index - start.index + 1).Buffer(); } } - - const GroupedDataSource::GalleryGroupList& GroupedDataSource::GetGroups() - { - return groupedItemSource; - } - } - -/*********************************************************************** -GuiBindableRibbonGalleryList -***********************************************************************/ - - void GuiBindableRibbonGalleryList::BeforeControlTemplateUninstalled_() - { } - void GuiBindableRibbonGalleryList::AfterControlTemplateInstalled_(bool initialize) + bool GuiGrammarAutoComplete::NormalizeTextPos(AutoCompleteContext& newContext, elements::text::TextLines& lines, TextPos& pos) { - auto ct = TypedControlTemplateObject(true); - itemList->SetControlTemplate(ct->GetItemListTemplate()); - subMenu->SetControlTemplate(ct->GetMenuTemplate()); - groupContainer->SetControlTemplate(ct->GetGroupContainerTemplate()); - MenuResetGroupTemplate(); - UpdateLayoutSizeOffset(); - } + // get the start position + TextPos start(newContext.originalRange.start.row, newContext.originalRange.start.column); - void GuiBindableRibbonGalleryList::UpdateLayoutSizeOffset() - { - auto cSize = itemList->GetContainerComposition()->GetBounds(); - auto bSize = itemList->GetBoundsComposition()->GetBounds(); - layout->SetSizeOffset(Size(bSize.Width() - cSize.Width(), bSize.Height() - cSize.Height())); + // get the end position of the end of lines + TextPos end + = lines.GetCount() <= 1 + ? TextPos(start.row, start.column + lines.GetLine(0).dataLength) + : TextPos(start.row + lines.GetCount() - 1, lines.GetLine(lines.GetCount() - 1).dataLength) + ; - if (layout->GetItemWidth() > 0) + if (start <= pos && pos <= end) { - vint columns = layout->GetVisibleItemCount(); - if (columns == 0) columns = 1; - vint rows = (visibleItemCount + columns - 1) / columns; - vint height = (vint)(layout->GetBounds().Height()*(rows + 0.5)); - groupContainer->GetBoundsComposition()->SetPreferredMinSize(Size(0, height)); + // if the pos is inside the range + // normalize the pos to a new coordinate that the beginning position of lines is (row=0, column=0) + pos.row -= start.row; + if (pos.row == 0) + { + pos.column -= start.column; + } + return true; } else { - groupContainer->GetBoundsComposition()->SetPreferredMinSize(Size(0, 0)); + return false; } } - void GuiBindableRibbonGalleryList::OnItemListSelectionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiGrammarAutoComplete::ExecuteEdit(AutoCompleteContext& newContext) { - auto pos = IndexToGalleryPos(itemList->GetSelectedItemIndex()); - if (pos.group != -1 && pos.item != -1) + // process the input of a task that is submitted by text editing + // this function make an approximiation to the context if the RepeatingParsingExecutor is not fast enough + // copy all TextEditNotifyStruct that is caused by a text editing before (and including) the edit version of the input + List usedTrace; { - for (vint i = 0; i < groupedItemSource.Count(); i++) + SPIN_LOCK(editTraceLock) { - auto group = groupedItemSource[i]; - if (group->GetItemValues()) + CopyFrom( + usedTrace, + From(editTrace) + .Where([&newContext](const TextEditNotifyStruct& value) + { + return (value.originalText != L"" || value.inputText != L"") && value.editVersion > newContext.modifiedEditVersion; + }) + ); + } + } + + // apply all modification to get the new modifiedCode + bool failed = false; + if (usedTrace.Count() > 0) + { + if (usedTrace[0].editVersion != newContext.modifiedEditVersion + 1) + { + // failed if any TextEditNotifyStruct is missing + failed = true; + } + else + { + // initialize a TextLines with the latest modifiedCode + text::TextLines lines(nullptr); + lines.SetText(newContext.modifiedCode); + for (auto trace : usedTrace) { - vint count = group->GetItemValues()->GetCount(); - for (vint j = 0; j < count; j++) + // apply a modification to lines + TextPos start = trace.originalStart; + TextPos end = trace.originalEnd; + + // only if the modification is meaningful + if (NormalizeTextPos(newContext, lines, start) && NormalizeTextPos(newContext, lines, end)) { - auto background = MenuGetGroupItemBackground(i, j); - background->SetSelected(pos.group == i && pos.item == j); + lines.Modify(start, end, trace.inputText); + } + else + { + // otherwise, failed + failed = true; + break; } } + + if (!failed) + { + newContext.modifiedCode = lines.GetText(); + } } } - - if (!skipItemAppliedEvent && itemList->GetSelectedItemIndex() != -1) + + if (failed) { - GuiItemEventArgs itemAppliedArgs(boundsComposition); - itemAppliedArgs.itemIndex = itemList->GetSelectedItemIndex(); - ItemApplied.Execute(itemAppliedArgs); + // clear originalNode to notify that the current context goes wrong + newContext.originalNode = 0; } - SelectionChanged.Execute(GetNotifyEventArguments()); - } - void GuiBindableRibbonGalleryList::OnItemListItemMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) - { - StartPreview(arguments.itemIndex); + if (usedTrace.Count() > 0) + { + // update the edit version + newContext.modifiedEditVersion = usedTrace[usedTrace.Count() - 1].editVersion; + } } - void GuiBindableRibbonGalleryList::OnItemListItemMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + void GuiGrammarAutoComplete::DeleteFutures(collections::List& futures) { - StopPreview(arguments.itemIndex); + // delete all futures and clear the list + for (auto future : futures) + { + delete future; + } + futures.Clear(); } - void GuiBindableRibbonGalleryList::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + regex::RegexToken* GuiGrammarAutoComplete::TraverseTransitions( + parsing::tabling::ParsingState& state, + parsing::tabling::ParsingTransitionCollector& transitionCollector, + TextPos stopPosition, + collections::List& nonRecoveryFutures, + collections::List& recoveryFutures + ) { - UpdateLayoutSizeOffset(); - - auto bounds = boundsComposition->GetBounds(); - subMenu->GetBoundsComposition()->SetPreferredMinSize(Size(bounds.Width() + 20, 1)); - - for (vint i = 0; i < groupedItemSource.Count(); i++) + const List& transitions = transitionCollector.GetTransitions(); + for (vint index = 0; index < transitions.Count(); index++) { - auto group = groupedItemSource[i]; - if (group->GetItemValues()) + const ParsingState::TransitionResult& transition = transitions[index]; + switch (transition.transitionType) { - vint count = group->GetItemValues()->GetCount(); - for (vint j = 0; j < count; j++) + case ParsingState::TransitionResult::AmbiguityBegin: + break; + case ParsingState::TransitionResult::AmbiguityBranch: + // ambiguity branches are not nested + // tokens in different braches are the same + // so we only need to run one branch, and skip the others + index = transitionCollector.GetAmbiguityEndFromBegin(transitionCollector.GetAmbiguityBeginFromBranch(index)); + break; + case ParsingState::TransitionResult::AmbiguityEnd: + break; + case ParsingState::TransitionResult::ExecuteInstructions: { - auto background = MenuGetGroupItemBackground(i, j); - background->GetBoundsComposition()->SetPreferredMinSize(Size(0, bounds.Height())); - } - } - } - } - - void GuiBindableRibbonGalleryList::OnRequestedDropdown(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - subMenu->ShowPopup(this, Point(0, 0)); - } - - void GuiBindableRibbonGalleryList::OnRequestedScrollUp(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - itemListArranger->ScrollUp(); - } - - void GuiBindableRibbonGalleryList::OnRequestedScrollDown(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - itemListArranger->ScrollDown(); - } + // test does the token reach the stop position + if (transition.token) + { + // we treat "A|B" as editing A if token A is endless, otherwise treated as editing B + TextPos tokenEnd(transition.token->rowEnd, transition.token->columnEnd + 1); - void GuiBindableRibbonGalleryList::MenuResetGroupTemplate() - { - groupStack->SetItemTemplate([this](const Value& groupValue)->GuiTemplate* - { - auto group = UnboxValue>(groupValue); + // if the caret is not at the end of the token + if (tokenEnd > stopPosition) + { + // stop the traversing and return the editing token + return transition.token; + } + else if (tokenEnd == stopPosition) + { + // if the caret is at the end of the token, and it is a closed token + // e.g. identifier is not a closed token, string is a closed token + if (!grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(transition.token->reading, transition.token->length)) + { + // stop the traversing and return the editing token + return transition.token; + } + } + } - auto groupTemplate = new GuiTemplate; - groupTemplate->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + // traverse the PDA using the token specified in the current transition + vint tableTokenIndex = transition.tableTokenIndex; + List possibilities; + if (recoveryFutures.Count() > 0) + { + for (auto future : recoveryFutures) + { + state.Explore(tableTokenIndex, future, possibilities); + } + } + else + { + for (auto future : nonRecoveryFutures) + { + state.Explore(tableTokenIndex, future, possibilities); + } + } - auto groupContentStack = new GuiStackComposition; - groupContentStack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - groupContentStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - groupContentStack->SetDirection(GuiStackComposition::Vertical); - { - auto item = new GuiStackItemComposition; - groupContentStack->AddChild(item); + // delete duplicated futures + List selectedPossibilities; + for (vint i = 0; i < possibilities.Count(); i++) + { + ParsingState::Future* candidateFuture = possibilities[i]; + bool duplicated = false; + for (auto future : selectedPossibilities) + { + if ( + candidateFuture->currentState == future->currentState && + candidateFuture->reduceStateCount == future->reduceStateCount && + candidateFuture->shiftStates.Count() == future->shiftStates.Count() + ) + { + bool same = true; + for (vint j = 0; j < future->shiftStates.Count(); j++) + { + if (candidateFuture->shiftStates[i] != future->shiftStates[i]) + { + same = false; + break; + } + } - auto header = new GuiControl(theme::ThemeName::RibbonToolstripHeader); - header->SetControlTemplate(TypedControlTemplateObject(true)->GetHeaderTemplate()); - header->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - header->SetText(group->GetName()); - item->AddChild(header->GetBoundsComposition()); - } - if (itemStyle) - { - auto item = new GuiStackItemComposition; - item->SetPreferredMinSize(Size(1, 1)); - groupContentStack->AddChild(item); + if ((duplicated = same)) + { + break; + } + } + } - auto groupItemFlow = new GuiRepeatFlowComposition(); - groupItemFlow->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - groupItemFlow->SetAlignmentToParent(Margin(0, 0, 0, 0)); - groupItemFlow->SetItemSource(group->GetItemValues()); - groupItemFlow->SetItemTemplate([=](const Value& groupItemValue)->GuiTemplate* - { - auto groupItemTemplate = new GuiTemplate; - groupItemTemplate->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + if (duplicated) + { + delete candidateFuture; + } + else + { + selectedPossibilities.Add(candidateFuture); + } + } - auto backgroundButton = new GuiSelectableButton(theme::ThemeName::ListItemBackground); - if (auto style = TypedControlTemplateObject(true)->GetBackgroundTemplate()) + // step forward + if (transition.token || transition.tableTokenIndex == ParsingTable::TokenBegin) { - backgroundButton->SetControlTemplate(style); + DeleteFutures(nonRecoveryFutures); + DeleteFutures(recoveryFutures); + CopyFrom(nonRecoveryFutures, selectedPossibilities); } - backgroundButton->SetAutoFocus(false); - backgroundButton->SetAutoSelection(false); - backgroundButton->Clicked.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) - { - auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); - auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); - auto index = GalleryPosToIndex({ groupIndex,itemIndex }); - itemList->SetSelected(index, true); - itemList->EnsureItemVisible(index); - subMenu->Close(); - }); - backgroundButton->GetBoundsComposition()->GetEventReceiver()->mouseEnter.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) - { - auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); - auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); - auto index = GalleryPosToIndex({ groupIndex,itemIndex }); - StartPreview(index); - }); - backgroundButton->GetBoundsComposition()->GetEventReceiver()->mouseLeave.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + else { - auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); - auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); - auto index = GalleryPosToIndex({ groupIndex,itemIndex }); - StopPreview(index); - }); - groupItemTemplate->AddChild(backgroundButton->GetBoundsComposition()); - - auto itemTemplate = itemStyle(groupItemValue); - itemTemplate->SetAlignmentToParent(Margin(0, 0, 0, 0)); - backgroundButton->GetContainerComposition()->AddChild(itemTemplate); - - return groupItemTemplate; - }); - item->AddChild(groupItemFlow); + DeleteFutures(recoveryFutures); + CopyFrom(recoveryFutures, selectedPossibilities); + } + } + break; + default:; } - groupTemplate->AddChild(groupContentStack); - - return groupTemplate; - }); - } - - GuiControl* GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint groupIndex) - { - CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Group index out of range"); - auto stackItem = groupStack->GetStackItems()[groupIndex]; - auto groupTemplate = stackItem->Children()[0]; - auto groupContentStack = dynamic_cast(groupTemplate->Children()[0]); - auto groupHeaderItem = groupContentStack->GetStackItems()[0]; - auto groupHeader = groupHeaderItem->Children()[0]->GetAssociatedControl(); - CHECK_ERROR(groupHeader, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Internal error."); - return groupHeader; - } - - compositions::GuiRepeatFlowComposition* GuiBindableRibbonGalleryList::MenuGetGroupFlow(vint groupIndex) - { - CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupFlow(vint)#Group index out of range"); - if (!itemStyle) return nullptr; - auto stackItem = groupStack->GetStackItems()[groupIndex]; - auto groupTemplate = stackItem->Children()[0]; - auto groupContentStack = dynamic_cast(groupTemplate->Children()[0]); - auto groupContentItem = groupContentStack->GetStackItems()[1]; - auto groupFlow = dynamic_cast(groupContentItem->Children()[0]); - CHECK_ERROR(groupFlow, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Internal error."); - return groupFlow; + } + return 0; } - GuiSelectableButton* GuiBindableRibbonGalleryList::MenuGetGroupItemBackground(vint groupIndex, vint itemIndex) + regex::RegexToken* GuiGrammarAutoComplete::SearchValidInputToken( + parsing::tabling::ParsingState& state, + parsing::tabling::ParsingTransitionCollector& transitionCollector, + TextPos stopPosition, + AutoCompleteContext& newContext, + collections::SortedList& tableTokenIndices + ) { - CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupItemBackground(vint, vint)#Group index out of range"); - auto group = groupedItemSource[groupIndex]; - CHECK_ERROR(group->GetItemValues() && 0 <= itemIndex && itemIndex < group->GetItemValues()->GetCount(), L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint, vint)#Item index out of range"); + // initialize the PDA state + state.Reset(newContext.rule); + List nonRecoveryFutures, recoveryFutures; + nonRecoveryFutures.Add(state.ExploreCreateRootFuture()); - auto groupFlow = MenuGetGroupFlow(groupIndex); - auto groupFlowItem = groupFlow->GetFlowItems()[itemIndex]; - auto groupItemTemplate = groupFlowItem->Children()[0]; - auto groupItemBackground = dynamic_cast(groupItemTemplate->Children()[0]->GetAssociatedControl()); - CHECK_ERROR(groupItemBackground, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint, vint)#Internal error."); - return groupItemBackground; - } + // traverse the PDA until it reach the stop position + // nonRecoveryFutures store the state when the last token (existing) is reached + // recoveryFutures store the state when the last token (inserted by error recovery) is reached + RegexToken* token = TraverseTransitions(state, transitionCollector, stopPosition, nonRecoveryFutures, recoveryFutures); - void GuiBindableRibbonGalleryList::StartPreview(vint index) - { - if (index != itemList->GetSelectedItemIndex()) + // explore all possibilities from the last token before the stop position + List possibilities; + for (vint i = 0; i < nonRecoveryFutures.Count(); i++) { - GuiItemEventArgs previewArgs(boundsComposition); - previewArgs.itemIndex = index; - PreviewStarted.Execute(previewArgs); + state.Explore(ParsingTable::NormalReduce, nonRecoveryFutures[i], nonRecoveryFutures); + state.Explore(ParsingTable::LeftRecursiveReduce, nonRecoveryFutures[i], nonRecoveryFutures); } - } - - void GuiBindableRibbonGalleryList::StopPreview(vint index) - { - if (index != itemList->GetSelectedItemIndex()) + for (auto future : nonRecoveryFutures) { - GuiItemEventArgs previewArgs(boundsComposition); - previewArgs.itemIndex = index; - PreviewStopped.Execute(previewArgs); + vint count = state.GetTable()->GetTokenCount(); + for (vint i = ParsingTable::UserTokenStart; i < count; i++) + { + state.Explore(i, future, possibilities); + } } - } - - GuiMenu* GuiBindableRibbonGalleryList::ProvideDropdownMenu() - { - return GetSubMenu(); - } - - GuiBindableRibbonGalleryList::GuiBindableRibbonGalleryList(theme::ThemeName themeName) - :GuiRibbonGallery(themeName) - , GroupedDataSource(boundsComposition) - { - ItemTemplateChanged.SetAssociatedComposition(boundsComposition); - SelectionChanged.SetAssociatedComposition(boundsComposition); - PreviewStarted.SetAssociatedComposition(boundsComposition); - PreviewStopped.SetAssociatedComposition(boundsComposition); - ItemApplied.SetAssociatedComposition(boundsComposition); - subMenu = new GuiRibbonToolstripMenu(theme::ThemeName::RibbonToolstripMenu, this); - - { - layout = new ribbon_impl::GalleryResponsiveLayout; - layout->SetAlignmentToParent(Margin(0, 0, 0, 0)); - containerComposition->AddChild(layout); - itemListArranger = new ribbon_impl::GalleryItemArranger(this); - itemList = new GuiBindableTextList(theme::ThemeName::RibbonGalleryItemList); - itemList->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - itemList->SetArranger(itemListArranger); - itemList->SetItemSource(UnboxValue>(BoxParameter(joinedItemSource))); - itemList->SelectionChanged.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListSelectionChanged); - itemList->ItemMouseEnter.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseEnter); - itemList->ItemMouseLeave.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseLeave); - layout->AddChild(itemList->GetBoundsComposition()); - } + // get all possible tokens that marked using @AutoCompleteCandidate + for (auto future : possibilities) { - groupContainer = new GuiScrollContainer(theme::ThemeName::ScrollView); - groupContainer->SetHorizontalAlwaysVisible(false); - groupContainer->SetVerticalAlwaysVisible(false); - groupContainer->SetExtendToFullWidth(true); - groupContainer->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - subMenu->GetContentComposition()->AddChild(groupContainer->GetBoundsComposition()); - - groupStack = new GuiRepeatStackComposition(); - groupStack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - groupStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); - groupStack->SetDirection(GuiStackComposition::Vertical); - groupStack->SetItemSource(UnboxValue>(BoxParameter(groupedItemSource))); - groupContainer->GetContainerComposition()->AddChild(groupStack); - MenuResetGroupTemplate(); + if (!tableTokenIndices.Contains(future->selectedToken)) + { + tableTokenIndices.Add(future->selectedToken); + } } - RequestedScrollUp.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedScrollUp); - RequestedScrollDown.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedScrollDown); - RequestedDropdown.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedDropdown); - boundsComposition->BoundsChanged.AttachMethod(this, &GuiBindableRibbonGalleryList::OnBoundsChanged); - itemListArranger->UnblockScrollUpdate(); - } + // release all data + DeleteFutures(possibilities); + DeleteFutures(nonRecoveryFutures); + DeleteFutures(recoveryFutures); - GuiBindableRibbonGalleryList::~GuiBindableRibbonGalleryList() - { - delete subMenu; + // return the editing token + return token; } - GuiBindableRibbonGalleryList::ItemStyleProperty GuiBindableRibbonGalleryList::GetItemTemplate() + TextPos GuiGrammarAutoComplete::GlobalTextPosToModifiedTextPos(AutoCompleteContext& newContext, TextPos pos) { - return itemStyle; + pos.row-=newContext.originalRange.start.row; + if(pos.row==0) + { + pos.column-=newContext.originalRange.start.column; + } + return pos; } - void GuiBindableRibbonGalleryList::SetItemTemplate(ItemStyleProperty value) + TextPos GuiGrammarAutoComplete::ModifiedTextPosToGlobalTextPos(AutoCompleteContext& newContext, TextPos pos) { - if (itemStyle != value) + if(pos.row==0) { - itemStyle = value; - itemList->SetItemTemplate(value); - ItemTemplateChanged.Execute(GetNotifyEventArguments()); + pos.column+=newContext.originalRange.start.column; } + pos.row+=newContext.originalRange.start.row; + return pos; } - GalleryPos GuiBindableRibbonGalleryList::IndexToGalleryPos(vint index) + void GuiGrammarAutoComplete::ExecuteCalculateList(AutoCompleteContext& newContext) { - if (0 <= index && index < joinedItemSource.Count()) + // calcuate the content of the auto complete list + // it is sad that, because the parser's algorithm is too complex + // we need to reparse and track the internal state of the PDA(push-down automaton) here. + // initialize the PDA + ParsingState state(newContext.modifiedCode, grammarParser->GetTable()); + state.Reset(newContext.rule); + + // prepare to get all transitions + ParsingTransitionCollector collector; + List> errors; + + // reparse and get all transitions during parsing + if (grammarParser->Parse(state, collector, errors)) { - for (auto [group, groupIndex] : indexed(groupedItemSource)) + // if modifiedNode is not prepared (the task is submitted because of text editing) + // use the transition to build the syntax tree + if (!newContext.modifiedNode) { - auto itemValues = group->GetItemValues(); - vint itemCount = itemValues ? itemValues->GetCount() : 0; - if (index >= itemCount) + ParsingTreeBuilder builder; + builder.Reset(); + bool succeeded = true; + for (auto transition : collector.GetTransitions()) { - index -= itemCount; + if (!(succeeded = builder.Run(transition))) + { + break; + } } - else + + if (succeeded) { - return GalleryPos(groupIndex, index); + Ptr parsedNode = builder.GetNode(); + newContext.modifiedNode = parsedNode.Cast(); + newContext.modifiedNode->InitializeQueryCache(); } } - } - return {}; - } - vint GuiBindableRibbonGalleryList::GalleryPosToIndex(GalleryPos pos) - { - if (0 <= pos.group && pos.group < groupedItemSource.Count()) - { - auto countBeforeGroup = GetCountBeforeGroup(pos.group); - auto itemValues = groupedItemSource[pos.group]->GetItemValues(); - vint itemCount = itemValues ? itemValues->GetCount() : 0; - if (0 <= pos.item && pos.item < itemCount) + if (newContext.modifiedNode) { - return countBeforeGroup + pos.item; - } - } - return -1; - } + // get the latest text editing trace + TextEditNotifyStruct trace; + SPIN_LOCK(editTraceLock) + { + vint index = UnsafeGetEditTraceIndex(newContext.modifiedEditVersion); + if (index == -1) + { + return; + } + else + { + trace = editTrace[index]; + } + } - vint GuiBindableRibbonGalleryList::GetMinCount() - { - return layout->GetMinCount(); - } + // calculate the stop position for PDA traversing + TextPos stopPosition = GlobalTextPosToModifiedTextPos(newContext, trace.inputStart); - void GuiBindableRibbonGalleryList::SetMinCount(vint value) - { - layout->SetMinCount(value); - } + // find all possible token before the current caret using the PDA + auto autoComplete = Ptr(new AutoCompleteData); + SortedList tableTokenIndices; + RegexToken* editingToken = SearchValidInputToken(state, collector, stopPosition, newContext, tableTokenIndices); - vint GuiBindableRibbonGalleryList::GetMaxCount() - { - return layout->GetMaxCount(); - } + // collect all auto complete types + { + // collect all keywords that can be put into the auto complete list + for (auto token : tableTokenIndices) + { + vint regexToken = token - ParsingTable::UserTokenStart; + if (regexToken >= 0) + { + autoComplete->candidates.Add(regexToken); + if (parsingExecutor->GetTokenMetaData(regexToken).isCandidate) + { + autoComplete->shownCandidates.Add(regexToken); + } + } + } - void GuiBindableRibbonGalleryList::SetMaxCount(vint value) - { - layout->SetMaxCount(value); - } + // calculate the arranged stopPosition + if (editingToken) + { + TextPos tokenPos(editingToken->rowStart, editingToken->columnStart); + if (tokenPos < stopPosition) + { + stopPosition = tokenPos; + } + } - vint GuiBindableRibbonGalleryList::GetSelectedIndex() - { - return itemList->GetSelectedItemIndex(); + // calculate the start/end position for PDA traversing + TextPos startPos, endPos; + { + startPos = ModifiedTextPosToGlobalTextPos(newContext, stopPosition); + autoComplete->startPosition = startPos; + endPos = trace.inputEnd; + if (newContext.modifiedNode != newContext.originalNode) + { + startPos = GlobalTextPosToModifiedTextPos(newContext, startPos); + endPos = GlobalTextPosToModifiedTextPos(newContext, endPos); + } + if (startPos0) + { + endPos.column--; + } + } + + // calculate the auto complete type + if (editingToken && parsingExecutor->GetTokenMetaData(editingToken->token).hasAutoComplete) + { + ParsingTextRange range(ParsingTextPos(startPos.row, startPos.column), ParsingTextPos(endPos.row, endPos.column)); + AutoCompleteData::RetriveContext(*autoComplete.Obj(), range, newContext.modifiedNode.Obj(), parsingExecutor.Obj()); + } + } + newContext.autoComplete = autoComplete; + } + } } - description::Value GuiBindableRibbonGalleryList::GetSelectedItem() + void GuiGrammarAutoComplete::Execute(const RepeatingParsingOutput& input) { - vint index = itemList->GetSelectedItemIndex(); - if (index == -1) return Value(); - - auto pos = IndexToGalleryPos(index); - return groupedItemSource[pos.group]->GetItemValues()->Get(pos.item); - } - - void GuiBindableRibbonGalleryList::ApplyItem(vint index) - { - if (index == -1) - { - itemList->ClearSelection(); - } - else - { - itemList->SetSelected(index, true); - itemList->EnsureItemVisible(index); - } - } - - void GuiBindableRibbonGalleryList::SelectItem(vint index) - { - skipItemAppliedEvent = true; - ApplyItem(index); - skipItemAppliedEvent = false; - } - - vint GuiBindableRibbonGalleryList::GetVisibleItemCount() - { - return visibleItemCount; - } - - void GuiBindableRibbonGalleryList::SetVisibleItemCount(vint value) - { - if (visibleItemCount != value) - { - visibleItemCount = value; - UpdateLayoutSizeOffset(); - } - } - - GuiToolstripMenu* GuiBindableRibbonGalleryList::GetSubMenu() - { - return subMenu; - } - - IDescriptable* GuiBindableRibbonGalleryList::QueryService(const WString& identifier) - { - if (identifier == IGuiMenuDropdownProvider::Identifier) - { - return (IGuiMenuDropdownProvider*)this; - } - else - { - return GuiRibbonGallery::QueryService(identifier); - } - } - } - } -} - -/*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONIMPL.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace controls - { - using namespace compositions; - -/*********************************************************************** -GalleryItemArranger -***********************************************************************/ - - namespace ribbon_impl - { - void GalleryItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) - { - if (forMoving) - { - pim_itemWidth = itemWidth; - newStartIndex = firstIndex; - } - } - - void GalleryItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) + SPIN_LOCK(contextLock) { - alignmentToParent = Margin(-1, 0, -1, 0); - bounds = Rect(Point((index - firstIndex) * itemWidth, 0), Size(itemWidth, 0)); - - if (forMoving) + if(input.editVersionGetStylePreferredSize(GetStyleBounds(style)).x; - if (pim_itemWidth < styleWidth) - { - pim_itemWidth = styleWidth; - } + return; } } + AutoCompleteContext newContext; + bool byGlobalCorrection=false; - bool GalleryItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) + if(input.node) { - return bounds.Right() + pim_itemWidth > viewBounds.Right(); + newContext.input=input; + ExecuteRefresh(newContext); + byGlobalCorrection=true; } - - bool GalleryItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) + else { - bool result = false; - if (forMoving) + SPIN_LOCK(contextLock) { - if (pim_itemWidth != itemWidth) - { - itemWidth = pim_itemWidth; - result = true; - } + newContext=context; + newContext.modifiedNode=0; + newContext.autoComplete=0; } - - if (!blockScrollUpdate) + if(newContext.originalNode) { - UnblockScrollUpdate(); + ExecuteEdit(newContext); } - - return result; } - void GalleryItemArranger::InvalidateItemSizeCache() + if(newContext.originalNode) { - itemWidth = 1; + ExecuteCalculateList(newContext); } - Size GalleryItemArranger::OnCalculateTotalSize() + SPIN_LOCK(contextLock) { - return Size(1, 1); + context=newContext; } - - GalleryItemArranger::GalleryItemArranger(GuiBindableRibbonGalleryList* _owner) - :owner(_owner) + if(newContext.modifiedNode) { + OnContextFinishedAsync(context); + GetApplication()->InvokeInMainThread(ownerComposition->GetRelatedControlHost(), [=]() + { + PostList(newContext, byGlobalCorrection); + }); } + } - GalleryItemArranger::~GalleryItemArranger() + void GuiGrammarAutoComplete::PostList(const AutoCompleteContext& newContext, bool byGlobalCorrection) + { + bool openList = true; // true: make the list visible + bool keepListState = false; // true: don't change the list visibility + Ptr autoComplete = newContext.autoComplete; + + // if failed to get the auto complete list, close + if (!autoComplete) { + openList = false; } - - vint GalleryItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) + if (openList) { - vint count = itemProvider->Count(); - vint groupCount = viewBounds.Width() / itemWidth; - - switch (key) + if (autoComplete->shownCandidates.Count() + autoComplete->candidateItems.Count() == 0) { - case KeyDirection::Left: - itemIndex--; - break; - case KeyDirection::Right: - itemIndex++; - break; - case KeyDirection::Home: - itemIndex = 0; - break; - case KeyDirection::End: - itemIndex = count; - break; - case KeyDirection::PageUp: - itemIndex -= groupCount; - break; - case KeyDirection::PageDown: - itemIndex += groupCount; - break; - default: - return -1; + openList = false; } - - if (itemIndex < 0) return 0; - else if (itemIndex >= count) return count - 1; - else return itemIndex; } - GuiListControl::EnsureItemVisibleResult GalleryItemArranger::EnsureItemVisible(vint itemIndex) + TextPos startPosition, endPosition; + WString editingText; + if (openList) { - if (callback) + SPIN_LOCK(editTraceLock) { - if (0 <= itemIndex && itemIndex < itemProvider->Count()) + // if the edit version is invalid, cancel + vint traceIndex = UnsafeGetEditTraceIndex(newContext.modifiedEditVersion); + if (traceIndex == -1) { - vint groupCount = viewBounds.Width() / itemWidth; - if (itemIndex < firstIndex) + return; + } + // an edit version has two trace at most, for text change and caret change, here we peak the text change + if (traceIndex > 0 && editTrace[traceIndex - 1].editVersion == context.modifiedEditVersion) + { + traceIndex--; + } + // if the edit version is not created by keyboard input, close + if (traceIndex >= 0) + { + TextEditNotifyStruct& trace = editTrace[traceIndex]; + if (!trace.keyInput) { - firstIndex = itemIndex; - callback->OnTotalSizeChanged(); + openList = false; } - else if (itemIndex >= firstIndex + groupCount) + } + + // scan all traces from the calculation's edit version until now + if (openList) + { + keepListState = true; + startPosition = autoComplete->startPosition; + endPosition = editTrace[editTrace.Count() - 1].inputEnd; + for (vint i = traceIndex; i < editTrace.Count(); i++) { - firstIndex = itemIndex - groupCount + 1; - callback->OnTotalSizeChanged(); + TextEditNotifyStruct& trace = editTrace[i]; + // if there are no text change trace until now, don't change the list + if (trace.originalText != L"" || trace.inputText != L"") + { + keepListState = false; + } + // if the edit position goes before the start position of the auto complete, refresh + if (trace.inputEnd <= startPosition) + { + openList = false; + break; + } } - return GuiListControl::EnsureItemVisibleResult::NotMoved; } - else + + if (traceIndex > 0) { - return GuiListControl::EnsureItemVisibleResult::ItemNotExists; + editTrace.RemoveRange(0, traceIndex); } } - return GuiListControl::EnsureItemVisibleResult::NotMoved; } - Size GalleryItemArranger::GetAdoptedSize(Size expectedSize) + // if there is a global correction send to the UI thread but the list is not opening, cancel + if (byGlobalCorrection && !IsListOpening()) { - return Size(1, 1); + return; } - void GalleryItemArranger::ScrollUp() + // if the input text from the start position to the current position crosses a token, close + if (openList && element) { - vint count = itemProvider->Count(); - vint groupCount = viewBounds.Width() / itemWidth; - if (count > groupCount) + editingText = element->GetLines().GetText(startPosition, endPosition); + if (grammarParser->GetTable()->GetLexer().Walk().IsClosedToken(editingText)) { - firstIndex -= groupCount; - if (firstIndex < 0) - { - firstIndex = 0; - } - - if (callback) - { - callback->OnTotalSizeChanged(); - } + openList = false; } } - void GalleryItemArranger::ScrollDown() + // calculate the content of the list + if (autoComplete && ((!keepListState && openList) || IsListOpening())) { - vint count = itemProvider->Count(); - vint groupCount = viewBounds.Width() / itemWidth; - if (count > groupCount) + SortedList itemKeys; + List itemValues; + + // copy all candidate keywords + for (auto token : autoComplete->shownCandidates) { - firstIndex += groupCount; - if (firstIndex > count - groupCount) + WString literal = parsingExecutor->GetTokenMetaData(token).unescapedRegexText; + if (literal != L"" && !itemKeys.Contains(literal)) { - firstIndex = count - groupCount; + ParsingCandidateItem item; + item.name = literal; + item.semanticId = -1; + itemValues.Insert(itemKeys.Add(literal), item); } + } - if (callback) + // copy all candidate symbols + if (autoComplete->acceptableSemanticIds) + { + for (auto item : autoComplete->candidateItems) { - callback->OnTotalSizeChanged(); + if (autoComplete->acceptableSemanticIds->Contains(item.semanticId)) + { + // add all acceptable display of a symbol + // because a symbol can has multiple representation in different places + if (item.name != L"" && !itemKeys.Contains(item.name)) + { + itemValues.Insert(itemKeys.Add(item.name), item); + } + } } } - } - - void GalleryItemArranger::UnblockScrollUpdate() - { - blockScrollUpdate = false; - vint count = itemProvider->Count(); - vint groupCount = viewBounds.Width() / pim_itemWidth; - owner->SetScrollUpEnabled(firstIndex > 0); - owner->SetScrollDownEnabled(firstIndex + groupCount < count); - if (owner->layout->GetItemWidth() != pim_itemWidth) + // fill the list + List candidateItems; + for (vint i = 0; i < itemValues.Count(); i++) { - owner->layout->SetItemWidth(pim_itemWidth); - owner->UpdateLayoutSizeOffset(); - } - } - -/*********************************************************************** -GalleryResponsiveLayout -***********************************************************************/ - - void GalleryResponsiveLayout::UpdateMinSize() - { - SetPreferredMinSize(Size(itemCount * itemWidth + sizeOffset.x, sizeOffset.y)); - } - - GalleryResponsiveLayout::GalleryResponsiveLayout() - { - SetDirection(ResponsiveDirection::Horizontal); - } - - GalleryResponsiveLayout::~GalleryResponsiveLayout() - { - } - - vint GalleryResponsiveLayout::GetMinCount() - { - return minCount; - } - - vint GalleryResponsiveLayout::GetMaxCount() - { - return maxCount; - } - - vint GalleryResponsiveLayout::GetItemWidth() - { - return itemWidth; - } - - Size GalleryResponsiveLayout::GetSizeOffset() - { - return sizeOffset; - } + auto& item = itemValues[i]; + if (item.tag.IsNull()) + { + if (auto analyzer = parsingExecutor->GetAnalyzer()) + { + item.tag = analyzer->CreateTagForCandidateItem(item); + } + } - vint GalleryResponsiveLayout::GetVisibleItemCount() - { - return itemCount; + GuiTextBoxAutoCompleteBase::AutoCompleteItem candidateItem; + candidateItem.text = item.name; + candidateItem.tag = item.tag; + candidateItems.Add(candidateItem); + } + SetListContent(candidateItems); } - void GalleryResponsiveLayout::SetMinCount(vint value) + // set the list state + if (!keepListState) { - vint oldCount = GetLevelCount(); - vint oldLevel = GetCurrentLevel(); - - if (minCount != value) + if (openList) { - if (value < 0) value = 0; - minCount = value; - if (maxCount < minCount) maxCount = minCount; - if (itemCount < minCount) itemCount = minCount; - UpdateMinSize(); + OpenList(startPosition); } - - bool countChanged = oldCount != GetLevelCount(); - bool levelChanged = oldLevel != GetCurrentLevel(); - if (countChanged) LevelCountChanged.Execute(GuiEventArgs(this)); - if (levelChanged) CurrentLevelChanged.Execute(GuiEventArgs(this)); - if (countChanged || levelChanged) OnResponsiveChildLevelUpdated(); - } - - void GalleryResponsiveLayout::SetMaxCount(vint value) - { - vint oldCount = GetLevelCount(); - vint oldLevel = GetCurrentLevel(); - - if (maxCount != value) + else { - if (value < 0) value = 0; - maxCount = value; - if (minCount > maxCount) minCount = maxCount; - if (itemCount > maxCount) itemCount = maxCount; - UpdateMinSize(); + CloseList(); } - - if (oldCount != GetLevelCount()) LevelCountChanged.Execute(GuiEventArgs(this)); - if (oldLevel != GetCurrentLevel()) CurrentLevelChanged.Execute(GuiEventArgs(this)); } - void GalleryResponsiveLayout::SetItemWidth(vint value) + if (IsListOpening()) { - if (itemWidth != value) - { - itemWidth = value; - UpdateMinSize(); - } + HighlightList(editingText); } + } - void GalleryResponsiveLayout::SetSizeOffset(Size value) + void GuiGrammarAutoComplete::Initialize() + { + grammarParser=CreateAutoRecoverParser(parsingExecutor->GetParser()->GetTable()); + CollectLeftRecursiveRules(); + parsingExecutor->AttachCallback(this); + } + + void GuiGrammarAutoComplete::OnContextFinishedAsync(AutoCompleteContext& context) + { + if (auto analyzer = parsingExecutor->GetAnalyzer()) { - if (sizeOffset != value) + if (context.autoComplete && context.autoComplete->acceptableSemanticIds) { - sizeOffset = value; - UpdateMinSize(); + analyzer->GetCandidateItemsAsync(*context.autoComplete.Obj(), context, context.autoComplete->candidateItems); } } + } - vint GalleryResponsiveLayout::GetLevelCount() + void GuiGrammarAutoComplete::EnsureAutoCompleteFinished() + { + parsingExecutor->EnsureTaskFinished(); + SPIN_LOCK(contextLock) { - return maxCount - minCount + 1; + context = AutoCompleteContext(); } + } - vint GalleryResponsiveLayout::GetCurrentLevel() - { - return itemCount - minCount; - } + GuiGrammarAutoComplete::GuiGrammarAutoComplete(Ptr _parsingExecutor) + :RepeatingParsingExecutor::CallbackBase(_parsingExecutor) + ,editing(false) + { + Initialize(); + } - bool GalleryResponsiveLayout::LevelDown() - { - if (itemCount > minCount) - { - itemCount--; - UpdateMinSize(); - CurrentLevelChanged.Execute(GuiEventArgs(this)); - return true; - } - return false; - } + GuiGrammarAutoComplete::GuiGrammarAutoComplete(Ptr _grammarParser, const WString& _grammarRule) + :RepeatingParsingExecutor::CallbackBase(Ptr(new RepeatingParsingExecutor(_grammarParser, _grammarRule))) + ,editing(false) + { + Initialize(); + } - bool GalleryResponsiveLayout::LevelUp() - { - if (itemCount < maxCount) - { - itemCount++; - UpdateMinSize(); - CurrentLevelChanged.Execute(GuiEventArgs(this)); - return true; - } - return false; - } + GuiGrammarAutoComplete::~GuiGrammarAutoComplete() + { + EnsureAutoCompleteFinished(); + parsingExecutor->DetachCallback(this); + } + + Ptr GuiGrammarAutoComplete::GetParsingExecutor() + { + return parsingExecutor; } } } } /*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUITOOLSTRIPCOMMAND.CPP +.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGECOLORIZER.CPP ***********************************************************************/ namespace vl @@ -23326,338 +22641,242 @@ namespace vl { namespace controls { + using namespace elements; + using namespace parsing; + using namespace parsing::tabling; using namespace collections; - using namespace compositions; - using namespace regex; + using namespace theme; /*********************************************************************** -GuiToolstripCommand +GuiGrammarColorizer ***********************************************************************/ - void GuiToolstripCommand::OnShortcutKeyItemExecuted(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiGrammarColorizer::OnParsingFinishedAsync(const RepeatingParsingOutput& output) { - Executed.ExecuteWithNewSender(arguments, sender); + SPIN_LOCK(contextLock) + { + context=output; + OnContextFinishedAsync(context); + } + RestartColorizer(); } - void GuiToolstripCommand::OnRenderTargetChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void GuiGrammarColorizer::OnContextFinishedAsync(const RepeatingParsingOutput& context) { - UpdateShortcutOwner(); } - void GuiToolstripCommand::InvokeDescriptionChanged() + void GuiGrammarColorizer::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) { - GuiEventArgs arguments; - DescriptionChanged.Execute(arguments); + GuiTextBoxRegexColorizer::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); + RepeatingParsingExecutor::CallbackBase::Attach(_element, _elementModifyLock, _ownerComposition, editVersion); } - void GuiToolstripCommand::ReplaceShortcut(compositions::IGuiShortcutKeyItem* value, Ptr builder) + void GuiGrammarColorizer::Detach() { - if (shortcutKeyItem != value) + GuiTextBoxRegexColorizer::Detach(); + RepeatingParsingExecutor::CallbackBase::Detach(); + if(element && elementModifyLock) { - if (shortcutKeyItem) - { - shortcutKeyItem->Executed.Detach(shortcutKeyItemExecutedHandler); - if (shortcutBuilder) - { - auto manager = dynamic_cast(shortcutOwner->GetShortcutKeyManager()); - if (manager) - { - manager->DestroyShortcut(shortcutBuilder->ctrl, shortcutBuilder->shift, shortcutBuilder->alt, shortcutBuilder->key); - } - } - } - shortcutKeyItem = nullptr; - shortcutKeyItemExecutedHandler = nullptr; - shortcutBuilder = value ? builder : nullptr; - if (value) - { - shortcutKeyItem = value; - shortcutKeyItemExecutedHandler = shortcutKeyItem->Executed.AttachMethod(this, &GuiToolstripCommand::OnShortcutKeyItemExecuted); - } - InvokeDescriptionChanged(); + parsingExecutor->EnsureTaskFinished(); + StopColorizer(false); } } - void GuiToolstripCommand::BuildShortcut(const WString& builderText) + void GuiGrammarColorizer::TextEditPreview(TextEditPreviewStruct& arguments) { - List errors; - if (auto parser = GetParserManager()->GetParser(L"SHORTCUT")) - { - if (Ptr builder = parser->ParseInternal(builderText, errors)) - { - if (shortcutOwner) - { - if (!shortcutOwner->GetShortcutKeyManager()) - { - shortcutOwner->SetShortcutKeyManager(new GuiShortcutKeyManager); - } - if (auto manager = dynamic_cast(shortcutOwner->GetShortcutKeyManager())) - { - IGuiShortcutKeyItem* item = manager->TryGetShortcut(builder->ctrl, builder->shift, builder->alt, builder->key); - if (!item) - { - item = manager->CreateShortcut(builder->ctrl, builder->shift, builder->alt, builder->key); - if (item) - { - ReplaceShortcut(item, builder); - } - } - } - } - else - { - shortcutBuilder = builder; - } - } - } + GuiTextBoxRegexColorizer::TextEditPreview(arguments); + RepeatingParsingExecutor::CallbackBase::TextEditPreview(arguments); } - void GuiToolstripCommand::UpdateShortcutOwner() + void GuiGrammarColorizer::TextEditNotify(const TextEditNotifyStruct& arguments) { - GuiControlHost* host = nullptr; - if (auto control = dynamic_cast(attachedRootObject)) - { - host = control->GetRelatedControlHost(); - } - else if (auto composition = dynamic_cast(attachedRootObject)) - { - host = composition->GetRelatedControlHost(); - } - - if (shortcutOwner != host) - { - if (shortcutOwner) - { - ReplaceShortcut(nullptr, nullptr); - shortcutOwner = nullptr; - } - shortcutOwner = host; - if (shortcutBuilder && !shortcutKeyItem) - { - BuildShortcut(shortcutBuilder->text); - } - } + GuiTextBoxRegexColorizer::TextEditNotify(arguments); + RepeatingParsingExecutor::CallbackBase::TextEditNotify(arguments); } - GuiToolstripCommand::GuiToolstripCommand() + void GuiGrammarColorizer::TextCaretChanged(const TextCaretChangedStruct& arguments) { + GuiTextBoxRegexColorizer::TextCaretChanged(arguments); + RepeatingParsingExecutor::CallbackBase::TextCaretChanged(arguments); } - GuiToolstripCommand::~GuiToolstripCommand() + void GuiGrammarColorizer::TextEditFinished(vuint editVersion) { + GuiTextBoxRegexColorizer::TextEditFinished(editVersion); + RepeatingParsingExecutor::CallbackBase::TextEditFinished(editVersion); } - void GuiToolstripCommand::Attach(GuiInstanceRootObject* rootObject) + void GuiGrammarColorizer::OnSemanticColorize(SemanticColorizeContext& context, const RepeatingParsingOutput& input) { - GuiGraphicsComposition* rootComposition = nullptr; - - if (attachedRootObject != rootObject) + if (auto analyzer = parsingExecutor->GetAnalyzer()) { - if (attachedRootObject) - { - if (auto control = dynamic_cast(attachedRootObject)) - { - control->ControlSignalTrigerred.Detach(renderTargetChangedHandler); - } - else if (auto composition = dynamic_cast(attachedRootObject)) - { - composition->GetEventReceiver()->renderTargetChanged.Detach(renderTargetChangedHandler); - } - renderTargetChangedHandler = nullptr; - } - - attachedRootObject = rootObject; - if (attachedRootObject) + auto semanticId = analyzer->GetSemanticIdForTokenAsync(context, input); + if(semanticId!=-1) { - if (auto control = dynamic_cast(attachedRootObject)) - { - renderTargetChangedHandler = control->ControlSignalTrigerred.AttachLambda( - [=](GuiGraphicsComposition* sender, GuiControlSignalEventArgs& arguments) - { - OnRenderTargetChanged(sender, arguments); - }); - } - else if (auto composition = dynamic_cast(attachedRootObject)) - { - renderTargetChangedHandler = composition->GetEventReceiver()->renderTargetChanged.AttachMethod(this, &GuiToolstripCommand::OnRenderTargetChanged); - } + context.semanticId=semanticId; } - UpdateShortcutOwner(); } } - void GuiToolstripCommand::Detach(GuiInstanceRootObject* rootObject) - { - Attach(nullptr); - } - - Ptr GuiToolstripCommand::GetLargeImage() - { - return largeImage; - } - - void GuiToolstripCommand::SetLargeImage(Ptr value) + void GuiGrammarColorizer::EnsureColorizerFinished() { - if (largeImage != value) + parsingExecutor->EnsureTaskFinished(); + StopColorizerForever(); + SPIN_LOCK(contextLock) { - largeImage = value; - InvokeDescriptionChanged(); + context=RepeatingParsingOutput(); } } - Ptr GuiToolstripCommand::GetImage() + GuiGrammarColorizer::GuiGrammarColorizer(Ptr _parsingExecutor) + :RepeatingParsingExecutor::CallbackBase(_parsingExecutor) { - return image; + parsingExecutor->AttachCallback(this); + BeginSetColors(); } - void GuiToolstripCommand::SetImage(Ptr value) + GuiGrammarColorizer::GuiGrammarColorizer(Ptr _grammarParser, const WString& _grammarRule) + :RepeatingParsingExecutor::CallbackBase(Ptr(new RepeatingParsingExecutor(_grammarParser, _grammarRule))) { - if(image!=value) - { - image=value; - InvokeDescriptionChanged(); - } + parsingExecutor->AttachCallback(this); + BeginSetColors(); } - const WString& GuiToolstripCommand::GetText() + GuiGrammarColorizer::~GuiGrammarColorizer() { - return text; + EnsureColorizerFinished(); + parsingExecutor->DetachCallback(this); } - void GuiToolstripCommand::SetText(const WString& value) + void GuiGrammarColorizer::BeginSetColors() { - if(text!=value) + ClearTokens(); + colorSettings.Clear(); + + text::ColorEntry entry; { - text=value; - InvokeDescriptionChanged(); + entry.normal.text = Color(0, 0, 0); + entry.normal.background = Color(0, 0, 0, 0); + entry.selectedFocused.text = Color(255, 255, 255); + entry.selectedFocused.background = Color(51, 153, 255); + entry.selectedUnfocused.text = Color(255, 255, 255); + entry.selectedUnfocused.background = Color(51, 153, 255); } - } - compositions::IGuiShortcutKeyItem* GuiToolstripCommand::GetShortcut() - { - return shortcutKeyItem; + SetDefaultColor(entry); + colorSettings.Add(L"Default", entry); } - void GuiToolstripCommand::SetShortcut(compositions::IGuiShortcutKeyItem* value) + const collections::SortedList& GuiGrammarColorizer::GetColorNames() { - ReplaceShortcut(value, 0); + return colorSettings.Keys(); } - WString GuiToolstripCommand::GetShortcutBuilder() + GuiGrammarColorizer::ColorEntry GuiGrammarColorizer::GetColor(const WString& name) { - return shortcutBuilder ? shortcutBuilder->text : L""; + vint index=colorSettings.Keys().IndexOf(name); + return index==-1?GetDefaultColor():colorSettings.Values().Get(index); } - void GuiToolstripCommand::SetShortcutBuilder(const WString& value) + void GuiGrammarColorizer::SetColor(const WString& name, const ColorEntry& entry) { - BuildShortcut(value); + colorSettings.Set(name, entry); } - bool GuiToolstripCommand::GetEnabled() + void GuiGrammarColorizer::SetColor(const WString& name, const Color& color) { - return enabled; + text::ColorEntry entry=GetDefaultColor(); + entry.normal.text=color; + SetColor(name, entry); } - void GuiToolstripCommand::SetEnabled(bool value) + void GuiGrammarColorizer::EndSetColors() { - if(enabled!=value) + SortedList tokenColors; + Ptr table=parsingExecutor->GetParser()->GetTable(); + semanticColorMap.Clear(); + + vint tokenCount=table->GetTokenCount(); + for(vint token=ParsingTable::UserTokenStart;tokenGetTokenInfo(token); + const RepeatingParsingExecutor::TokenMetaData& md=parsingExecutor->GetTokenMetaData(token-ParsingTable::UserTokenStart); + if(md.defaultColorIndex==-1) + { + AddToken(tokenInfo.regex, GetDefaultColor()); + } + else + { + WString name=parsingExecutor->GetSemanticName(md.defaultColorIndex); + vint color=AddToken(tokenInfo.regex, GetColor(name)); + semanticColorMap.Set(md.defaultColorIndex, color); + tokenColors.Add(name); + } } - } - - bool GuiToolstripCommand::GetSelected() - { - return selected; - } - void GuiToolstripCommand::SetSelected(bool value) - { - if(selected!=value) + for (auto [color, index] : indexed(colorSettings.Keys())) { - selected=value; - InvokeDescriptionChanged(); + if(!tokenColors.Contains(color)) + { + vint semanticId=parsingExecutor->GetSemanticId(color); + if(semanticId!=-1) + { + vint tokenId=AddExtraToken(colorSettings.Values().Get(index)); + vint color=tokenId+tokenCount-ParsingTable::UserTokenStart; + semanticColorMap.Set(semanticId, color); + } + } } + Setup(); } -/*********************************************************************** -GuiToolstripCommand::ShortcutBuilder Parser -***********************************************************************/ - - class GuiToolstripCommandShortcutParser : public Object, public IGuiParser + void GuiGrammarColorizer::ColorizeTokenContextSensitive(vint lineIndex, const wchar_t* text, vint start, vint length, vint& token, vint& contextState) { - typedef GuiToolstripCommand::ShortcutBuilder ShortcutBuilder; - public: - Regex regexShortcut; - const vint _ctrl; - const vint _shift; - const vint _alt; - const vint _key; - - GuiToolstripCommandShortcutParser() - : regexShortcut(L"((Ctrl)/+|(Shift)/+|(Alt)/+)*(/.+)") - , _ctrl(regexShortcut.CaptureNames().IndexOf(L"ctrl")) - , _shift(regexShortcut.CaptureNames().IndexOf(L"shift")) - , _alt(regexShortcut.CaptureNames().IndexOf(L"alt")) - , _key(regexShortcut.CaptureNames().IndexOf(L"key")) - { - } - - Ptr ParseInternal(const WString& text, collections::List& errors)override + SPIN_LOCK(contextLock) { - Ptr match=regexShortcut.MatchHead(text); - if (match && match->Result().Length() != text.Length()) + ParsingTreeObject* node=context.node.Obj(); + if(node && token!=-1 && parsingExecutor->GetTokenMetaData(token).hasContextColor) { - glr::ParsingError error; - error.message = L"Failed to parse a shortcut \"" + text + L"\"."; - errors.Add(error); - return nullptr; - } - - Ptr builder = new ShortcutBuilder; - builder->text = text; - builder->ctrl = match->Groups().Contains(_ctrl); - builder->shift = match->Groups().Contains(_shift); - builder->alt = match->Groups().Contains(_alt); + ParsingTextPos pos(lineIndex, start); + SemanticColorizeContext scContext; + if(SemanticColorizeContext::RetriveContext(scContext, pos, node, parsingExecutor.Obj())) + { + const RepeatingParsingExecutor::FieldMetaData& md=parsingExecutor->GetFieldMetaData(scContext.type, scContext.field); + vint semantic=md.colorIndex; + scContext.semanticId=-1; - WString name = match->Groups()[_key][0].Value(); - builder->key = GetCurrentController()->InputService()->GetKey(name); + if(scContext.acceptableSemanticIds) + { + OnSemanticColorize(scContext, context); + if(md.semantics->Contains(scContext.semanticId)) + { + semantic=scContext.semanticId; + } + } - return builder->key == VKEY::KEY_UNKNOWN ? nullptr : builder; + if(semantic!=-1) + { + vint index=semanticColorMap.Keys().IndexOf(semantic); + if(index!=-1) + { + token=semanticColorMap.Values()[index]; + } + } + } + } } - }; - -/*********************************************************************** -GuiToolstripCommandPlugin -***********************************************************************/ + } - class GuiToolstripCommandPlugin : public Object, public IGuiPlugin + Ptr GuiGrammarColorizer::GetParsingExecutor() { - public: - - GUI_PLUGIN_NAME(GacUI_Compiler_ShortcutParser) - { - GUI_PLUGIN_DEPEND(GacUI_Parser); - } - - void Load()override - { - IGuiParserManager* manager=GetParserManager(); - manager->SetParser(L"SHORTCUT", new GuiToolstripCommandShortcutParser); - } - - void Unload()override - { - } - }; - GUI_REGISTER_PLUGIN(GuiToolstripCommandPlugin) + return parsingExecutor; + } } } } /*********************************************************************** -.\CONTROLS\TOOLSTRIPPACKAGE\GUITOOLSTRIPMENU.CPP +.\CONTROLS\TEXTEDITORPACKAGE\LANGUAGESERVICE\GUILANGUAGEOPERATIONS.CPP ***********************************************************************/ namespace vl @@ -23667,4291 +22886,4219 @@ namespace vl namespace controls { using namespace collections; - using namespace compositions; + using namespace parsing; + using namespace parsing::tabling; + using namespace regex_internal; /*********************************************************************** -GuiToolstripCollectionBase +ParsingContext ***********************************************************************/ - const wchar_t* const IToolstripUpdateLayoutInvoker::Identifier = L"vl::presentation::controls::IToolstripUpdateLayoutInvoker"; - - void GuiToolstripCollectionBase::InvokeUpdateLayout() + bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTreeNode* foundNode, RepeatingParsingExecutor* executor) { - if(contentCallback) - { - contentCallback->UpdateLayout(); - } - } + ParsingTreeToken* foundToken=dynamic_cast(foundNode); + if(!foundToken) return false; + ParsingTreeObject* tokenParent=dynamic_cast(foundNode->GetParent()); + if(!tokenParent) return false; + vint index=tokenParent->GetMembers().Values().IndexOf(foundNode); + if(index==-1) return false; - bool GuiToolstripCollectionBase::QueryInsert(vint index, GuiControl* const& child) - { - return !items.Contains(child) && !child->GetBoundsComposition()->GetParent(); - } + WString type=tokenParent->GetType(); + WString field=tokenParent->GetMembers().Keys().Get(index); + const RepeatingParsingExecutor::FieldMetaData& md=executor->GetFieldMetaData(type, field); - void GuiToolstripCollectionBase::BeforeRemove(vint index, GuiControl* const& child) - { - if (auto invoker = child->QueryTypedService()) - { - invoker->SetCallback(nullptr); - } - InvokeUpdateLayout(); + output.foundToken=foundToken; + output.tokenParent=tokenParent; + output.type=type; + output.field=field; + output.acceptableSemanticIds=md.semantics; + return true; } - void GuiToolstripCollectionBase::AfterInsert(vint index, GuiControl* const& child) + bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTextPos pos, parsing::ParsingTreeObject* rootNode, RepeatingParsingExecutor* executor) { - if (auto invoker = child->QueryTypedService()) - { - invoker->SetCallback(contentCallback); - } - InvokeUpdateLayout(); + ParsingTreeNode* foundNode=rootNode->FindDeepestNode(pos); + if(!foundNode) return false; + return RetriveContext(output, foundNode, executor); } - void GuiToolstripCollectionBase::AfterRemove(vint index, vint count) + bool ParsingTokenContext::RetriveContext(ParsingTokenContext& output, parsing::ParsingTextRange range, ParsingTreeObject* rootNode, RepeatingParsingExecutor* executor) { - InvokeUpdateLayout(); + ParsingTreeNode* foundNode=rootNode->FindDeepestNode(range); + if(!foundNode) return false; + return RetriveContext(output, foundNode, executor); } - GuiToolstripCollectionBase::GuiToolstripCollectionBase(IToolstripUpdateLayout* _contentCallback) - :contentCallback(_contentCallback) - { - } +/*********************************************************************** +RepeatingParsingExecutor::IParsingAnalyzer +***********************************************************************/ - GuiToolstripCollectionBase::~GuiToolstripCollectionBase() - { - } + parsing::ParsingTreeNode* RepeatingParsingExecutor::IParsingAnalyzer::ToParent(parsing::ParsingTreeNode* node, const RepeatingPartialParsingOutput* output) + { + if (!output || !output->modifiedNode) return node; + return node == output->modifiedNode.Obj() + ? output->originalNode.Obj() + : node; + } + + parsing::ParsingTreeObject* RepeatingParsingExecutor::IParsingAnalyzer::ToChild(parsing::ParsingTreeObject* node, const RepeatingPartialParsingOutput* output) + { + if (!output || !output->modifiedNode) return node; + return node == output->originalNode.Obj() + ? output->modifiedNode.Obj() + : node; + } + + Ptr RepeatingParsingExecutor::IParsingAnalyzer::ToChild(Ptr node, const RepeatingPartialParsingOutput* output) + { + if (!output) return node; + return node == output->originalNode + ? output->modifiedNode.Cast() + : node; + } + + parsing::ParsingTreeNode* RepeatingParsingExecutor::IParsingAnalyzer::GetParent(parsing::ParsingTreeNode* node, const RepeatingPartialParsingOutput* output) + { + return ToParent(node, output)->GetParent(); + } + + Ptr RepeatingParsingExecutor::IParsingAnalyzer::GetMember(parsing::ParsingTreeObject* node, const WString& name, const RepeatingPartialParsingOutput* output) + { + return ToChild(ToChild(node, output)->GetMember(name), output); + } + + Ptr RepeatingParsingExecutor::IParsingAnalyzer::GetItem(parsing::ParsingTreeArray* node, vint index, const RepeatingPartialParsingOutput* output) + { + return ToChild(node->GetItem(index), output); + } /*********************************************************************** -GuiToolstripCollection +RepeatingParsingExecutor::CallbackBase ***********************************************************************/ - void GuiToolstripCollection::UpdateItemVisibility(vint index, GuiControl* child) + RepeatingParsingExecutor::CallbackBase::CallbackBase(Ptr _parsingExecutor) + :parsingExecutor(_parsingExecutor) + ,callbackAutoPushing(false) + ,callbackElement(0) + ,callbackElementModifyLock(0) { - auto stackItem = stackComposition->GetStackItems()[index]; - if (child->GetVisible()) - { - stackItem->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - child->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - } - else - { - stackItem->SetMinSizeLimitation(GuiGraphicsComposition::NoLimit); - child->GetBoundsComposition()->SetAlignmentToParent(Margin(-1, -1, -1, -1)); - } } - void GuiToolstripCollection::OnItemVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + RepeatingParsingExecutor::CallbackBase::~CallbackBase() { - auto child = sender->GetRelatedControl(); - vint index = IndexOf(child); - UpdateItemVisibility(index, child); - InvokeUpdateLayout(); } - void GuiToolstripCollection::BeforeRemove(vint index, GuiControl* const& child) + void RepeatingParsingExecutor::CallbackBase::RequireAutoSubmitTask(bool enabled) { - GuiStackItemComposition* stackItem = stackComposition->GetStackItems().Get(index); - - auto eventHandler = eventHandlers[index]; - child->VisibleChanged.Detach(eventHandler); - eventHandlers.RemoveAt(index); - - GuiToolstripCollectionBase::BeforeRemove(index, child); + callbackAutoPushing=enabled; } - void GuiToolstripCollection::AfterInsert(vint index, GuiControl* const& child) + void RepeatingParsingExecutor::CallbackBase::Attach(elements::GuiColorizedTextElement* _element, SpinLock& _elementModifyLock, compositions::GuiGraphicsComposition* _ownerComposition, vuint editVersion) { + if(_element) { - GuiStackItemComposition* stackItem = new GuiStackItemComposition; - stackItem->AddChild(child->GetBoundsComposition()); - stackComposition->InsertStackItem(index, stackItem); + SPIN_LOCK(_elementModifyLock) + { + callbackElement=_element; + callbackElementModifyLock=&_elementModifyLock; + } } + + parsingExecutor->ActivateCallback(this); + if(callbackElement && callbackElementModifyLock && callbackAutoPushing) { - auto eventHandler = child->VisibleChanged.AttachMethod(this, &GuiToolstripCollection::OnItemVisibleChanged); - eventHandlers.Insert(index, eventHandler); + SPIN_LOCK(*callbackElementModifyLock) + { + RepeatingParsingInput input; + input.editVersion=editVersion; + input.code=callbackElement->GetLines().GetText(); + parsingExecutor->SubmitTask(input); + } } - UpdateItemVisibility(index, child); - GuiToolstripCollectionBase::AfterInsert(index, child); } - void GuiToolstripCollection::AfterRemove(vint index, vint count) + void RepeatingParsingExecutor::CallbackBase::Detach() { - for (vint i = 0; i < count; i++) + if(callbackElement && callbackElementModifyLock) { - auto stackItem = stackComposition->GetStackItems().Get(index); - stackComposition->RemoveChild(stackItem); - SafeDeleteComposition(stackItem); + SPIN_LOCK(*callbackElementModifyLock) + { + callbackElement=0; + callbackElementModifyLock=0; + } } - GuiToolstripCollectionBase::AfterRemove(index, count); - } - - GuiToolstripCollection::GuiToolstripCollection(IToolstripUpdateLayout* _contentCallback, compositions::GuiStackComposition* _stackComposition) - :GuiToolstripCollectionBase(_contentCallback) - ,stackComposition(_stackComposition) - { - stackComposition->SetPreferredMinSize(Size(1, 1)); - } - - GuiToolstripCollection::~GuiToolstripCollection() - { - } - -/*********************************************************************** -GuiToolstripMenu -***********************************************************************/ - - void GuiToolstripMenu::UpdateLayout() - { - sharedSizeRootComposition->ForceCalculateSizeImmediately(); - } - - GuiToolstripMenu::GuiToolstripMenu(theme::ThemeName themeName, GuiControl* _owner) - :GuiMenu(themeName, _owner) - { - sharedSizeRootComposition = new GuiSharedSizeRootComposition(); - sharedSizeRootComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - sharedSizeRootComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->AddChild(sharedSizeRootComposition); - - stackComposition=new GuiStackComposition; - stackComposition->SetDirection(GuiStackComposition::Vertical); - stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - sharedSizeRootComposition->AddChild(stackComposition); - toolstripItems = new GuiToolstripCollection(this, stackComposition); - } - - GuiToolstripMenu::~GuiToolstripMenu() - { + parsingExecutor->DeactivateCallback(this); } - collections::ObservableListBase& GuiToolstripMenu::GetToolstripItems() + void RepeatingParsingExecutor::CallbackBase::TextEditPreview(TextEditPreviewStruct& arguments) { - return *toolstripItems.Obj(); } -/*********************************************************************** -GuiToolstripMenuBar -***********************************************************************/ - - GuiToolstripMenuBar::GuiToolstripMenuBar(theme::ThemeName themeName) - :GuiMenuBar(themeName) + void RepeatingParsingExecutor::CallbackBase::TextEditNotify(const TextEditNotifyStruct& arguments) { - stackComposition=new GuiStackComposition; - stackComposition->SetDirection(GuiStackComposition::Horizontal); - stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->AddChild(stackComposition); - - toolstripItems=new GuiToolstripCollection(nullptr, stackComposition); } - GuiToolstripMenuBar::~GuiToolstripMenuBar() + void RepeatingParsingExecutor::CallbackBase::TextCaretChanged(const TextCaretChangedStruct& arguments) { } - collections::ObservableListBase& GuiToolstripMenuBar::GetToolstripItems() + void RepeatingParsingExecutor::CallbackBase::TextEditFinished(vuint editVersion) { - return *toolstripItems.Obj(); + if(callbackElement && callbackElementModifyLock && callbackAutoPushing) + { + SPIN_LOCK(*callbackElementModifyLock) + { + RepeatingParsingInput input; + input.editVersion=editVersion; + input.code=callbackElement->GetLines().GetText(); + parsingExecutor->SubmitTask(input); + } + } } /*********************************************************************** -GuiToolstripToolBar +RepeatingParsingExecutor ***********************************************************************/ - - GuiToolstripToolBar::GuiToolstripToolBar(theme::ThemeName themeName) - :GuiControl(themeName) - { - stackComposition=new GuiStackComposition; - stackComposition->SetDirection(GuiStackComposition::Horizontal); - stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->AddChild(stackComposition); - - toolstripItems=new GuiToolstripCollection(nullptr, stackComposition); - } - GuiToolstripToolBar::~GuiToolstripToolBar() + void RepeatingParsingExecutor::Execute(const RepeatingParsingInput& input) { + List> errors; + Ptr node=grammarParser->Parse(input.code, grammarRule, errors).Cast(); + if(node) + { + node->InitializeQueryCache(); + } + + RepeatingParsingOutput result; + result.node=node; + result.editVersion=input.editVersion; + result.code=input.code; + if(node) + { + OnContextFinishedAsync(result); + for (auto callback : callbacks) + { + callback->OnParsingFinishedAsync(result); + } + } } - collections::ObservableListBase& GuiToolstripToolBar::GetToolstripItems() + void RepeatingParsingExecutor::PrepareMetaData() { - return *toolstripItems.Obj(); - } + Ptr table=grammarParser->GetTable(); + tokenIndexMap.Clear(); + semanticIndexMap.Clear(); + tokenMetaDatas.Clear(); + fieldMetaDatas.Clear(); -/*********************************************************************** -GuiToolstripButton -***********************************************************************/ + Dictionary> tokenColorAtts, tokenContextColorAtts, tokenCandidateAtts, tokenAutoCompleteAtts; + Dictionary> fieldColorAtts, fieldSemanticAtts; - void GuiToolstripButton::SetCallback(IToolstripUpdateLayout* _callback) - { - callback = _callback; - } + { + vint tokenCount=table->GetTokenCount(); + for(vint token=ParsingTable::UserTokenStart;tokenGetTokenInfo(token); + vint tokenIndex=token-ParsingTable::UserTokenStart; + tokenIndexMap.Add(tokenInfo.name, tokenIndex); - void GuiToolstripButton::OnActiveAlt() - { - auto host = GetSubMenuHost(); - if (host == this) + if(Ptr att=GetColorAttribute(tokenInfo.attributeIndex)) + { + tokenColorAtts.Add(tokenIndex, att); + } + if(Ptr att=GetContextColorAttribute(tokenInfo.attributeIndex)) + { + tokenContextColorAtts.Add(tokenIndex, att); + } + if(Ptr att=GetCandidateAttribute(tokenInfo.attributeIndex)) + { + tokenCandidateAtts.Add(tokenIndex, att); + } + if(Ptr att=GetAutoCompleteAttribute(tokenInfo.attributeIndex)) + { + tokenAutoCompleteAtts.Add(tokenIndex, att); + } + } + } { - GuiMenuButton::OnActiveAlt(); + vint fieldCount=table->GetTreeFieldInfoCount(); + for(vint field=0;fieldGetTreeFieldInfo(field); + FieldDesc fieldDesc(fieldInfo.type, fieldInfo.field); + + if(Ptr att=GetColorAttribute(fieldInfo.attributeIndex)) + { + fieldColorAtts.Add(fieldDesc, att); + } + if(Ptr att=GetSemanticAttribute(fieldInfo.attributeIndex)) + { + fieldSemanticAtts.Add(fieldDesc, att); + } + } } - else + + for (auto att : + From(tokenColorAtts.Values()) + .Concat(tokenContextColorAtts.Values()) + .Concat(fieldColorAtts.Values()) + .Concat(fieldSemanticAtts.Values()) + ) { - host->QueryTypedService()->OnActiveAlt(); + for (auto argument : att->arguments) + { + if(!semanticIndexMap.Contains(argument)) + { + semanticIndexMap.Add(argument); + } + } } - } - void GuiToolstripButton::UpdateCommandContent() - { - if(command) + vint index=0; + for (auto tokenIndex : tokenIndexMap.Values()) { - SetLargeImage(command->GetLargeImage()); - SetImage(command->GetImage()); - SetText(command->GetText()); - SetEnabled(command->GetEnabled()); - SetSelected(command->GetSelected()); - if(command->GetShortcut()) + TokenMetaData md; + md.tableTokenIndex=tokenIndex+ParsingTable::UserTokenStart; + md.lexerTokenIndex=tokenIndex; + md.defaultColorIndex=-1; + md.hasContextColor=false; + md.hasAutoComplete=false; + md.isCandidate=false; + + if((index=tokenColorAtts.Keys().IndexOf(tokenIndex))!=-1) { - SetShortcutText(command->GetShortcut()->GetName()); + md.defaultColorIndex=semanticIndexMap.IndexOf(tokenColorAtts.Values()[index]->arguments[0]); } - else + md.hasContextColor=tokenContextColorAtts.Keys().Contains(tokenIndex); + md.hasAutoComplete=tokenAutoCompleteAtts.Keys().Contains(tokenIndex); + if ((md.isCandidate = tokenCandidateAtts.Keys().Contains(tokenIndex))) { - SetShortcutText(L""); + const ParsingTable::TokenInfo& tokenInfo = table->GetTokenInfo(md.tableTokenIndex); + auto regex = wtou32(tokenInfo.regex); + if (IsRegexEscapedLiteralString(regex)) + { + md.unescapedRegexText = u32tow(UnescapeTextForRegex(regex)); + } + else + { + md.isCandidate = false; + } } + + tokenMetaDatas.Add(tokenIndex, md); } - else { - SetLargeImage(nullptr); - SetImage(nullptr); - SetText(L""); - SetEnabled(true); - SetSelected(false); - SetShortcutText(L""); + vint fieldCount=table->GetTreeFieldInfoCount(); + for(vint field=0;fieldGetTreeFieldInfo(field); + FieldDesc fieldDesc(fieldInfo.type, fieldInfo.field); + + FieldMetaData md; + md.colorIndex=-1; + + if((index=fieldColorAtts.Keys().IndexOf(fieldDesc))!=-1) + { + md.colorIndex=semanticIndexMap.IndexOf(fieldColorAtts.Values()[index]->arguments[0]); + } + if((index=fieldSemanticAtts.Keys().IndexOf(fieldDesc))!=-1) + { + md.semantics=Ptr(new List); + for (auto argument : fieldSemanticAtts.Values()[index]->arguments) + { + md.semantics->Add(semanticIndexMap.IndexOf(argument)); + } + } + + fieldMetaDatas.Add(fieldDesc, md); + } } } - void GuiToolstripButton::OnLayoutAwaredPropertyChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + void RepeatingParsingExecutor::OnContextFinishedAsync(RepeatingParsingOutput& context) { - if (callback) + if(analyzer) { - callback->UpdateLayout(); + context.cache = analyzer->CreateCacheAsync(context); } } - void GuiToolstripButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + RepeatingParsingExecutor::RepeatingParsingExecutor(Ptr _grammarParser, const WString& _grammarRule, Ptr _analyzer) + :grammarParser(_grammarParser) + ,grammarRule(_grammarRule) + ,analyzer(_analyzer) + ,autoPushingCallback(0) { - if(command) + PrepareMetaData(); + if (analyzer) { - command->Executed.ExecuteWithNewSender(arguments, sender); + analyzer->Attach(this); } } - void GuiToolstripButton::OnCommandDescriptionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) - { - UpdateCommandContent(); - } - - GuiToolstripButton::GuiToolstripButton(theme::ThemeName themeName) - :GuiMenuButton(themeName) - ,command(0) + RepeatingParsingExecutor::~RepeatingParsingExecutor() { - SetAutoFocus(false); - Clicked.AttachMethod(this, &GuiToolstripButton::OnClicked); - TextChanged.AttachMethod(this, &GuiToolstripButton::OnLayoutAwaredPropertyChanged); - ShortcutTextChanged.AttachMethod(this, &GuiToolstripButton::OnLayoutAwaredPropertyChanged); + EnsureTaskFinished(); + if (analyzer) + { + analyzer->Detach(this); + } } - GuiToolstripButton::~GuiToolstripButton() + Ptr RepeatingParsingExecutor::GetParser() { + return grammarParser; } - GuiToolstripCommand* GuiToolstripButton::GetCommand() + bool RepeatingParsingExecutor::AttachCallback(ICallback* value) { - return command; + if(!value) return false; + if(callbacks.Contains(value)) return false; + callbacks.Add(value); + return true; } - void GuiToolstripButton::SetCommand(GuiToolstripCommand* value) + bool RepeatingParsingExecutor::DetachCallback(ICallback* value) { - if(command!=value) - { - if(command) - { - command->DescriptionChanged.Detach(descriptionChangedHandler); - } - command=0; - descriptionChangedHandler=0; - if(value) - { - command=value; - descriptionChangedHandler=command->DescriptionChanged.AttachMethod(this, &GuiToolstripButton::OnCommandDescriptionChanged); - } - UpdateCommandContent(); - } + if(!value) return false; + if(!callbacks.Contains(value)) return false; + DeactivateCallback(value); + callbacks.Remove(value); + return true; } - GuiToolstripMenu* GuiToolstripButton::GetToolstripSubMenu() + bool RepeatingParsingExecutor::ActivateCallback(ICallback* value) { - return dynamic_cast(GetSubMenu()); - } + if(!value) return false; + if(!callbacks.Contains(value)) return false; + if(activatedCallbacks.Contains(value)) return false; + activatedCallbacks.Add(value); - GuiToolstripMenu* GuiToolstripButton::EnsureToolstripSubMenu() - { - if (!GetSubMenu()) + if(!autoPushingCallback) { - CreateToolstripSubMenu({}); + autoPushingCallback=value; + autoPushingCallback->RequireAutoSubmitTask(true); } - return dynamic_cast(GetSubMenu()); + return true; } - void GuiToolstripButton::CreateToolstripSubMenu(TemplateProperty subMenuTemplate) + bool RepeatingParsingExecutor::DeactivateCallback(ICallback* value) { - if (!subMenu) - { - auto newSubMenu = new GuiToolstripMenu(theme::ThemeName::Menu, this); - if (subMenuTemplate) - { - newSubMenu->SetControlTemplate(subMenuTemplate); - } - else - { - newSubMenu->SetControlTemplate(TypedControlTemplateObject(true)->GetSubMenuTemplate()); - } - SetSubMenu(newSubMenu, true); - } - } + if(!value) return false; + if(!callbacks.Contains(value)) return false; + if(!activatedCallbacks.Contains(value)) return false; - IDescriptable* GuiToolstripButton::QueryService(const WString& identifier) - { - if (identifier == IToolstripUpdateLayoutInvoker::Identifier) + if(autoPushingCallback==value) { - return (IToolstripUpdateLayoutInvoker*)this; + autoPushingCallback->RequireAutoSubmitTask(false); + autoPushingCallback=0; } - else + activatedCallbacks.Remove(value); + if(!autoPushingCallback && activatedCallbacks.Count()>0) { - return GuiMenuButton::QueryService(identifier); + autoPushingCallback=activatedCallbacks[0]; + autoPushingCallback->RequireAutoSubmitTask(true); } + return true; } -/*********************************************************************** -GuiToolstripNestedContainer -***********************************************************************/ - - void GuiToolstripNestedContainer::UpdateLayout() + Ptr RepeatingParsingExecutor::GetAnalyzer() { - // It could happen if a GuiToolstripGroupContainer contains something other that GuiToolstripGroup - if (callback && callback != this) - { - callback->UpdateLayout(); - } + return analyzer; } - void GuiToolstripNestedContainer::SetCallback(IToolstripUpdateLayout* _callback) + vint RepeatingParsingExecutor::GetTokenIndex(const WString& tokenName) { - callback = _callback; + vint index=tokenIndexMap.Keys().IndexOf(tokenName); + return index==-1?-1:tokenIndexMap.Values()[index]; } - GuiToolstripNestedContainer::GuiToolstripNestedContainer(theme::ThemeName themeName) - :GuiControl(themeName) + vint RepeatingParsingExecutor::GetSemanticId(const WString& name) { + return semanticIndexMap.IndexOf(name); } - GuiToolstripNestedContainer::~GuiToolstripNestedContainer() + WString RepeatingParsingExecutor::GetSemanticName(vint id) { + return 0<=id&&idstackComposition->GetStackItems()[index * 2]; - CHECK_ERROR(controlStackItem->RemoveChild(child->GetBoundsComposition()), L"GuiToolstripGroupContainer::GroupCollection::BeforeRemove(vint, GuiControl* const&)#Internal error"); + return fieldMetaDatas[FieldDesc(type, field)]; } - void GuiToolstripGroupContainer::GroupCollection::AfterInsert(vint index, GuiControl* const& child) + Ptr RepeatingParsingExecutor::GetAttribute(vint index, const WString& name, vint argumentCount) { - auto controlStackItem = new GuiStackItemComposition; - child->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - CHECK_ERROR(controlStackItem->AddChild(child->GetBoundsComposition()), L"GuiToolstripGroupContainer::GroupCollection::AfterInsert(vint, GuiControl* const&)#Internal error"); - - if (container->stackComposition->GetStackItems().Count() > 0) + if(index!=-1) { - auto splitterStackItem = new GuiStackItemComposition; - auto splitter = new GuiControl(container->splitterThemeName); - if (splitterTemplate) + Ptr att=grammarParser->GetTable()->GetAttributeInfo(index)->FindFirst(name); + if(att && (argumentCount==-1 || att->arguments.Count()==argumentCount)) { - splitter->SetControlTemplate(splitterTemplate); + return att; } - splitter->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - splitterStackItem->AddChild(splitter->GetBoundsComposition()); - container->stackComposition->InsertStackItem(index == 0 ? 0 : index * 2 - 1, splitterStackItem); - } - - container->stackComposition->InsertStackItem(index * 2, controlStackItem); - - GuiToolstripCollectionBase::AfterInsert(index, child); - } - - void GuiToolstripGroupContainer::GroupCollection::AfterRemove(vint index, vint count) - { - vint min = index * 2; - vint max = (index + count - 1) * 2; - for (vint i = min; i <= max; i++) - { - auto stackItem = container->stackComposition->GetStackItems()[min]; - container->stackComposition->RemoveChild(stackItem); - SafeDeleteComposition(stackItem); } - GuiToolstripCollectionBase::AfterRemove(index, count); + return 0; } - GuiToolstripGroupContainer::GroupCollection::GroupCollection(GuiToolstripGroupContainer* _container) - :GuiToolstripCollectionBase(_container) - , container(_container) + Ptr RepeatingParsingExecutor::GetColorAttribute(vint index) { + return GetAttribute(index, L"Color", 1); } - GuiToolstripGroupContainer::GroupCollection::~GroupCollection() + Ptr RepeatingParsingExecutor::GetContextColorAttribute(vint index) { + return GetAttribute(index, L"ContextColor", 0); } - GuiToolstripGroupContainer::ControlTemplatePropertyType GuiToolstripGroupContainer::GroupCollection::GetSplitterTemplate() + Ptr RepeatingParsingExecutor::GetSemanticAttribute(vint index) { - return splitterTemplate; + return GetAttribute(index, L"Semantic", -1); } - void GuiToolstripGroupContainer::GroupCollection::SetSplitterTemplate(const ControlTemplatePropertyType& value) + Ptr RepeatingParsingExecutor::GetCandidateAttribute(vint index) { - splitterTemplate = value; - RebuildSplitters(); + return GetAttribute(index, L"Candidate", 0); } - void GuiToolstripGroupContainer::GroupCollection::RebuildSplitters() + Ptr RepeatingParsingExecutor::GetAutoCompleteAttribute(vint index) { - auto stack = container->stackComposition; - vint count = stack->GetStackItems().Count(); - for (vint i = 1; i < count; i += 2) - { - auto stackItem = stack->GetStackItems()[i]; - { - auto control = stackItem->Children()[0]->GetAssociatedControl(); - CHECK_ERROR(control != nullptr, L"GuiToolstripGroupContainer::GroupCollection::RebuildSplitters()#Internal error"); - stackItem->RemoveChild(control->GetBoundsComposition()); - delete control; - } - { - auto control = new GuiControl(container->splitterThemeName); - if (splitterTemplate) - { - control->SetControlTemplate(splitterTemplate); - } - control->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackItem->AddChild(control->GetBoundsComposition()); - } - } + return GetAttribute(index, L"AutoComplete", 0); } + } + } +} /*********************************************************************** -GuiToolstripGroupContainer +.\CONTROLS\TOOLSTRIPPACKAGE\GUIMENUCONTROLS.CPP ***********************************************************************/ - void GuiToolstripGroupContainer::OnParentLineChanged() - { - auto direction = GuiStackComposition::Horizontal; - if (auto service = QueryTypedService()) - { - if (service->GetPreferredDirection() == IGuiMenuService::Vertical) - { - direction = GuiStackComposition::Vertical; - } - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace compositions; - if (direction != stackComposition->GetDirection()) +/*********************************************************************** +IGuiMenuService +***********************************************************************/ + + const wchar_t* const IGuiMenuService::Identifier = L"vl::presentation::controls::IGuiMenuService"; + const wchar_t* const IGuiMenuDropdownProvider::Identifier = L"vl::presentation::controls::IGuiMenuDropdownProvider"; + + IGuiMenuService::IGuiMenuService() + :openingMenu(0) + { + } + + void IGuiMenuService::MenuItemExecuted() + { + if(openingMenu) { - if (direction == GuiStackComposition::Vertical) - { - splitterThemeName = theme::ThemeName::MenuSplitter; - } - else - { - splitterThemeName = theme::ThemeName::ToolstripSplitter; - } + openingMenu->Hide(); + } + if(GetParentMenuService()) + { + GetParentMenuService()->MenuItemExecuted(); + } + } - stackComposition->SetDirection(direction); - groupCollection->RebuildSplitters(); - UpdateLayout(); + GuiMenu* IGuiMenuService::GetOpeningMenu() + { + return openingMenu; + } + + void IGuiMenuService::MenuOpened(GuiMenu* menu) + { + if(openingMenu!=menu && openingMenu) + { + openingMenu->Hide(); } + openingMenu=menu; + } - GuiControl::OnParentLineChanged(); + void IGuiMenuService::MenuClosed(GuiMenu* menu) + { + if(openingMenu==menu) + { + openingMenu=0; + } } - GuiToolstripGroupContainer::GuiToolstripGroupContainer(theme::ThemeName themeName) - :GuiToolstripNestedContainer(themeName) - , splitterThemeName(theme::ThemeName::ToolstripSplitter) +/*********************************************************************** +GuiMenu +***********************************************************************/ + + void GuiMenu::BeforeControlTemplateUninstalled_() { - stackComposition = new GuiStackComposition; - stackComposition->SetDirection(GuiStackComposition::Horizontal); - stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->AddChild(stackComposition); + } - groupCollection = new GroupCollection(this); + void GuiMenu::AfterControlTemplateInstalled_(bool initialize) + { } - GuiToolstripGroupContainer::~GuiToolstripGroupContainer() + IGuiMenuService* GuiMenu::GetParentMenuService() { + return parentMenuService; } - GuiToolstripGroupContainer::ControlTemplatePropertyType GuiToolstripGroupContainer::GetSplitterTemplate() + IGuiMenuService::Direction GuiMenu::GetPreferredDirection() { - return groupCollection->GetSplitterTemplate(); + return IGuiMenuService::Vertical; } - void GuiToolstripGroupContainer::SetSplitterTemplate(const ControlTemplatePropertyType& value) + bool GuiMenu::IsActiveState() { - groupCollection->SetSplitterTemplate(value); + return true; } - collections::ObservableListBase& GuiToolstripGroupContainer::GetToolstripItems() + bool GuiMenu::IsSubMenuActivatedByMouseDown() { - return *groupCollection.Obj(); + return false; } -/*********************************************************************** -GuiToolstripGroup -***********************************************************************/ + void GuiMenu::MenuItemExecuted() + { + IGuiMenuService::MenuItemExecuted(); + Hide(); + } - void GuiToolstripGroup::OnParentLineChanged() + void GuiMenu::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) { - auto direction = GuiStackComposition::Horizontal; - if (auto service = QueryTypedService()) + GuiPopup::Moving(bounds, fixSizeOnly, draggingBorder); + if (draggingBorder) { - if (service->GetPreferredDirection() == IGuiMenuService::Vertical) + if (auto nativeWindow = GetNativeWindow()) { - direction = GuiStackComposition::Vertical; + auto newSize = bounds.GetSize(); + auto nativeOffset = (nativeWindow->GetBounds().GetSize() - nativeWindow->GetClientSize()); + auto preferredNativeSize = nativeWindow->Convert(preferredMenuClientSizeBeforeUpdating) + nativeOffset; + if (newSize.x < preferredNativeSize.x) newSize.x = preferredNativeSize.x; + if (newSize.y < preferredNativeSize.y) newSize.y = preferredNativeSize.y; + preferredMenuClientSize = nativeWindow->Convert(newSize - nativeOffset); } } + } - if (direction != stackComposition->GetDirection()) + void GuiMenu::UpdateClientSizeAfterRendering(Size preferredSize, Size clientSize) + { + auto size = preferredSize; + if (size.x < preferredMenuClientSize.x) size.x = preferredMenuClientSize.x; + if (size.y < preferredMenuClientSize.y) size.y = preferredMenuClientSize.y; + GuiPopup::UpdateClientSizeAfterRendering(preferredSize, size); + } + + void GuiMenu::OnWindowOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if(parentMenuService) { - stackComposition->SetDirection(direction); - UpdateLayout(); + parentMenuService->MenuOpened(this); } - - GuiControl::OnParentLineChanged(); } - GuiToolstripGroup::GuiToolstripGroup(theme::ThemeName themeName) - :GuiToolstripNestedContainer(themeName) + void GuiMenu::OnDeactivatedAltHost() { - stackComposition = new GuiStackComposition; - stackComposition->SetDirection(GuiStackComposition::Horizontal); - stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); - stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - containerComposition->AddChild(stackComposition); - - toolstripItems = new GuiToolstripCollection(nullptr, stackComposition); + if(hideOnDeactivateAltHost) + { + Hide(); + } + GuiPopup::OnDeactivatedAltHost(); } - GuiToolstripGroup::~GuiToolstripGroup() + void GuiMenu::OnWindowClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { + if(parentMenuService) + { + parentMenuService->MenuClosed(this); + GuiMenu* openingSubMenu=GetOpeningMenu(); + if(openingSubMenu) + { + openingSubMenu->Hide(); + } + } } - collections::ObservableListBase& GuiToolstripGroup::GetToolstripItems() + GuiMenu::GuiMenu(theme::ThemeName themeName, GuiControl* _owner) + :GuiPopup(themeName, INativeWindow::Menu) + , owner(_owner) { - return *toolstripItems.Obj(); + UpdateMenuService(); + WindowOpened.AttachMethod(this, &GuiMenu::OnWindowOpened); + WindowClosed.AttachMethod(this, &GuiMenu::OnWindowClosed); } - } - } -} - -/*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSAXIS.CPP -***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace compositions - { + GuiMenu::~GuiMenu() + { + } -/*********************************************************************** -GuiDefaultAxis -***********************************************************************/ + void GuiMenu::UpdateMenuService() + { + if(owner) + { + parentMenuService=owner->QueryTypedService(); + } + } - GuiDefaultAxis::GuiDefaultAxis() + IDescriptable* GuiMenu::QueryService(const WString& identifier) + { + if(identifier==IGuiMenuService::Identifier) + { + return (IGuiMenuService*)this; + } + else + { + return GuiPopup::QueryService(identifier); + } + } + + bool GuiMenu::GetHideOnDeactivateAltHost() { + return hideOnDeactivateAltHost; } - GuiDefaultAxis::~GuiDefaultAxis() + void GuiMenu::SetHideOnDeactivateAltHost(bool value) { + hideOnDeactivateAltHost = value; } - Size GuiDefaultAxis::RealSizeToVirtualSize(Size size) + Size GuiMenu::GetPreferredMenuClientSize() { - return size; + return preferredMenuClientSize; } - Size GuiDefaultAxis::VirtualSizeToRealSize(Size size) + void GuiMenu::SetPreferredMenuClientSize(Size value) { - return size; + preferredMenuClientSize = value; + preferredMenuClientSizeBeforeUpdating = value; } - Point GuiDefaultAxis::RealPointToVirtualPoint(Size realFullSize, Point point) +/*********************************************************************** +GuiMenuBar +***********************************************************************/ + + IGuiMenuService* GuiMenuBar::GetParentMenuService() { - return point; + return 0; } - Point GuiDefaultAxis::VirtualPointToRealPoint(Size realFullSize, Point point) + IGuiMenuService::Direction GuiMenuBar::GetPreferredDirection() { - return point; + return IGuiMenuService::Horizontal; } - Rect GuiDefaultAxis::RealRectToVirtualRect(Size realFullSize, Rect rect) + bool GuiMenuBar::IsActiveState() { - return rect; + return GetOpeningMenu()!=0; } - Rect GuiDefaultAxis::VirtualRectToRealRect(Size realFullSize, Rect rect) + bool GuiMenuBar::IsSubMenuActivatedByMouseDown() { - return rect; + return true; } - Margin GuiDefaultAxis::RealMarginToVirtualMargin(Margin margin) + GuiMenuBar::GuiMenuBar(theme::ThemeName themeName) + :GuiControl(themeName) { - return margin; } - Margin GuiDefaultAxis::VirtualMarginToRealMargin(Margin margin) + GuiMenuBar::~GuiMenuBar() { - return margin; } - KeyDirection GuiDefaultAxis::RealKeyDirectionToVirtualKeyDirection(KeyDirection key) + IDescriptable* GuiMenuBar::QueryService(const WString& identifier) { - return key; + if(identifier==IGuiMenuService::Identifier) + { + return (IGuiMenuService*)this; + } + else + { + return GuiControl::QueryService(identifier); + } } /*********************************************************************** -GuiAxis +GuiMenuButton ***********************************************************************/ - GuiAxis::GuiAxis(AxisDirection _axisDirection) - :axisDirection(_axisDirection) + void GuiMenuButton::BeforeControlTemplateUninstalled_() { + auto host = GetSubMenuHost(); + host->Clicked.Detach(hostClickedHandler); + host->GetBoundsComposition()->GetEventReceiver()->mouseEnter.Detach(hostMouseEnterHandler); + + hostClickedHandler = nullptr; + hostMouseEnterHandler = nullptr; } - GuiAxis::~GuiAxis() + void GuiMenuButton::AfterControlTemplateInstalled_(bool initialize) { + auto ct = TypedControlTemplateObject(true); + auto host = GetSubMenuHost(); + + ct->SetSubMenuOpening(GetSubMenuOpening()); + ct->SetLargeImage(largeImage); + ct->SetImage(image); + ct->SetShortcutText(shortcutText); + ct->SetSubMenuExisting(subMenu != nullptr); + + hostClickedHandler = host->Clicked.AttachMethod(this, &GuiMenuButton::OnClicked); + hostMouseEnterHandler = host->GetBoundsComposition()->GetEventReceiver()->mouseEnter.AttachMethod(this, &GuiMenuButton::OnMouseEnter); } - AxisDirection GuiAxis::GetDirection() + GuiButton* GuiMenuButton::GetSubMenuHost() { - return axisDirection; + GuiButton* button = TypedControlTemplateObject(true)->GetSubMenuHost(); + return button ? button : this; } - Size GuiAxis::RealSizeToVirtualSize(Size size) + bool GuiMenuButton::OpenSubMenuInternal() { - switch(axisDirection) + if (!GetSubMenuOpening()) { - case AxisDirection::LeftDown: - case AxisDirection::RightDown: - case AxisDirection::LeftUp: - case AxisDirection::RightUp: - return Size(size.x, size.y); - case AxisDirection::DownLeft: - case AxisDirection::DownRight: - case AxisDirection::UpLeft: - case AxisDirection::UpRight: - return Size(size.y, size.x); + if (ownerMenuService) + { + GuiMenu* openingSiblingMenu = ownerMenuService->GetOpeningMenu(); + if (openingSiblingMenu) + { + openingSiblingMenu->Hide(); + } + } + + BeforeSubMenuOpening.Execute(GetNotifyEventArguments()); + if (subMenu) + { + subMenu->SetClientSize(preferredMenuClientSize); + IGuiMenuService::Direction direction = GetSubMenuDirection(); + subMenu->ShowPopup(GetSubMenuHost(), direction == IGuiMenuService::Horizontal); + AfterSubMenuOpening.Execute(GetNotifyEventArguments()); + return true; + } } - return size; + return false; } - Size GuiAxis::VirtualSizeToRealSize(Size size) + void GuiMenuButton::OnParentLineChanged() { - return RealSizeToVirtualSize(size); + GuiButton::OnParentLineChanged(); + ownerMenuService=QueryTypedService(); + if(ownerMenuService) + { + SetClickOnMouseUp(!ownerMenuService->IsSubMenuActivatedByMouseDown()); + } + if(subMenu) + { + subMenu->UpdateMenuService(); + } } - Point GuiAxis::RealPointToVirtualPoint(Size realFullSize, Point point) + compositions::IGuiAltActionHost* GuiMenuButton::GetActivatingAltHost() { - Rect rect(point, Size(0, 0)); - return RealRectToVirtualRect(realFullSize, rect).LeftTop(); + if (subMenu) + { + return subMenu->QueryTypedService(); + } + else + { + return GuiSelectableButton::GetActivatingAltHost(); + } } - Point GuiAxis::VirtualPointToRealPoint(Size realFullSize, Point point) + void GuiMenuButton::OnSubMenuWindowOpened(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - Rect rect(point, Size(0, 0)); - return VirtualRectToRealRect(realFullSize, rect).LeftTop(); + SubMenuOpeningChanged.Execute(GetNotifyEventArguments()); + TypedControlTemplateObject(true)->SetSubMenuOpening(true); } - Rect GuiAxis::RealRectToVirtualRect(Size realFullSize, Rect rect) + void GuiMenuButton::OnSubMenuWindowClosed(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - vint x1=rect.x1; - vint x2=realFullSize.x-rect.x2; - vint y1=rect.y1; - vint y2=realFullSize.y-rect.y2; - vint w=rect.Width(); - vint h=rect.Height(); - switch(axisDirection) + SubMenuOpeningChanged.Execute(GetNotifyEventArguments()); + TypedControlTemplateObject(true)->SetSubMenuOpening(false); + } + + void GuiMenuButton::OnMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + if(GetVisuallyEnabled()) { - case AxisDirection::LeftDown: - return Rect(Point(x2, y1), Size(w, h)); - case AxisDirection::RightDown: - return Rect(Point(x1, y1), Size(w, h)); - case AxisDirection::LeftUp: - return Rect(Point(x2, y2), Size(w, h)); - case AxisDirection::RightUp: - return Rect(Point(x1, y2), Size(w, h)); - case AxisDirection::DownLeft: - return Rect(Point(y1, x2), Size(h, w)); - case AxisDirection::DownRight: - return Rect(Point(y1, x1), Size(h, w)); - case AxisDirection::UpLeft: - return Rect(Point(y2, x2), Size(h, w)); - case AxisDirection::UpRight: - return Rect(Point(y2, x1), Size(h, w)); + if(cascadeAction && ownerMenuService && ownerMenuService->IsActiveState()) + { + OpenSubMenuInternal(); + } } - return rect; } - Rect GuiAxis::VirtualRectToRealRect(Size realFullSize, Rect rect) + void GuiMenuButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - realFullSize=RealSizeToVirtualSize(realFullSize); - vint x1=rect.x1; - vint x2=realFullSize.x-rect.x2; - vint y1=rect.y1; - vint y2=realFullSize.y-rect.y2; - vint w=rect.Width(); - vint h=rect.Height(); - switch(axisDirection) + if(GetVisuallyEnabled()) { - case AxisDirection::LeftDown: - return Rect(Point(x2, y1), Size(w, h)); - case AxisDirection::RightDown: - return Rect(Point(x1, y1), Size(w, h)); - case AxisDirection::LeftUp: - return Rect(Point(x2, y2), Size(w, h)); - case AxisDirection::RightUp: - return Rect(Point(x1, y2), Size(w, h)); - case AxisDirection::DownLeft: - return Rect(Point(y2, x1), Size(h, w)); - case AxisDirection::DownRight: - return Rect(Point(y1, x1), Size(h, w)); - case AxisDirection::UpLeft: - return Rect(Point(y2, x2), Size(h, w)); - case AxisDirection::UpRight: - return Rect(Point(y1, x2), Size(h, w)); + if(!OpenSubMenuInternal() && ownerMenuService) + { + ownerMenuService->MenuItemExecuted(); + } } - return rect; } - Margin GuiAxis::RealMarginToVirtualMargin(Margin margin) + IGuiMenuService::Direction GuiMenuButton::GetSubMenuDirection() { - vint x1=margin.left; - vint x2=margin.right; - vint y1=margin.top; - vint y2=margin.bottom; - switch(axisDirection) + return ownerMenuService?ownerMenuService->GetPreferredDirection():IGuiMenuService::Horizontal; + } + + void GuiMenuButton::DetachSubMenu() + { + if (subMenu) { - case AxisDirection::LeftDown: - return Margin(x2, y1, x1, y2); - case AxisDirection::RightDown: - return Margin(x1, y1, x2, y2); - case AxisDirection::LeftUp: - return Margin(x2, y2, x1, y1); - case AxisDirection::RightUp: - return Margin(x1, y2, x2, y1); - case AxisDirection::DownLeft: - return Margin(y1, x2, y2, x1); - case AxisDirection::DownRight: - return Margin(y1, x1, y2, x2); - case AxisDirection::UpLeft: - return Margin(y2, x2, y1, x1); - case AxisDirection::UpRight: - return Margin(y2, x1, y1, x2); + subMenu->WindowOpened.Detach(subMenuWindowOpenedHandler); + subMenu->WindowClosed.Detach(subMenuWindowClosedHandler); + + subMenuWindowOpenedHandler = nullptr; + subMenuWindowClosedHandler = nullptr; + if (ownedSubMenu) + { + delete subMenu; + } } - return margin; } - Margin GuiAxis::VirtualMarginToRealMargin(Margin margin) + GuiMenu* GuiMenuButton::ProvideDropdownMenu() { - vint x1=margin.left; - vint x2=margin.right; - vint y1=margin.top; - vint y2=margin.bottom; - switch(axisDirection) + return GetSubMenu(); + } + + GuiMenuButton::GuiMenuButton(theme::ThemeName themeName) + :GuiSelectableButton(themeName) + ,subMenu(0) + ,ownedSubMenu(false) + ,ownerMenuService(0) + ,cascadeAction(true) + { + SetAutoSelection(false); + BeforeSubMenuOpening.SetAssociatedComposition(boundsComposition); + SubMenuOpeningChanged.SetAssociatedComposition(boundsComposition); + LargeImageChanged.SetAssociatedComposition(boundsComposition); + ImageChanged.SetAssociatedComposition(boundsComposition); + ShortcutTextChanged.SetAssociatedComposition(boundsComposition); + } + + GuiMenuButton::~GuiMenuButton() + { + if (!subMenuDisposeFlag || !subMenuDisposeFlag->IsDisposed()) { - case AxisDirection::LeftDown: - return Margin(x2, y1, x1, y2); - case AxisDirection::RightDown: - return Margin(x1, y1, x2, y2); - case AxisDirection::LeftUp: - return Margin(x2, y2, x1, y1); - case AxisDirection::RightUp: - return Margin(x1, y2, x2, y1); - case AxisDirection::DownLeft: - return Margin(y2, x1, y1, x2); - case AxisDirection::DownRight: - return Margin(y1, x1, y2, x2); - case AxisDirection::UpLeft: - return Margin(y2, x2, y1, x1); - case AxisDirection::UpRight: - return Margin(y1, x2, y2, x1); - default:; + DetachSubMenu(); } - return margin; } - KeyDirection GuiAxis::RealKeyDirectionToVirtualKeyDirection(KeyDirection key) + Ptr GuiMenuButton::GetLargeImage() { - bool pageKey=false; - switch(key) - { - case KeyDirection::PageUp: - pageKey=true; - key=KeyDirection::Up; - break; - case KeyDirection::PageDown: - pageKey=true; - key=KeyDirection::Down; - break; - case KeyDirection::PageLeft: - pageKey=true; - key=KeyDirection::Left; - break; - case KeyDirection::PageRight: - pageKey=true; - key=KeyDirection::Right; - break; - default:; - } - - switch(key) - { - case KeyDirection::Up: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::Up; break; - case AxisDirection::RightDown: key=KeyDirection::Up; break; - case AxisDirection::LeftUp: key=KeyDirection::Down; break; - case AxisDirection::RightUp: key=KeyDirection::Down; break; - case AxisDirection::DownLeft: key=KeyDirection::Left; break; - case AxisDirection::DownRight: key=KeyDirection::Left; break; - case AxisDirection::UpLeft: key=KeyDirection::Right; break; - case AxisDirection::UpRight: key=KeyDirection::Right; break; - } - break; - case KeyDirection::Down: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::Down; break; - case AxisDirection::RightDown: key=KeyDirection::Down; break; - case AxisDirection::LeftUp: key=KeyDirection::Up; break; - case AxisDirection::RightUp: key=KeyDirection::Up; break; - case AxisDirection::DownLeft: key=KeyDirection::Right; break; - case AxisDirection::DownRight: key=KeyDirection::Right; break; - case AxisDirection::UpLeft: key=KeyDirection::Left; break; - case AxisDirection::UpRight: key=KeyDirection::Left; break; - } - break; - case KeyDirection::Left: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::Right; break; - case AxisDirection::RightDown: key=KeyDirection::Left; break; - case AxisDirection::LeftUp: key=KeyDirection::Right; break; - case AxisDirection::RightUp: key=KeyDirection::Left; break; - case AxisDirection::DownLeft: key=KeyDirection::Down; break; - case AxisDirection::DownRight: key=KeyDirection::Up; break; - case AxisDirection::UpLeft: key=KeyDirection::Down; break; - case AxisDirection::UpRight: key=KeyDirection::Up; break; - } - break; - case KeyDirection::Right: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::Left; break; - case AxisDirection::RightDown: key=KeyDirection::Right; break; - case AxisDirection::LeftUp: key=KeyDirection::Left; break; - case AxisDirection::RightUp: key=KeyDirection::Right; break; - case AxisDirection::DownLeft: key=KeyDirection::Up; break; - case AxisDirection::DownRight: key=KeyDirection::Down; break; - case AxisDirection::UpLeft: key=KeyDirection::Up; break; - case AxisDirection::UpRight: key=KeyDirection::Down; break; - } - break; - case KeyDirection::Home: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::Home; break; - case AxisDirection::RightDown: key=KeyDirection::Home; break; - case AxisDirection::LeftUp: key=KeyDirection::End; break; - case AxisDirection::RightUp: key=KeyDirection::End; break; - case AxisDirection::DownLeft: key=KeyDirection::Home; break; - case AxisDirection::DownRight: key=KeyDirection::Home; break; - case AxisDirection::UpLeft: key=KeyDirection::End; break; - case AxisDirection::UpRight: key=KeyDirection::End; break; - } - break; - case KeyDirection::End: - switch(axisDirection) - { - case AxisDirection::LeftDown: key=KeyDirection::End; break; - case AxisDirection::RightDown: key=KeyDirection::End; break; - case AxisDirection::LeftUp: key=KeyDirection::Home; break; - case AxisDirection::RightUp: key=KeyDirection::Home; break; - case AxisDirection::DownLeft: key=KeyDirection::End; break; - case AxisDirection::DownRight: key=KeyDirection::End; break; - case AxisDirection::UpLeft: key=KeyDirection::Home; break; - case AxisDirection::UpRight: key=KeyDirection::Home; break; - } - break; - default:; - } + return largeImage; + } - if(pageKey) + void GuiMenuButton::SetLargeImage(Ptr value) + { + if (largeImage != value) { - switch(key) - { - case KeyDirection::Up: - key=KeyDirection::PageUp; - break; - case KeyDirection::Down: - key=KeyDirection::PageDown; - break; - case KeyDirection::Left: - key=KeyDirection::PageLeft; - break; - case KeyDirection::Right: - key=KeyDirection::PageRight; - break; - default:; - } + largeImage = value; + TypedControlTemplateObject(true)->SetLargeImage(largeImage); + LargeImageChanged.Execute(GetNotifyEventArguments()); } - return key; } - } - } -} - -/*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSBASICCOMPOSITION.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace compositions - { - using namespace collections; - using namespace controls; - using namespace elements; -/*********************************************************************** -GuiWindowComposition -***********************************************************************/ + Ptr GuiMenuButton::GetImage() + { + return image; + } - GuiWindowComposition::GuiWindowComposition() + void GuiMenuButton::SetImage(Ptr value) { + if (image != value) + { + image = value; + TypedControlTemplateObject(true)->SetImage(image); + ImageChanged.Execute(GetNotifyEventArguments()); + } } - GuiWindowComposition::~GuiWindowComposition() + const WString& GuiMenuButton::GetShortcutText() { + return shortcutText; } - Rect GuiWindowComposition::GetBounds() + void GuiMenuButton::SetShortcutText(const WString& value) { - Rect bounds; - if (relatedHostRecord) + if (shortcutText != value) { - if (auto window = relatedHostRecord->host->GetNativeWindow()) - { - bounds = Rect(Point(0, 0), window->Convert(window->GetClientSize())); - } + shortcutText = value; + TypedControlTemplateObject(true)->SetShortcutText(shortcutText); + ShortcutTextChanged.Execute(GetNotifyEventArguments()); } - UpdatePreviousBounds(bounds); - return bounds; } - void GuiWindowComposition::SetMargin(Margin value) + bool GuiMenuButton::IsSubMenuExists() { + return subMenu!=0; } -/*********************************************************************** -GuiBoundsComposition -***********************************************************************/ - - GuiBoundsComposition::GuiBoundsComposition() + GuiMenu* GuiMenuButton::GetSubMenu() { + return subMenu; } - GuiBoundsComposition::~GuiBoundsComposition() + GuiMenu* GuiMenuButton::CreateSubMenu(TemplateProperty subMenuTemplate) { + if (!subMenu) + { + GuiMenu* newSubMenu = new GuiMenu(theme::ThemeName::Menu, this); + newSubMenu->SetControlTemplate(subMenuTemplate ? subMenuTemplate : TypedControlTemplateObject(true)->GetSubMenuTemplate()); + SetSubMenu(newSubMenu, true); + } + return subMenu; } - bool GuiBoundsComposition::GetSizeAffectParent() + void GuiMenuButton::SetSubMenu(GuiMenu* value, bool owned) { - return sizeAffectParent; + if (subMenu) + { + DetachSubMenu(); + subMenuDisposeFlag = nullptr; + } + subMenu = value; + ownedSubMenu = owned; + if (subMenu) + { + subMenu->SetPreferredMenuClientSize(preferredMenuClientSize); + subMenuDisposeFlag = subMenu->GetDisposedFlag(); + subMenuWindowOpenedHandler = subMenu->WindowOpened.AttachMethod(this, &GuiMenuButton::OnSubMenuWindowOpened); + subMenuWindowClosedHandler = subMenu->WindowClosed.AttachMethod(this, &GuiMenuButton::OnSubMenuWindowClosed); + } + TypedControlTemplateObject(true)->SetSubMenuExisting(subMenu != nullptr); } - void GuiBoundsComposition::SetSizeAffectParent(bool value) + void GuiMenuButton::DestroySubMenu() { - sizeAffectParent = value; + if(subMenu) + { + DetachSubMenu(); + subMenu=0; + ownedSubMenu=false; + TypedControlTemplateObject(true)->SetSubMenuExisting(false); + } } - bool GuiBoundsComposition::IsSizeAffectParent() + bool GuiMenuButton::GetOwnedSubMenu() { - return sizeAffectParent; + return subMenu && ownedSubMenu; } - Rect GuiBoundsComposition::GetPreferredBounds() + bool GuiMenuButton::GetSubMenuOpening() { - Rect result = GetBoundsInternal(compositionBounds); - if (GetParent() && IsAlignedToParent()) + if(subMenu) { - if (alignmentToParent.left >= 0) - { - vint offset = alignmentToParent.left - result.x1; - result.x1 += offset; - result.x2 += offset; - } - if (alignmentToParent.top >= 0) - { - vint offset = alignmentToParent.top - result.y1; - result.y1 += offset; - result.y2 += offset; - } - if (alignmentToParent.right >= 0) - { - result.x2 += alignmentToParent.right; - } - if (alignmentToParent.bottom >= 0) - { - result.y2 += alignmentToParent.bottom; - } + return subMenu->GetOpening(); + } + else + { + return false; } - return result; } - Rect GuiBoundsComposition::GetBounds() + void GuiMenuButton::SetSubMenuOpening(bool value) { - Rect result = GetPreferredBounds(); - if (GetParent() && IsAlignedToParent()) + if (subMenu && subMenu->GetOpening() != value) { - Size clientSize = GetParent()->GetClientArea().GetSize(); - if (alignmentToParent.left >= 0 && alignmentToParent.right >= 0) - { - result.x1 = alignmentToParent.left; - result.x2 = clientSize.x - alignmentToParent.right; - } - else if (alignmentToParent.left >= 0) - { - vint width = result.Width(); - result.x1 = alignmentToParent.left; - result.x2 = result.x1 + width; - } - else if (alignmentToParent.right >= 0) - { - vint width = result.Width(); - result.x2 = clientSize.x - alignmentToParent.right; - result.x1 = result.x2 - width; - } - - if (alignmentToParent.top >= 0 && alignmentToParent.bottom >= 0) - { - result.y1 = alignmentToParent.top; - result.y2 = clientSize.y - alignmentToParent.bottom; - } - else if (alignmentToParent.top >= 0) + if (value) { - vint height = result.Height(); - result.y1 = alignmentToParent.top; - result.y2 = result.y1 + height; + OpenSubMenuInternal(); } - else if (alignmentToParent.bottom >= 0) + else { - vint height = result.Height(); - result.y2 = clientSize.y - alignmentToParent.bottom; - result.y1 = result.y2 - height; + subMenu->Close(); } } - UpdatePreviousBounds(result); - return result; } - void GuiBoundsComposition::SetBounds(Rect value) + Size GuiMenuButton::GetPreferredMenuClientSize() { - compositionBounds = value; - InvokeOnCompositionStateChanged(); + return preferredMenuClientSize; } - Margin GuiBoundsComposition::GetAlignmentToParent() + void GuiMenuButton::SetPreferredMenuClientSize(Size value) { - return alignmentToParent; + preferredMenuClientSize = value; + if (subMenu) + { + subMenu->SetPreferredMenuClientSize(preferredMenuClientSize); + } } - void GuiBoundsComposition::SetAlignmentToParent(Margin value) + bool GuiMenuButton::GetCascadeAction() { - alignmentToParent = value; - InvokeOnCompositionStateChanged(); + return cascadeAction; } - bool GuiBoundsComposition::IsAlignedToParent() + void GuiMenuButton::SetCascadeAction(bool value) { - return alignmentToParent != Margin(-1, -1, -1, -1); + cascadeAction=value; + } + + IDescriptable* GuiMenuButton::QueryService(const WString& identifier) + { + if (identifier == IGuiMenuDropdownProvider::Identifier) + { + return (IGuiMenuDropdownProvider*)this; + } + else + { + return GuiSelectableButton::QueryService(identifier); + } } } } } /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSCOMPOSITIONBASE.CPP +.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONCONTROLS.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace compositions + namespace controls { + using namespace reflection::description; using namespace collections; - using namespace controls; - using namespace elements; - - void InvokeOnCompositionStateChanged(compositions::GuiGraphicsComposition* composition) - { - composition->InvokeOnCompositionStateChanged(); - } + using namespace compositions; + using namespace theme; + using namespace templates; /*********************************************************************** -GuiGraphicsComposition +GuiRibbonTab ***********************************************************************/ - void GuiGraphicsComposition::OnControlParentChanged(controls::GuiControl* control) + void GuiRibbonTab::BeforeControlTemplateUninstalled_() { - if(associatedControl && associatedControl!=control) + auto ct = TypedControlTemplateObject(false); + if (!ct) return; + + if (auto bhc = ct->GetBeforeHeadersContainer()) { - if(associatedControl->GetParent()) - { - associatedControl->GetParent()->OnChildRemoved(associatedControl); - } - if(control) - { - control->OnChildInserted(associatedControl); - } + bhc->RemoveChild(beforeHeaders); } - else + if (auto ahc = ct->GetAfterHeadersContainer()) { - for(vint i=0;iOnControlParentChanged(control); - } + ahc->RemoveChild(afterHeaders); } } - void GuiGraphicsComposition::OnChildInserted(GuiGraphicsComposition* child) - { - child->OnControlParentChanged(GetRelatedControl()); - } - - void GuiGraphicsComposition::OnChildRemoved(GuiGraphicsComposition* child) - { - child->OnControlParentChanged(0); - } - - void GuiGraphicsComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) - { - OnParentLineChanged(); - } - - void GuiGraphicsComposition::OnParentLineChanged() + void GuiRibbonTab::AfterControlTemplateInstalled_(bool initialize) { - for (vint i = 0; i < children.Count(); i++) + auto ct = TypedControlTemplateObject(true); + if (auto bhc = ct->GetBeforeHeadersContainer()) { - children[i]->OnParentLineChanged(); + bhc->AddChild(beforeHeaders); + } + if (auto ahc = ct->GetAfterHeadersContainer()) + { + ahc->AddChild(afterHeaders); } } - void GuiGraphicsComposition::OnRenderContextChanged() + GuiRibbonTab::GuiRibbonTab(theme::ThemeName themeName) + :GuiTab(themeName) { + beforeHeaders = new GuiBoundsComposition(); + beforeHeaders->SetAlignmentToParent(Margin(0, 0, 0, 0)); + beforeHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + + afterHeaders = new GuiBoundsComposition(); + afterHeaders->SetAlignmentToParent(Margin(0, 0, 0, 0)); + afterHeaders->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - void GuiGraphicsComposition::UpdateRelatedHostRecord(GraphicsHostRecord* record) + GuiRibbonTab::~GuiRibbonTab() { - relatedHostRecord = record; - auto renderTarget = GetRenderTarget(); - - if (ownedElement) - { - if (auto renderer = ownedElement->GetRenderer()) - { - renderer->SetRenderTarget(renderTarget); - } - } - - for (vint i = 0; i < children.Count(); i++) - { - children[i]->UpdateRelatedHostRecord(record); - } - - if (HasEventReceiver()) + if (!beforeHeaders->GetParent()) { - GetEventReceiver()->renderTargetChanged.Execute(GuiEventArgs(this)); + SafeDeleteComposition(beforeHeaders); } - if (associatedControl) + if (!afterHeaders->GetParent()) { - associatedControl->OnRenderTargetChanged(renderTarget); + SafeDeleteComposition(afterHeaders); } - - OnRenderContextChanged(); } - void GuiGraphicsComposition::SetAssociatedControl(controls::GuiControl* control) + compositions::GuiGraphicsComposition* GuiRibbonTab::GetBeforeHeaders() { - if (associatedControl) - { - for (vint i = 0; i < children.Count(); i++) - { - children[i]->OnControlParentChanged(0); - } - } - associatedControl = control; - if (associatedControl) - { - for (vint i = 0; i < children.Count(); i++) - { - children[i]->OnControlParentChanged(associatedControl); - } - } + return beforeHeaders; } - void GuiGraphicsComposition::InvokeOnCompositionStateChanged() + compositions::GuiGraphicsComposition* GuiRibbonTab::GetAfterHeaders() { - if (relatedHostRecord) - { - relatedHostRecord->host->RequestRender(); - } + return afterHeaders; } - bool GuiGraphicsComposition::SharedPtrDestructorProc(DescriptableObject* obj, bool forceDisposing) +/*********************************************************************** +GuiRibbonGroupCollection +***********************************************************************/ + + bool GuiRibbonGroupCollection::QueryInsert(vint index, GuiRibbonGroup* const& value) { - GuiGraphicsComposition* value=dynamic_cast(obj); - if(value->parent) - { - if (!forceDisposing) return false; - } - SafeDeleteComposition(value); - return true; + return !value->GetBoundsComposition()->GetParent(); } - GuiGraphicsComposition::GuiGraphicsComposition() + void GuiRibbonGroupCollection::AfterInsert(vint index, GuiRibbonGroup* const& value) { - sharedPtrDestructorProc = &GuiGraphicsComposition::SharedPtrDestructorProc; + value->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + + auto item = new GuiStackItemComposition(); + item->AddChild(value->GetBoundsComposition()); + + tabPage->stack->InsertStackItem(index, item); } - GuiGraphicsComposition::~GuiGraphicsComposition() + void GuiRibbonGroupCollection::AfterRemove(vint index, vint count) { - for(vint i=0;istack->GetStackItems()[index]; + tabPage->stack->RemoveChild(item); + + item->RemoveChild(item->Children()[0]); + delete item; } } - bool GuiGraphicsComposition::IsRendering() + GuiRibbonGroupCollection::GuiRibbonGroupCollection(GuiRibbonTabPage* _tabPage) + :tabPage(_tabPage) { - return isRendering; } - GuiGraphicsComposition* GuiGraphicsComposition::GetParent() + GuiRibbonGroupCollection::~GuiRibbonGroupCollection() { - return parent; } - const GuiGraphicsComposition::CompositionList& GuiGraphicsComposition::Children() - { - return children; - } +/*********************************************************************** +GuiRibbonTabPage +***********************************************************************/ - bool GuiGraphicsComposition::AddChild(GuiGraphicsComposition* child) + GuiRibbonTabPage::GuiRibbonTabPage(theme::ThemeName themeName) + :GuiTabPage(themeName) + , groups(this) { - return InsertChild(children.Count(), child); - } + stack = new GuiStackComposition(); + stack->SetDirection(GuiStackComposition::Horizontal); + stack->SetAlignmentToParent(Margin(2, 2, 2, 2)); + stack->SetPadding(2); + stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - bool GuiGraphicsComposition::InsertChild(vint index, GuiGraphicsComposition* child) - { - CHECK_ERROR(!isRendering, L"GuiGraphicsComposition::InsertChild(vint, GuiGraphicsComposition*)#Cannot modify composition tree during rendering."); - if (!child) return false; - if (child->GetParent()) return false; - children.Insert(index, child); + responsiveStack = new GuiResponsiveStackComposition(); + responsiveStack->SetDirection(ResponsiveDirection::Horizontal); + responsiveStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveStack->AddChild(stack); - // composition parent changed -> control parent changed -> related host changed - child->parent = this; - child->OnParentChanged(nullptr, this); - OnChildInserted(child); - child->UpdateRelatedHostRecord(relatedHostRecord); + responsiveContainer = new GuiResponsiveContainerComposition(); + responsiveContainer->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveContainer->SetResponsiveTarget(responsiveStack); - InvokeOnCompositionStateChanged(); - return true; + containerComposition->AddChild(responsiveContainer); + + HighlightedChanged.SetAssociatedComposition(boundsComposition); } - bool GuiGraphicsComposition::RemoveChild(GuiGraphicsComposition* child) + GuiRibbonTabPage::~GuiRibbonTabPage() { - CHECK_ERROR(!isRendering, L"GuiGraphicsComposition::InsertChild(vint, GuiGraphicsComposition*)#Cannot modify composition tree during rendering."); - if (!child) return false; - vint index = children.IndexOf(child); - if (index == -1) return false; + } - // composition parent changed -> control parent changed -> related host changed - child->parent = nullptr; - child->OnParentChanged(this, nullptr); - OnChildRemoved(child); - child->UpdateRelatedHostRecord(nullptr); + bool GuiRibbonTabPage::GetHighlighted() + { + return highlighted; + } - GuiGraphicsHost* host = GetRelatedGraphicsHost(); - if (host) + void GuiRibbonTabPage::SetHighlighted(bool value) + { + if (highlighted != value) { - host->DisconnectComposition(child); + highlighted = value; + HighlightedChanged.Execute(GetNotifyEventArguments()); } - children.RemoveAt(index); - InvokeOnCompositionStateChanged(); - return true; } - bool GuiGraphicsComposition::MoveChild(GuiGraphicsComposition* child, vint newIndex) + collections::ObservableListBase& GuiRibbonTabPage::GetGroups() { - if(!child) return false; - vint index=children.IndexOf(child); - if(index==-1) return false; - children.RemoveAt(index); - children.Insert(newIndex, child); - InvokeOnCompositionStateChanged(); - return true; + return groups; } - Ptr GuiGraphicsComposition::GetOwnedElement() +/*********************************************************************** +GuiRibbonGroupItemCollection +***********************************************************************/ + + bool GuiRibbonGroupItemCollection::QueryInsert(vint index, GuiControl* const& value) { - return ownedElement; + return !value->GetBoundsComposition()->GetParent(); } - void GuiGraphicsComposition::SetOwnedElement(Ptr element) + void GuiRibbonGroupItemCollection::AfterInsert(vint index, GuiControl* const& value) { - if (ownedElement != element) + value->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + + auto item = new GuiStackItemComposition(); + item->AddChild(value->GetBoundsComposition()); + + group->stack->InsertStackItem(index, item); + } + + void GuiRibbonGroupItemCollection::AfterRemove(vint index, vint count) + { + for (vint i = 0; i < count; i++) { - if (ownedElement) - { - if (auto renderer = ownedElement->GetRenderer()) - { - renderer->SetRenderTarget(nullptr); - } - ownedElement->SetOwnerComposition(nullptr); - } - ownedElement = element; - if (ownedElement) - { - if (auto renderer = ownedElement->GetRenderer()) - { - renderer->SetRenderTarget(GetRenderTarget()); - } - ownedElement->SetOwnerComposition(this); - } - InvokeOnCompositionStateChanged(); + auto item = group->stack->GetStackItems()[index]; + group->stack->RemoveChild(item); + + item->RemoveChild(item->Children()[0]); + delete item; } } - bool GuiGraphicsComposition::GetVisible() + GuiRibbonGroupItemCollection::GuiRibbonGroupItemCollection(GuiRibbonGroup* _group) + :group(_group) { - return visible; } - void GuiGraphicsComposition::SetVisible(bool value) + GuiRibbonGroupItemCollection::~GuiRibbonGroupItemCollection() { - visible = value; - InvokeOnCompositionStateChanged(); } - GuiGraphicsComposition::MinSizeLimitation GuiGraphicsComposition::GetMinSizeLimitation() +/*********************************************************************** +GuiRibbonGroup::CommandExecutor +***********************************************************************/ + + GuiRibbonGroup::CommandExecutor::CommandExecutor(GuiRibbonGroup* _group) + :group(_group) { - return minSizeLimitation; } - void GuiGraphicsComposition::SetMinSizeLimitation(MinSizeLimitation value) + GuiRibbonGroup::CommandExecutor::~CommandExecutor() { - minSizeLimitation = value; - InvokeOnCompositionStateChanged(); } - elements::IGuiGraphicsRenderTarget* GuiGraphicsComposition::GetRenderTarget() + void GuiRibbonGroup::CommandExecutor::NotifyExpandButtonClicked() { - return relatedHostRecord ? relatedHostRecord->renderTarget : nullptr; + group->ExpandButtonClicked.Execute(group->GetNotifyEventArguments()); } - void GuiGraphicsComposition::Render(Size offset) +/*********************************************************************** +GuiRibbonGroupMenu +***********************************************************************/ + + class GuiRibbonGroupMenu : public GuiMenu, public Description { - auto renderTarget = GetRenderTarget(); - if (visible && renderTarget && !renderTarget->IsClipperCoverWholeTarget()) + private: + IGuiMenuService::Direction GetPreferredDirection()override { - Rect bounds = GetBounds(); - bounds.x1 += margin.left; - bounds.y1 += margin.top; - bounds.x2 -= margin.right; - bounds.y2 -= margin.bottom; + return IGuiMenuService::Horizontal; + } - if (bounds.x1 <= bounds.x2 && bounds.y1 <= bounds.y2) - { - bounds.x1 += offset.x; - bounds.x2 += offset.x; - bounds.y1 += offset.y; - bounds.y2 += offset.y; + bool IsActiveState()override + { + return false; + } - isRendering = true; - if (ownedElement) - { - IGuiGraphicsRenderer* renderer = ownedElement->GetRenderer(); - if (renderer) - { - renderer->Render(bounds); - } - } - if (children.Count() > 0) - { - bounds.x1 += internalMargin.left; - bounds.y1 += internalMargin.top; - bounds.x2 -= internalMargin.right; - bounds.y2 -= internalMargin.bottom; - if (bounds.x1 <= bounds.x2 && bounds.y1 <= bounds.y2) - { - offset = bounds.GetSize(); - renderTarget->PushClipper(bounds); - if (!renderTarget->IsClipperCoverWholeTarget()) - { - for (vint i = 0; i < children.Count(); i++) - { - children[i]->Render(Size(bounds.x1, bounds.y1)); - } - } - renderTarget->PopClipper(); - } - } - isRendering = false; - } + public: + GuiRibbonGroupMenu(theme::ThemeName themeName, GuiControl* _owner) + :GuiMenu(themeName, _owner) + { } + }; + +/*********************************************************************** +GuiRibbonGroup +***********************************************************************/ + + void GuiRibbonGroup::BeforeControlTemplateUninstalled_() + { + auto ct = TypedControlTemplateObject(false); + if (!ct) return; + + ct->SetCommands(nullptr); } - GuiGraphicsEventReceiver* GuiGraphicsComposition::GetEventReceiver() + void GuiRibbonGroup::AfterControlTemplateInstalled_(bool initialize) { - if(!eventReceiver) - { - eventReceiver=new GuiGraphicsEventReceiver(this); - } - return eventReceiver.Obj(); + auto ct = TypedControlTemplateObject(true); + ct->SetExpandable(expandable); + ct->SetCollapsed(responsiveView->GetCurrentView() == responsiveFixedButton); + ct->SetCommands(commandExecutor.Obj()); + dropdownButton->SetControlTemplate(ct->GetLargeDropdownButtonTemplate()); + dropdownMenu->SetControlTemplate(ct->GetSubMenuTemplate()); } - bool GuiGraphicsComposition::HasEventReceiver() + bool GuiRibbonGroup::IsAltAvailable() { - return eventReceiver; + return alt != L""; } - GuiGraphicsComposition* GuiGraphicsComposition::FindComposition(Point location, bool forMouseEvent) + compositions::IGuiAltActionHost* GuiRibbonGroup::GetActivatingAltHost() { - if (!visible) return 0; - Rect bounds = GetBounds(); - Rect relativeBounds = Rect(Point(0, 0), bounds.GetSize()); - if (relativeBounds.Contains(location)) + if (IsAltAvailable()) { - Rect clientArea = GetClientArea(); - for (vint i = children.Count() - 1; i >= 0; i--) - { - GuiGraphicsComposition* child = children[i]; - Rect childBounds = child->GetBounds(); - vint offsetX = childBounds.x1 + (clientArea.x1 - bounds.x1); - vint offsetY = childBounds.y1 + (clientArea.y1 - bounds.y1); - Point newLocation = location - Size(offsetX, offsetY); - GuiGraphicsComposition* childResult = child->FindComposition(newLocation, forMouseEvent); - if (childResult) - { - return childResult; - } - } - - if (!forMouseEvent || !transparentToMouse) - { - return this; - } + return this; + } + else + { + return GuiControl::GetActivatingAltHost(); } - return nullptr; } - bool GuiGraphicsComposition::GetTransparentToMouse() + void GuiRibbonGroup::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return transparentToMouse; + dropdownMenu->GetBoundsComposition()->SetPreferredMinSize(Size(0, containerComposition->GetBounds().Height())); } - void GuiGraphicsComposition::SetTransparentToMouse(bool value) + void GuiRibbonGroup::OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - transparentToMouse = value; + dropdownButton->SetText(GetText()); } - Rect GuiGraphicsComposition::GetGlobalBounds() + void GuiRibbonGroup::OnBeforeSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - Rect bounds = GetBounds(); - GuiGraphicsComposition* composition = parent; - while (composition) + if (responsiveView->GetViews().Contains(responsiveFixedButton)) { - Rect clientArea = composition->GetClientArea(); - Rect parentBounds = composition->GetBounds(); - bounds.x1 += clientArea.x1; - bounds.x2 += clientArea.x1; - bounds.y1 += clientArea.y1; - bounds.y2 += clientArea.y1; - composition = composition->parent; + auto currentDropdown = dropdownMenu; + if (items.Count() == 1) + { + if (auto provider = items[0]->QueryTypedService()) + { + if (auto menu = provider->ProvideDropdownMenu()) + { + currentDropdown = menu; + } + } + } + dropdownButton->SetSubMenu(currentDropdown, false); } - return bounds; } - controls::GuiControl* GuiGraphicsComposition::GetAssociatedControl() + void GuiRibbonGroup::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) { - return associatedControl; - } + if (auto ct = TypedControlTemplateObject(false)) + { + ct->SetCollapsed(arguments.itemIndex == 1); + } - GuiGraphicsHost* GuiGraphicsComposition::GetAssociatedHost() - { - if (relatedHostRecord && relatedHostRecord->host->GetMainComposition() == this) + if (arguments.itemIndex == 0) { - return relatedHostRecord->host; + while (responsiveStack->LevelDown()); + dropdownMenu->GetContainerComposition()->RemoveChild(stack); + responsiveStack->AddChild(stack); + dropdownButton->SetSubMenu(nullptr, false); } else { - return nullptr; + while (responsiveStack->LevelUp()); + responsiveStack->RemoveChild(stack); + dropdownMenu->GetContainerComposition()->AddChild(stack); } } - INativeCursor* GuiGraphicsComposition::GetAssociatedCursor() + GuiRibbonGroup::GuiRibbonGroup(theme::ThemeName themeName) + :GuiControl(themeName) + , items(this) { - return associatedCursor; - } + SetAltComposition(boundsComposition); + SetAltControl(this, false); - void GuiGraphicsComposition::SetAssociatedCursor(INativeCursor* cursor) - { - associatedCursor = cursor; - } + commandExecutor = Ptr(new CommandExecutor(this)); + { + stack = new GuiStackComposition(); + stack->SetDirection(GuiStackComposition::Horizontal); + stack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stack->SetPadding(2); + stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - INativeWindowListener::HitTestResult GuiGraphicsComposition::GetAssociatedHitTestResult() - { - return associatedHitTestResult; - } + responsiveStack = new GuiResponsiveStackComposition(); + responsiveStack->SetDirection(ResponsiveDirection::Horizontal); + responsiveStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveStack->AddChild(stack); + } + { + dropdownButton = new GuiToolstripButton(theme::ThemeName::RibbonLargeDropdownButton); + dropdownButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - void GuiGraphicsComposition::SetAssociatedHitTestResult(INativeWindowListener::HitTestResult value) - { - associatedHitTestResult = value; + responsiveFixedButton = new GuiResponsiveFixedComposition(); + responsiveFixedButton->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveFixedButton->AddChild(dropdownButton->GetBoundsComposition()); + + dropdownMenu = new GuiRibbonGroupMenu(theme::ThemeName::Menu, dropdownButton); + } + + responsiveView = new GuiResponsiveViewComposition(); + responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveView->GetViews().Add(responsiveStack); + + containerComposition->AddChild(responsiveView); + + ExpandableChanged.SetAssociatedComposition(boundsComposition); + ExpandButtonClicked.SetAssociatedComposition(boundsComposition); + LargeImageChanged.SetAssociatedComposition(boundsComposition); + + TextChanged.AttachMethod(this, &GuiRibbonGroup::OnTextChanged); + boundsComposition->BoundsChanged.AttachMethod(this, &GuiRibbonGroup::OnBoundsChanged); + responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonGroup::OnBeforeSwitchingView); + dropdownButton->BeforeSubMenuOpening.AttachMethod(this, &GuiRibbonGroup::OnBeforeSubMenuOpening); } - controls::GuiControl* GuiGraphicsComposition::GetRelatedControl() + GuiRibbonGroup::~GuiRibbonGroup() { - GuiGraphicsComposition* composition = this; - while (composition) + if (!responsiveView->GetViews().Contains(responsiveFixedButton)) { - if (composition->GetAssociatedControl()) - { - return composition->GetAssociatedControl(); - } - else - { - composition = composition->GetParent(); - } + SafeDeleteComposition(responsiveFixedButton); } - return nullptr; + delete dropdownMenu; } - GuiGraphicsHost* GuiGraphicsComposition::GetRelatedGraphicsHost() + bool GuiRibbonGroup::GetExpandable() { - return relatedHostRecord ? relatedHostRecord->host : nullptr; + return expandable; } - controls::GuiControlHost* GuiGraphicsComposition::GetRelatedControlHost() + void GuiRibbonGroup::SetExpandable(bool value) { - if (auto control = GetRelatedControl()) + if (expandable != value) { - return control->GetRelatedControlHost(); + expandable = value; + TypedControlTemplateObject(true)->SetExpandable(expandable); + ExpandableChanged.Execute(GetNotifyEventArguments()); } - return nullptr; } - INativeCursor* GuiGraphicsComposition::GetRelatedCursor() + Ptr GuiRibbonGroup::GetLargeImage() { - GuiGraphicsComposition* composition = this; - while (composition) + return largeImage; + } + + void GuiRibbonGroup::SetLargeImage(Ptr value) + { + if (largeImage != value) { - if (composition->GetAssociatedCursor()) + largeImage = value; + dropdownButton->SetLargeImage(value); + LargeImageChanged.Execute(GetNotifyEventArguments()); + + if (value) { - return composition->GetAssociatedCursor(); + if (!responsiveView->GetViews().Contains(responsiveFixedButton)) + { + responsiveView->GetViews().Add(responsiveFixedButton); + } } else { - composition = composition->GetParent(); + if (responsiveView->GetViews().Contains(responsiveFixedButton)) + { + responsiveView->GetViews().Remove(responsiveFixedButton); + } } } - return nullptr; } - Margin GuiGraphicsComposition::GetMargin() + collections::ObservableListBase& GuiRibbonGroup::GetItems() { - return margin; + return items; } - void GuiGraphicsComposition::SetMargin(Margin value) - { - margin = value; - InvokeOnCompositionStateChanged(); - } +/*********************************************************************** +GuiRibbonIconLabel +***********************************************************************/ - Margin GuiGraphicsComposition::GetInternalMargin() + void GuiRibbonIconLabel::BeforeControlTemplateUninstalled_() { - return internalMargin; } - void GuiGraphicsComposition::SetInternalMargin(Margin value) + void GuiRibbonIconLabel::AfterControlTemplateInstalled_(bool initialize) { - internalMargin = value; - InvokeOnCompositionStateChanged(); + auto ct = TypedControlTemplateObject(true); + ct->SetImage(image); } - Size GuiGraphicsComposition::GetPreferredMinSize() + GuiRibbonIconLabel::GuiRibbonIconLabel(theme::ThemeName themeName) + :GuiControl(themeName) { - return preferredMinSize; + ImageChanged.SetAssociatedComposition(boundsComposition); } - void GuiGraphicsComposition::SetPreferredMinSize(Size value) + GuiRibbonIconLabel::~GuiRibbonIconLabel() { - preferredMinSize = value; - InvokeOnCompositionStateChanged(); } - Rect GuiGraphicsComposition::GetClientArea() + Ptr GuiRibbonIconLabel::GetImage() { - Rect bounds=GetBounds(); - bounds.x1+=margin.left+internalMargin.left; - bounds.y1+=margin.top+internalMargin.top; - bounds.x2-=margin.right+internalMargin.right; - bounds.y2-=margin.bottom+internalMargin.bottom; - return bounds; + return image; } - void GuiGraphicsComposition::ForceCalculateSizeImmediately() + void GuiRibbonIconLabel::SetImage(Ptr value) { - isRendering = true; - for (vint i = 0; i < children.Count(); i++) + if (image != value) { - children[i]->ForceCalculateSizeImmediately(); + image = value; + TypedControlTemplateObject(true)->SetImage(image); + ImageChanged.Execute(GetNotifyEventArguments()); } - isRendering = false; - InvokeOnCompositionStateChanged(); } /*********************************************************************** -GuiGraphicsSite +GuiRibbonButtonsItemCollection ***********************************************************************/ - Rect GuiGraphicsSite::GetBoundsInternal(Rect expectedBounds) + bool GuiRibbonButtonsItemCollection::QueryInsert(vint index, GuiControl* const& value) { - Size minSize = GetMinPreferredClientSize(); - if (minSize.x < preferredMinSize.x) minSize.x = preferredMinSize.x; - if (minSize.y < preferredMinSize.y) minSize.y = preferredMinSize.y; - - minSize.x += margin.left + margin.right + internalMargin.left + internalMargin.right; - minSize.y += margin.top + margin.bottom + internalMargin.top + internalMargin.bottom; - vint w = expectedBounds.Width(); - vint h = expectedBounds.Height(); - if (minSize.x < w) minSize.x = w; - if (minSize.y < h) minSize.y = h; - return Rect(expectedBounds.LeftTop(), minSize); + return !value->GetBoundsComposition()->GetParent(); } - void GuiGraphicsSite::UpdatePreviousBounds(Rect bounds) + void GuiRibbonButtonsItemCollection::AfterInsert(vint index, GuiControl* const& value) { - if (previousBounds != bounds) + buttons->responsiveView->GetSharedControls().Add(value); + buttons->SetButtonThemeName(buttons->responsiveView->GetCurrentView(), value); + + for (vint i = 0; i < sizeof(buttons->views) / sizeof(*buttons->views); i++) { - previousBounds = bounds; - BoundsChanged.Execute(GuiEventArgs(this)); - InvokeOnCompositionStateChanged(); + if (auto view = buttons->views[i]) + { + auto stack = dynamic_cast(view->Children()[0]); + + auto shared = new GuiResponsiveSharedComposition(); + shared->SetAlignmentToParent(Margin(0, 0, 0, 0)); + shared->SetShared(value); + + auto item = new GuiStackItemComposition(); + item->AddChild(shared); + + stack->InsertStackItem(index, item); + } } } - GuiGraphicsSite::GuiGraphicsSite() + void GuiRibbonButtonsItemCollection::BeforeRemove(vint index, GuiControl* const& value) { - BoundsChanged.SetAssociatedComposition(this); + CHECK_FAIL(L"GuiRibbonButtonsItemCollection::BeforeRemove(vint, GuiControl* const&)#Controls are not allowed to be removed from GuiRibbonButtons."); } - GuiGraphicsSite::~GuiGraphicsSite() + GuiRibbonButtonsItemCollection::GuiRibbonButtonsItemCollection(GuiRibbonButtons* _buttons) + :buttons(_buttons) { } - bool GuiGraphicsSite::IsSizeAffectParent() + GuiRibbonButtonsItemCollection::~GuiRibbonButtonsItemCollection() { - return true; - } - - Size GuiGraphicsSite::GetMinPreferredClientSize() - { - Size minSize; - if (minSizeLimitation != GuiGraphicsComposition::NoLimit) - { - if (ownedElement) - { - IGuiGraphicsRenderer* renderer = ownedElement->GetRenderer(); - if (renderer) - { - minSize = renderer->GetMinSize(); - } - } - } - if (minSizeLimitation == GuiGraphicsComposition::LimitToElementAndChildren) - { - vint childCount = Children().Count(); - for (vint i = 0; i < childCount; i++) - { - GuiGraphicsComposition* child = children[i]; - if (child->IsSizeAffectParent()) - { - Rect childBounds = child->GetPreferredBounds(); - if (minSize.x < childBounds.x2) minSize.x = childBounds.x2; - if (minSize.y < childBounds.y2) minSize.y = childBounds.y2; - } - } - } - return minSize; - } - - Rect GuiGraphicsSite::GetPreferredBounds() - { - return GetBoundsInternal(Rect(Point(0, 0), GetMinPreferredClientSize())); } /*********************************************************************** -Helper Functions +GuiRibbonButtons ***********************************************************************/ - void NotifyFinalizeInstance(controls::GuiControl* value) - { - if (value) - { - NotifyFinalizeInstance(value->GetBoundsComposition()); - } - } - - void NotifyFinalizeInstance(GuiGraphicsComposition* value) - { - if (value) - { - bool finalized = false; - if (auto root = dynamic_cast(value)) - { - if (root->IsFinalized()) - { - finalized = true; - } - else - { - root->FinalizeInstance(); - } - } - - if (auto control = value->GetAssociatedControl()) - { - if (auto root = dynamic_cast(control)) - { - if (root->IsFinalized()) - { - finalized = true; - } - else - { - root->FinalizeInstance(); - } - } - } - - if (!finalized) - { - vint count = value->Children().Count(); - for (vint i = 0; i < count; i++) - { - NotifyFinalizeInstance(value->Children()[i]); - } - } - } - } - - void SafeDeleteControlInternal(controls::GuiControl* value) + void GuiRibbonButtons::BeforeControlTemplateUninstalled_() { - if(value) - { - if (value->GetRelatedControlHost() != value) - { - GuiGraphicsComposition* bounds = value->GetBoundsComposition(); - if (bounds->GetParent()) - { - bounds->GetParent()->RemoveChild(bounds); - } - } - delete value; - } } - void SafeDeleteCompositionInternal(GuiGraphicsComposition* value) + void GuiRibbonButtons::AfterControlTemplateInstalled_(bool initialize) { - if (value) + for (auto button : buttons) { - if (value->GetParent()) - { - value->GetParent()->RemoveChild(value); - } - - if (value->GetAssociatedControl()) - { - SafeDeleteControlInternal(value->GetAssociatedControl()); - } - else - { - for (vint i = value->Children().Count() - 1; i >= 0; i--) - { - SafeDeleteCompositionInternal(value->Children().Get(i)); - } - delete value; - } + SetButtonThemeName(responsiveView->GetCurrentView(), button); } } - void SafeDeleteControl(controls::GuiControl* value) + void GuiRibbonButtons::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) { - if (auto controlHost = dynamic_cast(value)) - { - controlHost->DeleteAfterProcessingAllEvents(); - } - else + for (auto button : buttons) { - NotifyFinalizeInstance(value); - SafeDeleteControlInternal(value); + SetButtonThemeName(responsiveView->GetViews()[arguments.itemIndex], button); } } - void SafeDeleteComposition(GuiGraphicsComposition* value) - { - NotifyFinalizeInstance(value); - SafeDeleteCompositionInternal(value); - } - } - } -} - -/*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSEVENTRECEIVER.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace compositions - { - -/*********************************************************************** -Event Receiver -***********************************************************************/ - - GuiGraphicsEventReceiver::GuiGraphicsEventReceiver(GuiGraphicsComposition* _sender) - :sender(_sender) - ,leftButtonDown(_sender) - ,leftButtonUp(_sender) - ,leftButtonDoubleClick(_sender) - ,middleButtonDown(_sender) - ,middleButtonUp(_sender) - ,middleButtonDoubleClick(_sender) - ,rightButtonDown(_sender) - ,rightButtonUp(_sender) - ,rightButtonDoubleClick(_sender) - ,horizontalWheel(_sender) - ,verticalWheel(_sender) - ,mouseMove(_sender) - ,mouseEnter(_sender) - ,mouseLeave(_sender) - ,previewKey(_sender) - ,keyDown(_sender) - ,keyUp(_sender) - ,systemKeyDown(_sender) - ,systemKeyUp(_sender) - ,previewCharInput(_sender) - ,charInput(_sender) - ,gotFocus(_sender) - ,lostFocus(_sender) - ,caretNotify(_sender) - ,clipboardNotify(_sender) - { - } - - GuiGraphicsEventReceiver::~GuiGraphicsEventReceiver() - { - } - - GuiGraphicsComposition* GuiGraphicsEventReceiver::GetAssociatedComposition() - { - return sender; - } - } - } -} - -/*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSFLOWCOMPOSITION.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace compositions - { - using namespace collections; - -/*********************************************************************** -GuiFlowComposition -***********************************************************************/ - - void GuiFlowComposition::UpdateFlowItemBounds(bool forceUpdate) + void GuiRibbonButtons::SetButtonThemeName(compositions::GuiResponsiveCompositionBase* fixed, GuiControl* button) { - if (forceUpdate || needUpdate) + if (fixed && button) { - needUpdate = false; - InvokeOnCompositionStateChanged(); - - auto clientMargin = axis->RealMarginToVirtualMargin(extraMargin); - if (clientMargin.left < 0) clientMargin.left = 0; - if (clientMargin.top < 0) clientMargin.top = 0; - if (clientMargin.right < 0) clientMargin.right = 0; - if (clientMargin.bottom < 0) clientMargin.bottom = 0; - - auto realFullSize = previousBounds.GetSize(); - auto clientSize = axis->RealSizeToVirtualSize(realFullSize); - clientSize.x -= (clientMargin.left + clientMargin.right); - clientSize.y -= (clientMargin.top + clientMargin.bottom); - - flowItemBounds.Resize(flowItems.Count()); - for (vint i = 0; i < flowItems.Count(); i++) + auto themeName = button->GetControlThemeName(); + vint type = -1; + switch (themeName) { - flowItemBounds[i] = Rect(Point(0, 0), flowItems[i]->GetMinSize()); + case ThemeName::RibbonLargeButton: + case ThemeName::RibbonSmallButton: + case ThemeName::ToolstripButton: + type = 0; + break; + case ThemeName::RibbonLargeDropdownButton: + case ThemeName::RibbonSmallDropdownButton: + case ThemeName::ToolstripDropdownButton: + type = 1; + break; + case ThemeName::RibbonLargeSplitButton: + case ThemeName::RibbonSmallSplitButton: + case ThemeName::ToolstripSplitButton: + type = 2; + break; + case ThemeName::RibbonSmallIconLabel: + case ThemeName::RibbonIconLabel: + type = 3; + break; + default:; } - vint currentIndex = 0; - vint rowTop = 0; - - while (currentIndex < flowItems.Count()) + if (type != -1) { - auto itemSize = axis->RealSizeToVirtualSize(flowItemBounds[currentIndex].GetSize()); - vint rowWidth = itemSize.x; - vint rowHeight = itemSize.y; - vint rowItemCount = 1; + ThemeName themeName = ThemeName::Unknown; + TemplateProperty controlTemplate; - for (vint i = currentIndex + 1; i < flowItems.Count(); i++) + if (fixed == views[(vint)RibbonButtonSize::Large]) { - itemSize = axis->RealSizeToVirtualSize(flowItemBounds[i].GetSize()); - vint itemWidth = itemSize.x + columnPadding; - if (rowWidth + itemWidth > clientSize.x) - { - break; - } - rowWidth += itemWidth; - if (rowHeight < itemSize.y) + switch (type) { - rowHeight = itemSize.y; + case 0: themeName = ThemeName::RibbonLargeButton; break; + case 1: themeName = ThemeName::RibbonLargeDropdownButton; break; + case 2: themeName = ThemeName::RibbonLargeSplitButton; break; + case 3: themeName = ThemeName::RibbonSmallIconLabel; break; } - rowItemCount++; } - - vint baseLine = 0; - Array itemBaseLines(rowItemCount); - for (vint i = 0; i < rowItemCount; i++) + else if (fixed == views[(vint)RibbonButtonSize::Small]) { - vint index = currentIndex + i; - vint itemBaseLine = 0; - itemSize = axis->RealSizeToVirtualSize(flowItemBounds[index].GetSize()); - - auto option = flowItems[index]->GetFlowOption(); - switch (option.baseline) + switch (type) { - case GuiFlowOption::FromTop: - itemBaseLine = option.distance; - break; - case GuiFlowOption::FromBottom: - itemBaseLine = itemSize.y - option.distance; - break; - case GuiFlowOption::Percentage: - itemBaseLine = (vint)(itemSize.y*option.percentage); - break; + case 0: themeName = ThemeName::RibbonSmallButton; break; + case 1: themeName = ThemeName::RibbonSmallDropdownButton; break; + case 2: themeName = ThemeName::RibbonSmallSplitButton; break; + case 3: themeName = ThemeName::RibbonSmallIconLabel; break; } - - itemBaseLines[i] = itemBaseLine; - if (baseLine < itemBaseLine) + } + else if (fixed == views[(vint)RibbonButtonSize::Icon]) + { + switch (type) { - baseLine = itemBaseLine; + case 0: themeName = ThemeName::ToolstripButton; break; + case 1: themeName = ThemeName::ToolstripDropdownButton; break; + case 2: themeName = ThemeName::ToolstripSplitButton; break; + case 3: themeName = ThemeName::RibbonIconLabel; break; } } - vint rowUsedWidth = 0; - for (vint i = 0; i < rowItemCount; i++) + if (auto ct = TypedControlTemplateObject(false)) { - vint index = currentIndex + i; - itemSize = axis->RealSizeToVirtualSize(flowItemBounds[index].GetSize()); - - vint itemLeft = 0; - vint itemTop = rowTop + baseLine - itemBaseLines[i]; - - switch (alignment) + if (fixed == views[(vint)RibbonButtonSize::Large]) { - case FlowAlignment::Left: - itemLeft = rowUsedWidth + i * columnPadding; - break; - case FlowAlignment::Center: - itemLeft = rowUsedWidth + i * columnPadding + (clientSize.x - rowWidth) / 2; - break; - case FlowAlignment::Extend: - if (i == 0) + switch (type) { - itemLeft = rowUsedWidth; + case 0: controlTemplate = ct->GetLargeButtonTemplate(); break; + case 1: controlTemplate = ct->GetLargeDropdownButtonTemplate(); break; + case 2: controlTemplate = ct->GetLargeSplitButtonTemplate(); break; + case 3: controlTemplate = ct->GetSmallIconLabelTemplate(); break; } - else + } + else if (fixed == views[(vint)RibbonButtonSize::Small]) + { + switch (type) { - itemLeft = rowUsedWidth + (vint)((double)(clientSize.x - rowWidth) * i / (rowItemCount - 1)) + i * columnPadding; + case 0: controlTemplate = ct->GetSmallButtonTemplate(); break; + case 1: controlTemplate = ct->GetSmallDropdownButtonTemplate(); break; + case 2: controlTemplate = ct->GetSmallSplitButtonTemplate(); break; + case 3: controlTemplate = ct->GetSmallIconLabelTemplate(); break; + } + } + else if (fixed == views[(vint)RibbonButtonSize::Icon]) + { + switch (type) + { + case 0: controlTemplate = ct->GetIconButtonTemplate(); break; + case 1: controlTemplate = ct->GetIconDropdownButtonTemplate(); break; + case 2: controlTemplate = ct->GetIconSplitButtonTemplate(); break; + case 3: controlTemplate = ct->GetIconLabelTemplate(); break; } - break; } - - flowItemBounds[index] = axis->VirtualRectToRealRect( - realFullSize, - Rect( - Point( - itemLeft + clientMargin.left, - itemTop + clientMargin.top - ), - itemSize - ) - ); - rowUsedWidth += itemSize.x; } - rowTop += rowHeight + rowPadding; - currentIndex += rowItemCount; + button->SetControlThemeNameAndTemplate(themeName, controlTemplate); } - - minHeight = rowTop == 0 ? 0 : rowTop - rowPadding; } } - void GuiFlowComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) + GuiRibbonButtons::GuiRibbonButtons(theme::ThemeName themeName, RibbonButtonSize _maxSize, RibbonButtonSize _minSize) + :GuiControl(themeName) + , maxSize(_maxSize) + , minSize(_minSize) + , buttons(this) { - UpdateFlowItemBounds(true); - } + responsiveView = new GuiResponsiveViewComposition(); + responsiveView->SetDirection(ResponsiveDirection::Horizontal); + responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonButtons::OnBeforeSwitchingView); - void GuiFlowComposition::OnChildInserted(GuiGraphicsComposition* child) - { - GuiBoundsComposition::OnChildInserted(child); - auto item = dynamic_cast(child); - if (item && !flowItems.Contains(item)) + auto installButton = [&](GuiTableComposition* table, vint row, vint column, GuiControl* buttonContainer) { - flowItems.Add(item); - needUpdate = true; - } - } + auto shared = new GuiResponsiveSharedComposition(); + shared->SetAlignmentToParent(Margin(0, 0, 0, 0)); + shared->SetShared(buttonContainer); - void GuiFlowComposition::OnChildRemoved(GuiGraphicsComposition* child) - { - GuiBoundsComposition::OnChildRemoved(child); - auto item = dynamic_cast(child); - if (item) + auto cell = new GuiCellComposition(); + cell->SetSite(row, column, 1, 1); + cell->AddChild(shared); + + table->AddChild(cell); + }; + + for (vint i = 0; i < sizeof(views) / sizeof(*views); i++) { - flowItems.Remove(item); - needUpdate = true; + if ((vint)maxSize <= i && i <= (vint)minSize) + { + auto stack = new GuiStackComposition(); + stack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + stack->SetDirection(i == 0 ? GuiStackComposition::Horizontal : GuiStackComposition::Vertical); + + views[i] = new GuiResponsiveFixedComposition(); + views[i]->AddChild(stack); + responsiveView->GetViews().Add(views[i]); + } } - } - GuiFlowComposition::GuiFlowComposition() - :axis(new GuiDefaultAxis) - { - BoundsChanged.AttachMethod(this, &GuiFlowComposition::OnBoundsChanged); - } + auto sharedSizeRootComposition = new GuiSharedSizeRootComposition(); + sharedSizeRootComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + sharedSizeRootComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + sharedSizeRootComposition->AddChild(responsiveView); - GuiFlowComposition::~GuiFlowComposition() - { + containerComposition->AddChild(sharedSizeRootComposition); } - const GuiFlowComposition::ItemCompositionList& GuiFlowComposition::GetFlowItems() + GuiRibbonButtons::~GuiRibbonButtons() { - return flowItems; } - bool GuiFlowComposition::InsertFlowItem(vint index, GuiFlowItemComposition* item) + collections::ObservableListBase& GuiRibbonButtons::GetButtons() { - index = flowItems.Insert(index, item); - if (!AddChild(item)) - { - flowItems.RemoveAt(index); - return false; - } - else - { - needUpdate = true; - return true; - } + return buttons; } +/*********************************************************************** +GuiRibbonToolstripsGroupCollection +***********************************************************************/ - Margin GuiFlowComposition::GetExtraMargin() + bool GuiRibbonToolstripsGroupCollection::QueryInsert(vint index, GuiToolstripGroup* const& value) { - return extraMargin; + return !value->GetBoundsComposition()->GetParent(); } - void GuiFlowComposition::SetExtraMargin(Margin value) + void GuiRibbonToolstripsGroupCollection::AfterInsert(vint index, GuiToolstripGroup* const& value) { - extraMargin = value; - needUpdate = true; - InvokeOnCompositionStateChanged(); + toolstrips->RearrangeToolstripGroups(); } - vint GuiFlowComposition::GetRowPadding() + void GuiRibbonToolstripsGroupCollection::AfterRemove(vint index, vint count) { - return rowPadding; + toolstrips->RearrangeToolstripGroups(); } - void GuiFlowComposition::SetRowPadding(vint value) + GuiRibbonToolstripsGroupCollection::GuiRibbonToolstripsGroupCollection(GuiRibbonToolstrips* _toolstrips) + :toolstrips(_toolstrips) { - rowPadding = value; - needUpdate = true; - InvokeOnCompositionStateChanged(); } - vint GuiFlowComposition::GetColumnPadding() + GuiRibbonToolstripsGroupCollection::~GuiRibbonToolstripsGroupCollection() { - return columnPadding; } - void GuiFlowComposition::SetColumnPadding(vint value) - { - columnPadding = value; - needUpdate = true; - InvokeOnCompositionStateChanged(); - } +/*********************************************************************** +GuiRibbonToolstrips +***********************************************************************/ - Ptr GuiFlowComposition::GetAxis() +#define ARRLEN(X) sizeof(X) / sizeof(*X) + + void GuiRibbonToolstrips::BeforeControlTemplateUninstalled_() { - return axis; } - void GuiFlowComposition::SetAxis(Ptr value) + void GuiRibbonToolstrips::AfterControlTemplateInstalled_(bool initialize) { - if (value) + auto ct = TypedControlTemplateObject(true); + for (vint i = 0; i < ARRLEN(toolbars); i++) { - axis = value; - needUpdate = true; - InvokeOnCompositionStateChanged(); + toolbars[i]->SetControlTemplate(ct->GetToolbarTemplate()); } } - FlowAlignment GuiFlowComposition::GetAlignment() + void GuiRibbonToolstrips::OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) { - return alignment; + RearrangeToolstripGroups(arguments.itemIndex); } - void GuiFlowComposition::SetAlignment(FlowAlignment value) + void GuiRibbonToolstrips::RearrangeToolstripGroups(vint viewIndex) { - alignment = value; - needUpdate = true; - InvokeOnCompositionStateChanged(); - } + static_assert(ARRLEN(longContainers) == 2, ""); + static_assert(ARRLEN(shortContainers) == 3, ""); - void GuiFlowComposition::ForceCalculateSizeImmediately() - { - GuiBoundsComposition::ForceCalculateSizeImmediately(); - UpdateFlowItemBounds(true); - } - - Size GuiFlowComposition::GetMinPreferredClientSize() - { - Size minSize = GuiBoundsComposition::GetMinPreferredClientSize(); - if (GetMinSizeLimitation() == GuiGraphicsComposition::LimitToElementAndChildren) + if (viewIndex == -1) { - auto clientSize = axis->VirtualSizeToRealSize(Size(0, minHeight)); - for (auto item : flowItems) + viewIndex = responsiveView->GetViews().IndexOf(responsiveView->GetCurrentView()); + } + + for (vint i = 0; i < ARRLEN(longContainers); i++) + { + longContainers[i]->GetToolstripItems().Clear(); + } + for (vint i = 0; i < ARRLEN(shortContainers); i++) + { + shortContainers[i]->GetToolstripItems().Clear(); + } + + vint count = viewIndex == 0 ? 2 : 3; + + if (groups.Count() <= count) + { + auto containers = viewIndex == 0 ? longContainers : shortContainers; + for (vint i = 0; i < groups.Count(); i++) { - auto itemSize = item->GetPreferredBounds().GetSize(); - if (clientSize.x < itemSize.x) clientSize.x = itemSize.x; - if (clientSize.y < itemSize.y) clientSize.y = itemSize.y; + containers[i]->GetToolstripItems().Add(groups[i]); } - if (minSize.x < clientSize.x) minSize.x = clientSize.x; - if (minSize.y < clientSize.y) minSize.y = clientSize.y; } + else if (count == 3) + { +#define DELTA(POSTFIX) (abs(count1##POSTFIX - count2##POSTFIX) + abs(count2##POSTFIX - count3##POSTFIX) + abs(count3##POSTFIX - count1##POSTFIX)) +#define DEFINE_COUNT(POSTFIX, OFFSET_FIRST, OFFSET_LAST) \ + vint count1##POSTFIX = count1_o + (OFFSET_FIRST); \ + vint count2##POSTFIX = count2_o - (OFFSET_FIRST) - (OFFSET_LAST); \ + vint count3##POSTFIX = count3_o + (OFFSET_LAST) +#define MIN(a, b) (a)<(b)?(a):(b) - vint x = 0; - vint y = 0; - if (extraMargin.left > 0) x += extraMargin.left; - if (extraMargin.right > 0) x += extraMargin.right; - if (extraMargin.top > 0) y += extraMargin.top; - if (extraMargin.bottom > 0) y += extraMargin.bottom; - return minSize + Size(x, y); - } + vint firstGroupCount = 0; + vint lastGroupCount = 0; - Rect GuiFlowComposition::GetBounds() - { - if (!needUpdate) - { - for (vint i = 0; i < flowItems.Count(); i++) + vint count1_o = 0; + vint count2_o = From(groups) + .Select([](GuiToolstripGroup* group) {return group->GetToolstripItems().Count(); }) + .Aggregate([](vint a, vint b) {return a + b; }); + vint count3_o = 0; + vint delta_o = DELTA(_o); + + while (firstGroupCount + lastGroupCount < groups.Count()) { - if (flowItemBounds[i].GetSize() != flowItems[i]->GetMinSize()) + auto newFirstGroup = groups[firstGroupCount]; + auto newLastGroup = groups[groups.Count() - lastGroupCount - 1]; + + DEFINE_COUNT(_f, newFirstGroup->GetToolstripItems().Count(), 0); + vint delta_f = DELTA(_f); + + DEFINE_COUNT(_l, 0, newLastGroup->GetToolstripItems().Count()); + vint delta_l = DELTA(_l); + + vint delta = MIN(delta_o, MIN(delta_f, delta_l)); + if (delta == delta_f) + { + firstGroupCount++; + count1_o = count1_f; + count2_o = count2_f; + count3_o = count3_f; + delta_o = delta_f; + } + else if (delta == delta_l) + { + lastGroupCount++; + count1_o = count1_l; + count2_o = count2_l; + count3_o = count3_l; + delta_o = delta_l; + } + else { - needUpdate = true; break; } } - } - if (needUpdate) - { - UpdateFlowItemBounds(true); - } + vint minMiddle = firstGroupCount; + vint maxMiddle = groups.Count() - lastGroupCount - 1; + for (vint j = 0; j < groups.Count(); j++) + { + shortContainers[ + j < minMiddle ? 0 : + j>maxMiddle ? 2 : + 1 + ]->GetToolstripItems().Add(groups[j]); + } - bounds = GuiBoundsComposition::GetBounds(); - return bounds; - } +#undef MIN +#undef DEFINE_COUNT +#undef DELTA + } + else if (count == 2) + { + vint firstGroupCount = groups.Count(); + { + vint count1 = 0; + vint count2 = From(groups) + .Select([](GuiToolstripGroup* group) {return group->GetToolstripItems().Count(); }) + .Aggregate([](vint a, vint b) {return a + b; }); + vint delta = abs(count2 - count1); -/*********************************************************************** -GuiFlowItemComposition -***********************************************************************/ + for (vint i = 0; i < groups.Count(); i++) + { + auto groupCount = groups[i]->GetToolstripItems().Count(); + vint count1_2 = count1 + groupCount; + vint count2_2 = count2 - groupCount; + vint delta_2 = abs(count2_2 - count1_2); - void GuiFlowItemComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) - { - GuiGraphicsSite::OnParentChanged(oldParent, newParent); - flowParent = newParent == 0 ? 0 : dynamic_cast(newParent); - } + if (delta < delta_2) + { + firstGroupCount = i; + break; + } - Size GuiFlowItemComposition::GetMinSize() - { - return GetBoundsInternal(bounds).GetSize(); - } + count1 = count1_2; + count2 = count2_2; + delta = delta_2; + } + } - GuiFlowItemComposition::GuiFlowItemComposition() - { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + for (vint j = 0; j < groups.Count(); j++) + { + longContainers[j < firstGroupCount ? 0 : 1]->GetToolstripItems().Add(groups[j]); + } + } } - GuiFlowItemComposition::~GuiFlowItemComposition() - { - } - - bool GuiFlowItemComposition::IsSizeAffectParent() + GuiRibbonToolstrips::GuiRibbonToolstrips(theme::ThemeName themeName) + :GuiControl(themeName) + , groups(this) { - return false; - } + responsiveView = new GuiResponsiveViewComposition(); + responsiveView->SetDirection(ResponsiveDirection::Horizontal); + responsiveView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + responsiveView->BeforeSwitchingView.AttachMethod(this, &GuiRibbonToolstrips::OnBeforeSwitchingView); - Rect GuiFlowItemComposition::GetBounds() - { - Rect result = bounds; - if(flowParent) + vint toolbarIndex = 0; + for (vint i = 0; i < sizeof(views) / sizeof(*views); i++) { - flowParent->UpdateFlowItemBounds(false); - vint index = flowParent->flowItems.IndexOf(this); - if (index != -1) + auto containers = i == 0 ? longContainers : shortContainers; + vint count = i == 0 ? 2 : 3; + + auto table = new GuiTableComposition(); + table->SetAlignmentToParent(Margin(0, 0, 0, 0)); + table->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + + table->SetRowsAndColumns(count * 2 + 1, 1); + table->SetColumnOption(0, GuiCellOption::MinSizeOption()); + table->SetRowOption(0, GuiCellOption::PercentageOption(1.0)); + for (vint j = 0; j < count; j++) { - result = flowParent->flowItemBounds[index]; + table->SetRowOption(j * 2 + 1, GuiCellOption::MinSizeOption()); + table->SetRowOption(j * 2 + 2, GuiCellOption::PercentageOption(1.0)); } - result = Rect( - result.Left() - extraMargin.left, - result.Top() - extraMargin.top, - result.Right() + extraMargin.right, - result.Bottom() + extraMargin.bottom - ); - } - UpdatePreviousBounds(result); - return result; - } + for (vint j = 0; j < count; j++) + { + auto toolbar = new GuiToolstripToolBar(theme::ThemeName::ToolstripToolBar); + toolbar->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + toolbars[toolbarIndex++] = toolbar; - void GuiFlowItemComposition::SetBounds(Rect value) - { - bounds = value; - InvokeOnCompositionStateChanged(); - } + auto cell = new GuiCellComposition(); + cell->SetSite(j * 2 + 1, 0, 1, 1); + cell->AddChild(toolbar->GetBoundsComposition()); + table->AddChild(cell); - Margin GuiFlowItemComposition::GetExtraMargin() - { - return extraMargin; - } + auto container = new GuiToolstripGroupContainer(theme::ThemeName::CustomControl); + toolbar->GetToolstripItems().Add(container); + containers[j] = container; + } - void GuiFlowItemComposition::SetExtraMargin(Margin value) - { - extraMargin = value; - InvokeOnCompositionStateChanged(); + views[i] = new GuiResponsiveFixedComposition(); + views[i]->AddChild(table); + responsiveView->GetViews().Add(views[i]); + } + + containerComposition->AddChild(responsiveView); } - GuiFlowOption GuiFlowItemComposition::GetFlowOption() + GuiRibbonToolstrips::~GuiRibbonToolstrips() { - return option; } - void GuiFlowItemComposition::SetFlowOption(GuiFlowOption value) + collections::ObservableListBase& GuiRibbonToolstrips::GetGroups() { - option = value; - if (flowParent) - { - flowParent->needUpdate = true; - InvokeOnCompositionStateChanged(); - } + return groups; } - } - } -} - -/*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSREPEATCOMPOSITION.CPP -***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace compositions - { - using namespace reflection::description; - using namespace collections; - using namespace controls; - using namespace elements; +#undef ARRLEN /*********************************************************************** -GuiRepeatCompositionBase +GuiRibbonGallery::CommandExecutor ***********************************************************************/ - void GuiRepeatCompositionBase::OnItemChanged(vint index, vint oldCount, vint newCount) + GuiRibbonGallery::CommandExecutor::CommandExecutor(GuiRibbonGallery* _gallery) + :gallery(_gallery) { - if (itemTemplate && itemSource) - { - for (vint i = oldCount - 1; i >= 0; i--) - { - RemoveItem(index + i); - } - - for (vint i = 0; i < newCount; i++) - { - InstallItem(index + i); - } - } } - void GuiRepeatCompositionBase::RemoveItem(vint index) + GuiRibbonGallery::CommandExecutor::~CommandExecutor() { - GuiItemEventArgs arguments(dynamic_cast(this)); - arguments.itemIndex = index; - ItemRemoved.Execute(arguments); - - auto item = RemoveRepeatComposition(index); - SafeDeleteComposition(item); } - void GuiRepeatCompositionBase::InstallItem(vint index) + void GuiRibbonGallery::CommandExecutor::NotifyScrollUp() { - auto source = itemSource->Get(index); - auto templateItem = itemTemplate(source); - auto item = InsertRepeatComposition(index); + gallery->RequestedScrollUp.Execute(gallery->GetNotifyEventArguments()); + } - templateItem->SetAlignmentToParent(Margin(0, 0, 0, 0)); - item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - item->AddChild(templateItem); + void GuiRibbonGallery::CommandExecutor::NotifyScrollDown() + { + gallery->RequestedScrollDown.Execute(gallery->GetNotifyEventArguments()); + } - GuiItemEventArgs arguments(dynamic_cast(this)); - arguments.itemIndex = index; - ItemInserted.Execute(arguments); + void GuiRibbonGallery::CommandExecutor::NotifyDropdown() + { + gallery->RequestedDropdown.Execute(gallery->GetNotifyEventArguments()); } - void GuiRepeatCompositionBase::ClearItems() +/*********************************************************************** +GuiRibbonGallery +***********************************************************************/ + + void GuiRibbonGallery::BeforeControlTemplateUninstalled_() { - for (vint i = GetRepeatCompositionCount() - 1; i >= 0; i--) - { - RemoveItem(i); - } + auto ct = TypedControlTemplateObject(false); + if (!ct) return; + + ct->SetCommands(nullptr); } - void GuiRepeatCompositionBase::InstallItems() + void GuiRibbonGallery::AfterControlTemplateInstalled_(bool initialize) { - if (itemTemplate && itemSource) - { - vint count = itemSource->GetCount(); - for (vint i = 0; i < count; i++) - { - InstallItem(i); - } - } + auto ct = TypedControlTemplateObject(true); + ct->SetCommands(commandExecutor.Obj()); + ct->SetScrollUpEnabled(scrollUpEnabled); + ct->SetScrollDownEnabled(scrollDownEnabled); } - GuiRepeatCompositionBase::GuiRepeatCompositionBase() + GuiRibbonGallery::GuiRibbonGallery(theme::ThemeName themeName) + :GuiControl(themeName) { + commandExecutor = Ptr(new CommandExecutor(this)); + + ScrollUpEnabledChanged.SetAssociatedComposition(boundsComposition); + ScrollDownEnabledChanged.SetAssociatedComposition(boundsComposition); + RequestedScrollUp.SetAssociatedComposition(boundsComposition); + RequestedScrollDown.SetAssociatedComposition(boundsComposition); + RequestedDropdown.SetAssociatedComposition(boundsComposition); } - GuiRepeatCompositionBase::~GuiRepeatCompositionBase() + GuiRibbonGallery::~GuiRibbonGallery() { - if (itemChangedHandler) - { - itemSource.Cast()->ItemChanged.Remove(itemChangedHandler); - } } - GuiRepeatCompositionBase::ItemStyleProperty GuiRepeatCompositionBase::GetItemTemplate() + bool GuiRibbonGallery::GetScrollUpEnabled() { - return itemTemplate; + return scrollUpEnabled; } - void GuiRepeatCompositionBase::SetItemTemplate(ItemStyleProperty value) + void GuiRibbonGallery::SetScrollUpEnabled(bool value) { - ClearItems(); - itemTemplate = value; - if (itemTemplate && itemSource) + if (scrollUpEnabled != value) { - InstallItems(); + scrollUpEnabled = value; + TypedControlTemplateObject(true)->SetScrollUpEnabled(value); } } - Ptr GuiRepeatCompositionBase::GetItemSource() + bool GuiRibbonGallery::GetScrollDownEnabled() { - return itemSource; + return scrollDownEnabled; } - void GuiRepeatCompositionBase::SetItemSource(Ptr value) + void GuiRibbonGallery::SetScrollDownEnabled(bool value) { - if (value != itemSource) + if (scrollDownEnabled != value) { - if (itemChangedHandler) - { - itemSource.Cast()->ItemChanged.Remove(itemChangedHandler); - } - - ClearItems(); - itemSource = value.Cast(); - if (!itemSource && value) - { - itemSource = IValueList::Create(GetLazyList(value)); - } - - if (itemTemplate && itemSource) - { - InstallItems(); - } - if (auto observable = itemSource.Cast()) - { - itemChangedHandler = observable->ItemChanged.Add(this, &GuiRepeatCompositionBase::OnItemChanged); - } + scrollDownEnabled = value; + TypedControlTemplateObject(true)->SetScrollDownEnabled(value); } } /*********************************************************************** -GuiRepeatStackComposition +GuiRibbonToolstripMenu ***********************************************************************/ - vint GuiRepeatStackComposition::GetRepeatCompositionCount() - { - return stackItems.Count(); - } - - GuiGraphicsComposition* GuiRepeatStackComposition::GetRepeatComposition(vint index) - { - return stackItems[index]; - } - - GuiGraphicsComposition* GuiRepeatStackComposition::InsertRepeatComposition(vint index) + void GuiRibbonToolstripMenu::BeforeControlTemplateUninstalled_() { - CHECK_ERROR(0 <= index && index <= stackItems.Count(), L"GuiRepeatStackComposition::InsertRepeatComposition(vint)#Index out of range."); - auto item = new GuiStackItemComposition; - InsertStackItem(index, item); - return item; - } + auto ct = TypedControlTemplateObject(false); + if (!ct) return; - GuiGraphicsComposition* GuiRepeatStackComposition::RemoveRepeatComposition(vint index) - { - auto item = stackItems[index]; - RemoveChild(item); - return item; + if (auto cc = ct->GetContentComposition()) + { + cc->RemoveChild(contentComposition); + } } -/*********************************************************************** -GuiRepeatFlowComposition -***********************************************************************/ - - vint GuiRepeatFlowComposition::GetRepeatCompositionCount() + void GuiRibbonToolstripMenu::AfterControlTemplateInstalled_(bool initialize) { - return flowItems.Count(); + auto ct = TypedControlTemplateObject(true); + if (auto cc = ct->GetContentComposition()) + { + cc->AddChild(contentComposition); + } } - GuiGraphicsComposition* GuiRepeatFlowComposition::GetRepeatComposition(vint index) + GuiRibbonToolstripMenu::GuiRibbonToolstripMenu(theme::ThemeName themeName, GuiControl* owner) + :GuiToolstripMenu(themeName, owner) { - return flowItems[index]; + contentComposition = new GuiBoundsComposition(); + contentComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + contentComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - GuiGraphicsComposition* GuiRepeatFlowComposition::InsertRepeatComposition(vint index) + GuiRibbonToolstripMenu::~GuiRibbonToolstripMenu() { - CHECK_ERROR(0 <= index && index <= flowItems.Count(), L"GuiRepeatStackComposition::InsertRepeatComposition(vint)#Index out of range."); - auto item = new GuiFlowItemComposition; - InsertFlowItem(index, item); - return item; + if (!contentComposition->GetParent()) + { + SafeDeleteComposition(contentComposition); + } } - GuiGraphicsComposition* GuiRepeatFlowComposition::RemoveRepeatComposition(vint index) + compositions::GuiGraphicsComposition* GuiRibbonToolstripMenu::GetContentComposition() { - auto item = flowItems[index]; - RemoveChild(item); - return item; + return contentComposition; } } } } + /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSRESPONSIVECOMPOSITION.CPP +.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONGALLERYLIST.CPP ***********************************************************************/ + namespace vl { namespace presentation { - namespace compositions + namespace controls { + using namespace reflection::description; using namespace collections; - using namespace controls; + using namespace compositions; + using namespace templates; + + namespace list + { /*********************************************************************** -GuiResponsiveCompositionBase +list::GalleryGroup ***********************************************************************/ - void GuiResponsiveCompositionBase::OnParentLineChanged() - { - GuiBoundsComposition::OnParentLineChanged(); - GuiResponsiveCompositionBase* responsive = nullptr; + GalleryGroup::GalleryGroup() { - auto parent = GetParent(); - while (parent) - { - if ((responsive = dynamic_cast(parent))) - { - break; - } - parent = parent->GetParent(); - } } - if (responsiveParent != responsive) + GalleryGroup::~GalleryGroup() { - if (responsiveParent) - { - responsiveParent->OnResponsiveChildRemoved(this); - responsiveParent->OnResponsiveChildLevelUpdated(); - } - responsiveParent = responsive; - if (responsiveParent) + if (eventHandler) { - responsiveParent->OnResponsiveChildInserted(this); - responsiveParent->OnResponsiveChildLevelUpdated(); + itemValues.Cast()->ItemChanged.Remove(eventHandler); } } - } - - void GuiResponsiveCompositionBase::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) - { - } - void GuiResponsiveCompositionBase::OnResponsiveChildRemoved(GuiResponsiveCompositionBase* child) - { - } - - void GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated() - { - if (responsiveParent) - { - responsiveParent->OnResponsiveChildLevelUpdated(); - } - else + WString GalleryGroup::GetName() { - InvokeOnCompositionStateChanged(); + return name; } - } - - GuiResponsiveCompositionBase::GuiResponsiveCompositionBase() - { - SetMinSizeLimitation(LimitToElementAndChildren); - SetPreferredMinSize(Size(1, 1)); - - LevelCountChanged.SetAssociatedComposition(this); - CurrentLevelChanged.SetAssociatedComposition(this); - } - - GuiResponsiveCompositionBase::~GuiResponsiveCompositionBase() - { - } - - ResponsiveDirection GuiResponsiveCompositionBase::GetDirection() - { - return direction; - } - void GuiResponsiveCompositionBase::SetDirection(ResponsiveDirection value) - { - if (direction != value) + Ptr GalleryGroup::GetItemValues() { - direction = value; - OnResponsiveChildLevelUpdated(); + return itemValues; } - } /*********************************************************************** -GuiResponsiveSharedCollection +list::GroupedDataSource ***********************************************************************/ - void GuiResponsiveSharedCollection::BeforeInsert(vint index, controls::GuiControl* const& value) - { - CHECK_ERROR(!value->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedCollection::BeforeInsert(vint, GuiResponsiveSharedCollection* const&)#Cannot insert a shared control that is currently in use."); - } - - void GuiResponsiveSharedCollection::AfterInsert(vint index, controls::GuiControl* const& value) - { - view->OnResponsiveChildLevelUpdated(); - } - - void GuiResponsiveSharedCollection::BeforeRemove(vint index, controls::GuiControl* const& value) - { - CHECK_ERROR(!value->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedCollection::BeforeRemove(vint, GuiResponsiveSharedCollection* const&)#Cannot remove a shared control that is currently in use."); - } - - void GuiResponsiveSharedCollection::AfterRemove(vint index, vint count) - { - view->OnResponsiveChildLevelUpdated(); - } - - GuiResponsiveSharedCollection::GuiResponsiveSharedCollection(GuiResponsiveViewComposition* _view) - :view(_view) - { - } - - GuiResponsiveSharedCollection::~GuiResponsiveSharedCollection() - { - } + void GroupedDataSource::RebuildItemSource() + { + ignoreGroupChanged = true; + joinedItemSource.Clear(); + groupedItemSource.Clear(); + cachedGroupItemCounts.Clear(); + ignoreGroupChanged = false; -/*********************************************************************** -GuiResponsiveViewCollection -***********************************************************************/ + if (itemSource) + { + if (GetGroupEnabled()) + { + for (auto [groupValue, index] : indexed(GetLazyList(itemSource))) + { + auto group = Ptr(new GalleryGroup); + group->name = titleProperty(groupValue); + group->itemValues = GetChildren(childrenProperty(groupValue)); + AttachGroupChanged(group, index); + groupedItemSource.Add(group); + } + } + else + { + auto group = Ptr(new GalleryGroup); + group->itemValues = GetChildren(itemSource); + AttachGroupChanged(group, 0); + groupedItemSource.Add(group); + } + } + } - void GuiResponsiveViewCollection::BeforeInsert(vint index, GuiResponsiveCompositionBase* const& value) - { - CHECK_ERROR(!value->GetParent(), L"GuiResponsiveViewCollection::BeforeRemove(vint, GuiResponsiveCompositionBase* const&)#Cannot insert a view that is currently in use."); - } + Ptr GroupedDataSource::GetChildren(Ptr children) + { + if (!children) + { + return nullptr; + } + else if (auto list = children.Cast()) + { + return list; + } + else + { + return IValueList::Create(GetLazyList(children)); + } + } - void GuiResponsiveViewCollection::AfterInsert(vint index, GuiResponsiveCompositionBase* const& value) - { - if (!view->currentView) + void GroupedDataSource::AttachGroupChanged(Ptr group, vint index) { - view->skipUpdatingLevels = true; - view->currentView = value; - view->currentView->SetAlignmentToParent(Margin(0, 0, 0, 0)); - view->AddChild(view->currentView); - view->skipUpdatingLevels = false; + if (auto observable = group->itemValues.Cast()) + { + group->eventHandler = observable->ItemChanged.Add([this, index](vint start, vint oldCount, vint newCount) + { + OnGroupItemChanged(index, start, oldCount, newCount); + }); + } } - view->OnResponsiveChildLevelUpdated(); - } - void GuiResponsiveViewCollection::BeforeRemove(vint index, GuiResponsiveCompositionBase* const& value) - { - CHECK_ERROR(!value->GetParent(), L"GuiResponsiveViewCollection::BeforeRemove(vint, GuiResponsiveCompositionBase* const&)#Cannot remove a view that is currently in use."); - } + void GroupedDataSource::OnGroupChanged(vint start, vint oldCount, vint newCount) + { + if (!ignoreGroupChanged) + { + for (vint i = 0; i < oldCount; i++) + { + RemoveGroupFromJoined(start); + } + for (vint i = 0; i < newCount; i++) + { + InsertGroupToJoined(start + i); + } + } + } - void GuiResponsiveViewCollection::AfterRemove(vint index, vint count) - { - view->OnResponsiveChildLevelUpdated(); - } + void GroupedDataSource::OnGroupItemChanged(vint index, vint start, vint oldCount, vint newCount) + { + if (!ignoreGroupChanged) + { + vint countBeforeGroup = GetCountBeforeGroup(index); + vint joinedIndex = countBeforeGroup + start; + vint minCount = oldCount < newCount ? oldCount : newCount; + auto itemValues = groupedItemSource[index]->itemValues; - GuiResponsiveViewCollection::GuiResponsiveViewCollection(GuiResponsiveViewComposition* _view) - :view(_view) - { - } + for (vint i = 0; i < minCount; i++) + { + joinedItemSource.Set(joinedIndex + i, itemValues->Get(start + i)); + } - GuiResponsiveViewCollection::~GuiResponsiveViewCollection() - { - } + if (oldCount < newCount) + { + for (vint i = minCount; i < newCount; i++) + { + joinedItemSource.Insert(joinedIndex + i, itemValues->Get(start + i)); + } + } + else if (oldCount > newCount) + { + for (vint i = minCount; i < oldCount; i++) + { + joinedItemSource.RemoveAt(joinedIndex + i); + } + } -/*********************************************************************** -GuiResponsiveSharedComposition -***********************************************************************/ + cachedGroupItemCounts[index] += newCount - oldCount; + } + } - void GuiResponsiveSharedComposition::SetSharedControl() - { - if (shared && view && !view->destructing) + vint GroupedDataSource::GetCountBeforeGroup(vint index) { - auto sharedParent = shared->GetBoundsComposition()->GetParent(); - CHECK_ERROR(view->sharedControls.Contains(shared), L"GuiResponsiveSharedComposition::SetSharedControl()#The specified shared control is not in GuiResponsiveViewComposition::GetSharedControls()."); - CHECK_ERROR(!sharedParent || sharedParent == this, L"GuiResponsiveSharedComposition::SetSharedControl()#The specified shared control has not been released. This usually means this control is not in GuiResponsiveViewComposition::GetSharedControls()."); - - if (!sharedParent) + vint count = 0; + for (vint i = 0; i < index; i++) { - shared->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); - AddChild(shared->GetBoundsComposition()); - view->usedSharedControls.Add(shared); + count += cachedGroupItemCounts[i]; } + return count; } - } - void GuiResponsiveSharedComposition::OnParentLineChanged() - { - GuiBoundsComposition::OnParentLineChanged(); - if (view && view->destructing) + void GroupedDataSource::InsertGroupToJoined(vint index) { - return; - } + vint countBeforeGroup = GetCountBeforeGroup(index); + auto group = groupedItemSource[index]; + vint itemCount = group->itemValues ? group->itemValues->GetCount() : 0; + cachedGroupItemCounts.Insert(index, itemCount); - GuiResponsiveViewComposition* currentView = nullptr; - { - auto parent = GetParent(); - while (parent) + if (itemCount > 0) { - if ((currentView = dynamic_cast(parent))) + for (vint i = 0; i < itemCount; i++) { - break; + joinedItemSource.Insert(countBeforeGroup + i, group->itemValues->Get(i)); } - parent = parent->GetParent(); } } - if (currentView != view && view && shared) + void GroupedDataSource::RemoveGroupFromJoined(vint index) { - RemoveChild(shared->GetBoundsComposition()); - view->usedSharedControls.Remove(shared); + vint countBeforeGroup = GetCountBeforeGroup(index); + joinedItemSource.RemoveRange(countBeforeGroup, cachedGroupItemCounts[index]); + cachedGroupItemCounts.RemoveAt(index); } - view = currentView; - SetSharedControl(); - } + GroupedDataSource::GroupedDataSource(compositions::GuiGraphicsComposition* _associatedComposition) + :associatedComposition(_associatedComposition) + { + GroupEnabledChanged.SetAssociatedComposition(associatedComposition); + GroupTitlePropertyChanged.SetAssociatedComposition(associatedComposition); + GroupChildrenPropertyChanged.SetAssociatedComposition(associatedComposition); - GuiResponsiveSharedComposition::GuiResponsiveSharedComposition() - { - SetMinSizeLimitation(LimitToElementAndChildren); - } + auto vol = UnboxValue>(BoxParameter(groupedItemSource)); + groupChangedHandler = vol->ItemChanged.Add(this, &GroupedDataSource::OnGroupChanged); + } - GuiResponsiveSharedComposition::~GuiResponsiveSharedComposition() - { - } + GroupedDataSource::~GroupedDataSource() + { + auto vol = UnboxValue>(BoxParameter(joinedItemSource)); + vol->ItemChanged.Remove(groupChangedHandler); + } - controls::GuiControl* GuiResponsiveSharedComposition::GetShared() - { - return shared; - } + Ptr GroupedDataSource::GetItemSource() + { + return itemSource; + } - void GuiResponsiveSharedComposition::SetShared(controls::GuiControl* value) - { - if (shared != value) + void GroupedDataSource::SetItemSource(Ptr value) { - CHECK_ERROR(!shared || !shared->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedComposition::SetShared(GuiControl*)#Cannot replace a shared control that is currently in use."); - shared = value; - SetSharedControl(); + if (itemSource != value) + { + itemSource = value; + RebuildItemSource(); + } } - } -/*********************************************************************** -GuiResponsiveViewComposition -***********************************************************************/ + bool GroupedDataSource::GetGroupEnabled() + { + return titleProperty && childrenProperty; + } - bool GuiResponsiveViewComposition::CalculateLevelCount() - { - vint old = levelCount; - if (views.Count() == 0) + ItemProperty GroupedDataSource::GetGroupTitleProperty() { - levelCount = 1; + return titleProperty; } - else + + void GroupedDataSource::SetGroupTitleProperty(const ItemProperty& value) { - levelCount = 0; - for (vint i = 0; i < views.Count(); i++) + if (titleProperty != value) { - auto view = views[i]; - if (((vint)direction & (vint)view->GetDirection()) != 0) - { - levelCount += view->GetLevelCount(); - } - else - { - levelCount += 1; - } + titleProperty = value; + GroupTitlePropertyChanged.Execute(GuiEventArgs(associatedComposition)); + GroupEnabledChanged.Execute(GuiEventArgs(associatedComposition)); + RebuildItemSource(); } } - if (old != levelCount) + ItemProperty> GroupedDataSource::GetGroupChildrenProperty() { - LevelCountChanged.Execute(GuiEventArgs(this)); - return true; + return childrenProperty; } - return false; - } - bool GuiResponsiveViewComposition::CalculateCurrentLevel() - { - vint old = currentLevel; - currentLevel = 0; - for (vint i = views.Count() - 1; i >= 0; i--) + void GroupedDataSource::SetGroupChildrenProperty(const ItemProperty>& value) { - auto view = views[i]; - if (((vint)direction & (vint)view->GetDirection()) != 0) - { - if (currentView == view) - { - currentLevel += view->GetCurrentLevel() + 1; - break; - } - else - { - currentLevel += view->GetLevelCount(); - } - } - else + if (childrenProperty != value) { - currentLevel++; + childrenProperty = value; + GroupChildrenPropertyChanged.Execute(GuiEventArgs(associatedComposition)); + GroupEnabledChanged.Execute(GuiEventArgs(associatedComposition)); + RebuildItemSource(); } } - currentLevel--; - if (old != currentLevel) + const GroupedDataSource::GalleryGroupList& GroupedDataSource::GetGroups() { - CurrentLevelChanged.Execute(GuiEventArgs(this)); - return true; + return groupedItemSource; } - return false; } - void GuiResponsiveViewComposition::OnResponsiveChildLevelUpdated() +/*********************************************************************** +GuiBindableRibbonGalleryList +***********************************************************************/ + + void GuiBindableRibbonGalleryList::BeforeControlTemplateUninstalled_() { - if (!skipUpdatingLevels) - { - CalculateLevelCount(); - CalculateCurrentLevel(); - GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); - } } - GuiResponsiveViewComposition::GuiResponsiveViewComposition() - :sharedControls(this) - , views(this) + void GuiBindableRibbonGalleryList::AfterControlTemplateInstalled_(bool initialize) { - BeforeSwitchingView.SetAssociatedComposition(this); + auto ct = TypedControlTemplateObject(true); + itemList->SetControlTemplate(ct->GetItemListTemplate()); + subMenu->SetControlTemplate(ct->GetMenuTemplate()); + groupContainer->SetControlTemplate(ct->GetGroupContainerTemplate()); + MenuResetGroupTemplate(); + UpdateLayoutSizeOffset(); } - GuiResponsiveViewComposition::~GuiResponsiveViewComposition() + void GuiBindableRibbonGalleryList::UpdateLayoutSizeOffset() { - destructing = true; + auto cSize = itemList->GetContainerComposition()->GetBounds(); + auto bSize = itemList->GetBoundsComposition()->GetBounds(); + layout->SetSizeOffset(Size(bSize.Width() - cSize.Width(), bSize.Height() - cSize.Height())); - for (auto view : views) + if (layout->GetItemWidth() > 0) { - if (view != currentView) - { - SafeDeleteComposition(view); - } + vint columns = layout->GetVisibleItemCount(); + if (columns == 0) columns = 1; + vint rows = (visibleItemCount + columns - 1) / columns; + vint height = (vint)(layout->GetBounds().Height()*(rows + 0.5)); + groupContainer->GetBoundsComposition()->SetPreferredMinSize(Size(0, height)); } - - for (auto shared : From(sharedControls).Except(usedSharedControls)) + else { - SafeDeleteControl(shared); + groupContainer->GetBoundsComposition()->SetPreferredMinSize(Size(0, 0)); } } - vint GuiResponsiveViewComposition::GetLevelCount() - { - return levelCount; - } - - vint GuiResponsiveViewComposition::GetCurrentLevel() - { - return currentLevel; - } - - bool GuiResponsiveViewComposition::LevelDown() + void GuiBindableRibbonGalleryList::OnItemListSelectionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - skipUpdatingLevels = true; - if (((vint)direction & (vint)currentView->GetDirection()) != 0 && !currentView->LevelDown()) + auto pos = IndexToGalleryPos(itemList->GetSelectedItemIndex()); + if (pos.group != -1 && pos.item != -1) { - vint index = views.IndexOf(currentView); - if (index < views.Count() - 1) + for (vint i = 0; i < groupedItemSource.Count(); i++) { - RemoveChild(currentView); - currentView = views[index + 1]; - currentView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + auto group = groupedItemSource[i]; + if (group->GetItemValues()) { - GuiItemEventArgs arguments(this); - arguments.itemIndex = views.IndexOf(currentView); - BeforeSwitchingView.Execute(arguments); + vint count = group->GetItemValues()->GetCount(); + for (vint j = 0; j < count; j++) + { + auto background = MenuGetGroupItemBackground(i, j); + background->SetSelected(pos.group == i && pos.item == j); + } } - AddChild(currentView); } } - skipUpdatingLevels = false; - auto x = CalculateLevelCount(); - auto y = CalculateCurrentLevel(); - if (!x && !y) return false; - InvokeOnCompositionStateChanged(); - return true; + if (!skipItemAppliedEvent && itemList->GetSelectedItemIndex() != -1) + { + GuiItemEventArgs itemAppliedArgs(boundsComposition); + itemAppliedArgs.itemIndex = itemList->GetSelectedItemIndex(); + ItemApplied.Execute(itemAppliedArgs); + } + SelectionChanged.Execute(GetNotifyEventArguments()); } - bool GuiResponsiveViewComposition::LevelUp() + void GuiBindableRibbonGalleryList::OnItemListItemMouseEnter(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) { - skipUpdatingLevels = true; - if (((vint)direction & (vint)currentView->GetDirection()) != 0 && !currentView->LevelUp()) + StartPreview(arguments.itemIndex); + } + + void GuiBindableRibbonGalleryList::OnItemListItemMouseLeave(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments) + { + StopPreview(arguments.itemIndex); + } + + void GuiBindableRibbonGalleryList::OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + UpdateLayoutSizeOffset(); + + auto bounds = boundsComposition->GetBounds(); + subMenu->GetBoundsComposition()->SetPreferredMinSize(Size(bounds.Width() + 20, 1)); + + for (vint i = 0; i < groupedItemSource.Count(); i++) { - vint index = views.IndexOf(currentView); - if (index > 0) + auto group = groupedItemSource[i]; + if (group->GetItemValues()) { - RemoveChild(currentView); - currentView = views[index - 1]; - currentView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + vint count = group->GetItemValues()->GetCount(); + for (vint j = 0; j < count; j++) { - GuiItemEventArgs arguments(this); - arguments.itemIndex = views.IndexOf(currentView); - BeforeSwitchingView.Execute(arguments); + auto background = MenuGetGroupItemBackground(i, j); + background->GetBoundsComposition()->SetPreferredMinSize(Size(0, bounds.Height())); } - AddChild(currentView); } } - skipUpdatingLevels = false; - - auto x = CalculateLevelCount(); - auto y = CalculateCurrentLevel(); - if (!x && !y) return false; - InvokeOnCompositionStateChanged(); - return true; } - GuiResponsiveCompositionBase* GuiResponsiveViewComposition::GetCurrentView() + void GuiBindableRibbonGalleryList::OnRequestedDropdown(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return currentView; + subMenu->ShowPopup(this, Point(0, 0)); } - collections::ObservableListBase& GuiResponsiveViewComposition::GetSharedControls() + void GuiBindableRibbonGalleryList::OnRequestedScrollUp(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return sharedControls; + itemListArranger->ScrollUp(); } - collections::ObservableListBase& GuiResponsiveViewComposition::GetViews() + void GuiBindableRibbonGalleryList::OnRequestedScrollDown(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - return views; + itemListArranger->ScrollDown(); } -/*********************************************************************** -GuiResponsiveFixedComposition -***********************************************************************/ - - void GuiResponsiveFixedComposition::OnResponsiveChildLevelUpdated() + void GuiBindableRibbonGalleryList::MenuResetGroupTemplate() { - InvokeOnCompositionStateChanged(); - } + groupStack->SetItemTemplate([this](const Value& groupValue)->GuiTemplate* + { + auto group = UnboxValue>(groupValue); - GuiResponsiveFixedComposition::GuiResponsiveFixedComposition() - { - } + auto groupTemplate = new GuiTemplate; + groupTemplate->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - GuiResponsiveFixedComposition::~GuiResponsiveFixedComposition() - { - } + auto groupContentStack = new GuiStackComposition; + groupContentStack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + groupContentStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + groupContentStack->SetDirection(GuiStackComposition::Vertical); + { + auto item = new GuiStackItemComposition; + groupContentStack->AddChild(item); - vint GuiResponsiveFixedComposition::GetLevelCount() - { - return 1; - } + auto header = new GuiControl(theme::ThemeName::RibbonToolstripHeader); + header->SetControlTemplate(TypedControlTemplateObject(true)->GetHeaderTemplate()); + header->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + header->SetText(group->GetName()); + item->AddChild(header->GetBoundsComposition()); + } + if (itemStyle) + { + auto item = new GuiStackItemComposition; + item->SetPreferredMinSize(Size(1, 1)); + groupContentStack->AddChild(item); - vint GuiResponsiveFixedComposition::GetCurrentLevel() - { - return 0; + auto groupItemFlow = new GuiRepeatFlowComposition(); + groupItemFlow->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + groupItemFlow->SetAlignmentToParent(Margin(0, 0, 0, 0)); + groupItemFlow->SetItemSource(group->GetItemValues()); + groupItemFlow->SetItemTemplate([=](const Value& groupItemValue)->GuiTemplate* + { + auto groupItemTemplate = new GuiTemplate; + groupItemTemplate->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + + auto backgroundButton = new GuiSelectableButton(theme::ThemeName::ListItemBackground); + if (auto style = TypedControlTemplateObject(true)->GetBackgroundTemplate()) + { + backgroundButton->SetControlTemplate(style); + } + backgroundButton->SetAutoFocus(false); + backgroundButton->SetAutoSelection(false); + backgroundButton->Clicked.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); + auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); + auto index = GalleryPosToIndex({ groupIndex,itemIndex }); + itemList->SetSelected(index, true); + itemList->EnsureItemVisible(index); + subMenu->Close(); + }); + backgroundButton->GetBoundsComposition()->GetEventReceiver()->mouseEnter.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); + auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); + auto index = GalleryPosToIndex({ groupIndex,itemIndex }); + StartPreview(index); + }); + backgroundButton->GetBoundsComposition()->GetEventReceiver()->mouseLeave.AttachLambda([=](GuiGraphicsComposition* sender, GuiEventArgs& arguments) + { + auto groupIndex = groupStack->GetStackItems().IndexOf(dynamic_cast(groupTemplate->GetParent())); + auto itemIndex = groupItemFlow->GetFlowItems().IndexOf(dynamic_cast(groupItemTemplate->GetParent())); + auto index = GalleryPosToIndex({ groupIndex,itemIndex }); + StopPreview(index); + }); + groupItemTemplate->AddChild(backgroundButton->GetBoundsComposition()); + + auto itemTemplate = itemStyle(groupItemValue); + itemTemplate->SetAlignmentToParent(Margin(0, 0, 0, 0)); + backgroundButton->GetContainerComposition()->AddChild(itemTemplate); + + return groupItemTemplate; + }); + item->AddChild(groupItemFlow); + } + groupTemplate->AddChild(groupContentStack); + + return groupTemplate; + }); } - bool GuiResponsiveFixedComposition::LevelDown() + GuiControl* GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint groupIndex) { - return false; + CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Group index out of range"); + auto stackItem = groupStack->GetStackItems()[groupIndex]; + auto groupTemplate = stackItem->Children()[0]; + auto groupContentStack = dynamic_cast(groupTemplate->Children()[0]); + auto groupHeaderItem = groupContentStack->GetStackItems()[0]; + auto groupHeader = groupHeaderItem->Children()[0]->GetAssociatedControl(); + CHECK_ERROR(groupHeader, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Internal error."); + return groupHeader; } - bool GuiResponsiveFixedComposition::LevelUp() + compositions::GuiRepeatFlowComposition* GuiBindableRibbonGalleryList::MenuGetGroupFlow(vint groupIndex) { - return false; + CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupFlow(vint)#Group index out of range"); + if (!itemStyle) return nullptr; + auto stackItem = groupStack->GetStackItems()[groupIndex]; + auto groupTemplate = stackItem->Children()[0]; + auto groupContentStack = dynamic_cast(groupTemplate->Children()[0]); + auto groupContentItem = groupContentStack->GetStackItems()[1]; + auto groupFlow = dynamic_cast(groupContentItem->Children()[0]); + CHECK_ERROR(groupFlow, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint)#Internal error."); + return groupFlow; } -/*********************************************************************** -GuiResponsiveStackComposition -***********************************************************************/ + GuiSelectableButton* GuiBindableRibbonGalleryList::MenuGetGroupItemBackground(vint groupIndex, vint itemIndex) + { + CHECK_ERROR(0 <= groupIndex && groupIndex < groupedItemSource.Count(), L"GuiBindableRibbonGalleryList::MenuGetGroupItemBackground(vint, vint)#Group index out of range"); + auto group = groupedItemSource[groupIndex]; + CHECK_ERROR(group->GetItemValues() && 0 <= itemIndex && itemIndex < group->GetItemValues()->GetCount(), L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint, vint)#Item index out of range"); -#define DEFINE_AVAILABLE \ - auto availables = From(responsiveChildren) \ - .Where([=](GuiResponsiveCompositionBase* child) \ - { \ - return ((vint)direction & (vint)child->GetDirection()) != 0; \ - }) \ + auto groupFlow = MenuGetGroupFlow(groupIndex); + auto groupFlowItem = groupFlow->GetFlowItems()[itemIndex]; + auto groupItemTemplate = groupFlowItem->Children()[0]; + auto groupItemBackground = dynamic_cast(groupItemTemplate->Children()[0]->GetAssociatedControl()); + CHECK_ERROR(groupItemBackground, L"GuiBindableRibbonGalleryList::MenuGetGroupHeader(vint, vint)#Internal error."); + return groupItemBackground; + } - bool GuiResponsiveStackComposition::CalculateLevelCount() + void GuiBindableRibbonGalleryList::StartPreview(vint index) { - vint old = levelCount; - DEFINE_AVAILABLE; - if (availables.IsEmpty()) - { - levelCount = 1; - } - else + if (index != itemList->GetSelectedItemIndex()) { - levelCount = availables - .Select([](GuiResponsiveCompositionBase* child) - { - return child->GetLevelCount() - 1; - }) - .Aggregate([](vint a, vint b) - { - return a + b; - }) + 1; + GuiItemEventArgs previewArgs(boundsComposition); + previewArgs.itemIndex = index; + PreviewStarted.Execute(previewArgs); } + } - if (old != levelCount) + void GuiBindableRibbonGalleryList::StopPreview(vint index) + { + if (index != itemList->GetSelectedItemIndex()) { - LevelCountChanged.Execute(GuiEventArgs(this)); - return true; + GuiItemEventArgs previewArgs(boundsComposition); + previewArgs.itemIndex = index; + PreviewStopped.Execute(previewArgs); } - return false; } - bool GuiResponsiveStackComposition::CalculateCurrentLevel() + GuiMenu* GuiBindableRibbonGalleryList::ProvideDropdownMenu() { - vint old = currentLevel; - DEFINE_AVAILABLE; - if (availables.IsEmpty()) + return GetSubMenu(); + } + + GuiBindableRibbonGalleryList::GuiBindableRibbonGalleryList(theme::ThemeName themeName) + :GuiRibbonGallery(themeName) + , GroupedDataSource(boundsComposition) + { + ItemTemplateChanged.SetAssociatedComposition(boundsComposition); + SelectionChanged.SetAssociatedComposition(boundsComposition); + PreviewStarted.SetAssociatedComposition(boundsComposition); + PreviewStopped.SetAssociatedComposition(boundsComposition); + ItemApplied.SetAssociatedComposition(boundsComposition); + subMenu = new GuiRibbonToolstripMenu(theme::ThemeName::RibbonToolstripMenu, this); + { - currentLevel = 0; + layout = new ribbon_impl::GalleryResponsiveLayout; + layout->SetAlignmentToParent(Margin(0, 0, 0, 0)); + containerComposition->AddChild(layout); + + itemListArranger = new ribbon_impl::GalleryItemArranger(this); + itemList = new GuiBindableTextList(theme::ThemeName::RibbonGalleryItemList); + itemList->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + itemList->SetArranger(Ptr(itemListArranger)); + itemList->SetItemSource(UnboxValue>(BoxParameter(joinedItemSource))); + itemList->SelectionChanged.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListSelectionChanged); + itemList->ItemMouseEnter.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseEnter); + itemList->ItemMouseLeave.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseLeave); + layout->AddChild(itemList->GetBoundsComposition()); } - else { - currentLevel = availables - .Select([](GuiResponsiveCompositionBase* child) - { - return child->GetCurrentLevel(); - }) - .Aggregate([](vint a, vint b) - { - return a + b; - }); - } + groupContainer = new GuiScrollContainer(theme::ThemeName::ScrollView); + groupContainer->SetHorizontalAlwaysVisible(false); + groupContainer->SetVerticalAlwaysVisible(false); + groupContainer->SetExtendToFullWidth(true); + groupContainer->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + subMenu->GetContentComposition()->AddChild(groupContainer->GetBoundsComposition()); - if (old != currentLevel) - { - CurrentLevelChanged.Execute(GuiEventArgs(this)); - return true; + groupStack = new GuiRepeatStackComposition(); + groupStack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + groupStack->SetAlignmentToParent(Margin(0, 0, 0, 0)); + groupStack->SetDirection(GuiStackComposition::Vertical); + groupStack->SetItemSource(UnboxValue>(BoxParameter(groupedItemSource))); + groupContainer->GetContainerComposition()->AddChild(groupStack); + MenuResetGroupTemplate(); } - return false; + + RequestedScrollUp.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedScrollUp); + RequestedScrollDown.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedScrollDown); + RequestedDropdown.AttachMethod(this, &GuiBindableRibbonGalleryList::OnRequestedDropdown); + boundsComposition->BoundsChanged.AttachMethod(this, &GuiBindableRibbonGalleryList::OnBoundsChanged); + itemListArranger->UnblockScrollUpdate(); } - void GuiResponsiveStackComposition::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) + GuiBindableRibbonGalleryList::~GuiBindableRibbonGalleryList() { - responsiveChildren.Add(child); + delete subMenu; } - void GuiResponsiveStackComposition::OnResponsiveChildRemoved(GuiResponsiveCompositionBase* child) + GuiBindableRibbonGalleryList::ItemStyleProperty GuiBindableRibbonGalleryList::GetItemTemplate() { - responsiveChildren.Remove(child); + return itemStyle; } - void GuiResponsiveStackComposition::OnResponsiveChildLevelUpdated() + void GuiBindableRibbonGalleryList::SetItemTemplate(ItemStyleProperty value) { - CalculateLevelCount(); - CalculateCurrentLevel(); - GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); + if (itemStyle != value) + { + itemStyle = value; + itemList->SetItemTemplate(value); + ItemTemplateChanged.Execute(GetNotifyEventArguments()); + } } - bool GuiResponsiveStackComposition::ChangeLevel(bool levelDown) + GalleryPos GuiBindableRibbonGalleryList::IndexToGalleryPos(vint index) { - DEFINE_AVAILABLE; - - SortedList ignored; - while (true) + if (0 <= index && index < joinedItemSource.Count()) { - GuiResponsiveCompositionBase* selected = nullptr; - vint size = 0; - - for (auto child : availables) + for (auto [group, groupIndex] : indexed(groupedItemSource)) { - if (!ignored.Contains(child)) + auto itemValues = group->GetItemValues(); + vint itemCount = itemValues ? itemValues->GetCount() : 0; + if (index >= itemCount) { - Size childSize = child->GetPreferredBounds().GetSize(); - vint childSizeToCompare = - direction == ResponsiveDirection::Horizontal ? childSize.x : - direction == ResponsiveDirection::Vertical ? childSize.y : - childSize.x * childSize.y; - - if (!selected || (levelDown ? size < childSizeToCompare : size > childSizeToCompare)) - { - selected = child; - size = childSizeToCompare; - } + index -= itemCount; + } + else + { + return GalleryPos(groupIndex, index); } - } - - if (!selected) - { - break; - } - else if (levelDown ? selected->LevelDown() : selected->LevelUp()) - { - break; - } - else - { - ignored.Add(selected); } } - - if (!CalculateCurrentLevel()) return false; - InvokeOnCompositionStateChanged(); - return true; + return {}; } - GuiResponsiveStackComposition::GuiResponsiveStackComposition() + vint GuiBindableRibbonGalleryList::GalleryPosToIndex(GalleryPos pos) { + if (0 <= pos.group && pos.group < groupedItemSource.Count()) + { + auto countBeforeGroup = GetCountBeforeGroup(pos.group); + auto itemValues = groupedItemSource[pos.group]->GetItemValues(); + vint itemCount = itemValues ? itemValues->GetCount() : 0; + if (0 <= pos.item && pos.item < itemCount) + { + return countBeforeGroup + pos.item; + } + } + return -1; } - GuiResponsiveStackComposition::~GuiResponsiveStackComposition() + vint GuiBindableRibbonGalleryList::GetMinCount() { + return layout->GetMinCount(); } - vint GuiResponsiveStackComposition::GetLevelCount() + void GuiBindableRibbonGalleryList::SetMinCount(vint value) { - return levelCount; + layout->SetMinCount(value); } - vint GuiResponsiveStackComposition::GetCurrentLevel() + vint GuiBindableRibbonGalleryList::GetMaxCount() { - return currentLevel; + return layout->GetMaxCount(); } - bool GuiResponsiveStackComposition::LevelDown() + void GuiBindableRibbonGalleryList::SetMaxCount(vint value) { - return ChangeLevel(true); + layout->SetMaxCount(value); } - bool GuiResponsiveStackComposition::LevelUp() + vint GuiBindableRibbonGalleryList::GetSelectedIndex() { - return ChangeLevel(false); + return itemList->GetSelectedItemIndex(); } -/*********************************************************************** -GuiResponsiveGroupComposition -***********************************************************************/ - - bool GuiResponsiveGroupComposition::CalculateLevelCount() + description::Value GuiBindableRibbonGalleryList::GetSelectedItem() { - vint old = levelCount; - DEFINE_AVAILABLE; - if (availables.IsEmpty()) - { - levelCount = 1; - } - else - { - levelCount = availables - .Select([](GuiResponsiveCompositionBase* child) - { - return child->GetLevelCount(); - }) - .Max(); - } + vint index = itemList->GetSelectedItemIndex(); + if (index == -1) return Value(); - if (old != levelCount) - { - LevelCountChanged.Execute(GuiEventArgs(this)); - return true; - } - return false; + auto pos = IndexToGalleryPos(index); + return groupedItemSource[pos.group]->GetItemValues()->Get(pos.item); } - bool GuiResponsiveGroupComposition::CalculateCurrentLevel() + void GuiBindableRibbonGalleryList::ApplyItem(vint index) { - vint old = currentLevel; - DEFINE_AVAILABLE; - if (availables.IsEmpty()) + if (index == -1) { - currentLevel = 0; + itemList->ClearSelection(); } else { - currentLevel = availables - .Select([](GuiResponsiveCompositionBase* child) - { - return child->GetCurrentLevel(); - }) - .Max(); - } - - if (old != currentLevel) - { - CurrentLevelChanged.Execute(GuiEventArgs(this)); - return true; + itemList->SetSelected(index, true); + itemList->EnsureItemVisible(index); } - return false; } - void GuiResponsiveGroupComposition::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) + void GuiBindableRibbonGalleryList::SelectItem(vint index) { - responsiveChildren.Add(child); + skipItemAppliedEvent = true; + ApplyItem(index); + skipItemAppliedEvent = false; } - void GuiResponsiveGroupComposition::OnResponsiveChildRemoved(GuiResponsiveCompositionBase* child) + vint GuiBindableRibbonGalleryList::GetVisibleItemCount() { - responsiveChildren.Remove(child); + return visibleItemCount; } - void GuiResponsiveGroupComposition::OnResponsiveChildLevelUpdated() + void GuiBindableRibbonGalleryList::SetVisibleItemCount(vint value) { - CalculateLevelCount(); - CalculateCurrentLevel(); - GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); + if (visibleItemCount != value) + { + visibleItemCount = value; + UpdateLayoutSizeOffset(); + } } - GuiResponsiveGroupComposition::GuiResponsiveGroupComposition() + GuiToolstripMenu* GuiBindableRibbonGalleryList::GetSubMenu() { + return subMenu; } - GuiResponsiveGroupComposition::~GuiResponsiveGroupComposition() + IDescriptable* GuiBindableRibbonGalleryList::QueryService(const WString& identifier) { + if (identifier == IGuiMenuDropdownProvider::Identifier) + { + return (IGuiMenuDropdownProvider*)this; + } + else + { + return GuiRibbonGallery::QueryService(identifier); + } } + } + } +} - vint GuiResponsiveGroupComposition::GetLevelCount() - { - return levelCount; - } +/*********************************************************************** +.\CONTROLS\TOOLSTRIPPACKAGE\GUIRIBBONIMPL.CPP +***********************************************************************/ - vint GuiResponsiveGroupComposition::GetCurrentLevel() - { - return currentLevel; - } +namespace vl +{ + namespace presentation + { + namespace controls + { + using namespace compositions; - bool GuiResponsiveGroupComposition::LevelDown() +/*********************************************************************** +GalleryItemArranger +***********************************************************************/ + + namespace ribbon_impl { - DEFINE_AVAILABLE; - vint level = currentLevel; - for (auto child : availables) + void GalleryItemArranger::BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) { - if (child->GetCurrentLevel() >= level) + if (forMoving) { - if (!child->LevelDown()) - { - break; - } + pim_itemWidth = itemWidth; + newStartIndex = firstIndex; } } - if (!CalculateCurrentLevel()) return false; - InvokeOnCompositionStateChanged(); - return true; - } - - bool GuiResponsiveGroupComposition::LevelUp() - { - DEFINE_AVAILABLE; - vint level = currentLevel; - for (auto child : availables) + void GalleryItemArranger::PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) { - while (child->GetCurrentLevel() <= level) + alignmentToParent = Margin(-1, 0, -1, 0); + bounds = Rect(Point((index - firstIndex) * itemWidth, 0), Size(itemWidth, 0)); + + if (forMoving) { - if (!child->LevelUp()) + vint styleWidth = callback->GetStylePreferredSize(GetStyleBounds(style)).x; + if (pim_itemWidth < styleWidth) { - break; + pim_itemWidth = styleWidth; } } } - if (!CalculateCurrentLevel()) return false; - InvokeOnCompositionStateChanged(); - return true; - } - -#undef DEFINE_AVAILABLE - -/*********************************************************************** -GuiResponsiveContainerComposition -***********************************************************************/ - -#define RESPONSIVE_INVALID_SIZE Size(-1, -1) - - void GuiResponsiveContainerComposition::AdjustLevel() - { - if (!responsiveTarget) return; - const Size containerSize = GetBounds().GetSize(); - const Size responsiveOriginalSize = responsiveTarget->GetPreferredBounds().GetSize(); - const bool testX = (vint)responsiveTarget->GetDirection() & (vint)ResponsiveDirection::Horizontal; - const bool testY = (vint)responsiveTarget->GetDirection() & (vint)ResponsiveDirection::Vertical; - -#define RESPONSIVE_IF_CONTAINER(OP, SIZE) ((testX && (containerSize).x OP SIZE.x) || (testY && (containerSize).y OP SIZE.y)) - - if (upperLevelSize != RESPONSIVE_INVALID_SIZE && RESPONSIVE_IF_CONTAINER(>=, upperLevelSize)) + bool GalleryItemArranger::IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) { - upperLevelSize = RESPONSIVE_INVALID_SIZE; + return bounds.Right() + pim_itemWidth > viewBounds.Right(); } - if (upperLevelSize == RESPONSIVE_INVALID_SIZE && RESPONSIVE_IF_CONTAINER(>=, responsiveOriginalSize)) + bool GalleryItemArranger::EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) { - while (true) + bool result = false; + if (forMoving) { - if (responsiveTarget->GetCurrentLevel() == responsiveTarget->GetLevelCount() - 1) + if (pim_itemWidth != itemWidth) { - break; + itemWidth = pim_itemWidth; + result = true; } - else if (responsiveTarget->LevelUp()) + } + + if (!blockScrollUpdate) + { + UnblockScrollUpdate(); + } + + return result; + } + + void GalleryItemArranger::InvalidateItemSizeCache() + { + itemWidth = 1; + } + + Size GalleryItemArranger::OnCalculateTotalSize() + { + return Size(1, 1); + } + + GalleryItemArranger::GalleryItemArranger(GuiBindableRibbonGalleryList* _owner) + :owner(_owner) + { + } + + GalleryItemArranger::~GalleryItemArranger() + { + } + + vint GalleryItemArranger::FindItem(vint itemIndex, compositions::KeyDirection key) + { + vint count = itemProvider->Count(); + vint groupCount = viewBounds.Width() / itemWidth; + + switch (key) + { + case KeyDirection::Left: + itemIndex--; + break; + case KeyDirection::Right: + itemIndex++; + break; + case KeyDirection::Home: + itemIndex = 0; + break; + case KeyDirection::End: + itemIndex = count; + break; + case KeyDirection::PageUp: + itemIndex -= groupCount; + break; + case KeyDirection::PageDown: + itemIndex += groupCount; + break; + default: + return -1; + } + + if (itemIndex < 0) return 0; + else if (itemIndex >= count) return count - 1; + else return itemIndex; + } + + GuiListControl::EnsureItemVisibleResult GalleryItemArranger::EnsureItemVisible(vint itemIndex) + { + if (callback) + { + if (0 <= itemIndex && itemIndex < itemProvider->Count()) { - responsiveTarget->ForceCalculateSizeImmediately(); - auto currentSize = responsiveTarget->GetPreferredBounds().GetSize(); - if (RESPONSIVE_IF_CONTAINER(<, currentSize)) + vint groupCount = viewBounds.Width() / itemWidth; + if (itemIndex < firstIndex) { - upperLevelSize = currentSize; - responsiveTarget->LevelDown(); - break; + firstIndex = itemIndex; + callback->OnTotalSizeChanged(); + } + else if (itemIndex >= firstIndex + groupCount) + { + firstIndex = itemIndex - groupCount + 1; + callback->OnTotalSizeChanged(); } + return GuiListControl::EnsureItemVisibleResult::NotMoved; } else { - break; + return GuiListControl::EnsureItemVisibleResult::ItemNotExists; } } + return GuiListControl::EnsureItemVisibleResult::NotMoved; } - else + + Size GalleryItemArranger::GetAdoptedSize(Size expectedSize) { - while (true) + return Size(1, 1); + } + + void GalleryItemArranger::ScrollUp() + { + vint count = itemProvider->Count(); + vint groupCount = viewBounds.Width() / itemWidth; + if (count > groupCount) { - responsiveTarget->ForceCalculateSizeImmediately(); - auto currentSize = responsiveTarget->GetPreferredBounds().GetSize(); - if (RESPONSIVE_IF_CONTAINER(>=, currentSize)) + firstIndex -= groupCount; + if (firstIndex < 0) { - break; + firstIndex = 0; } - if (responsiveTarget->GetCurrentLevel() == 0) + if (callback) { - break; + callback->OnTotalSizeChanged(); } - else if(responsiveTarget->LevelDown()) + } + } + + void GalleryItemArranger::ScrollDown() + { + vint count = itemProvider->Count(); + vint groupCount = viewBounds.Width() / itemWidth; + if (count > groupCount) + { + firstIndex += groupCount; + if (firstIndex > count - groupCount) { - upperLevelSize = currentSize; + firstIndex = count - groupCount; } - else + + if (callback) { - break; + callback->OnTotalSizeChanged(); } } } -#undef RESPONSIVE_IF_CONTAINER - } - - void GuiResponsiveContainerComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) - { - auto control = GetRelatedControl(); - if (control) + void GalleryItemArranger::UnblockScrollUpdate() { - control->InvokeOrDelayIfRendering([=]() + blockScrollUpdate = false; + + vint count = itemProvider->Count(); + vint groupCount = viewBounds.Width() / pim_itemWidth; + owner->SetScrollUpEnabled(firstIndex > 0); + owner->SetScrollDownEnabled(firstIndex + groupCount < count); + if (owner->layout->GetItemWidth() != pim_itemWidth) { - AdjustLevel(); - }); + owner->layout->SetItemWidth(pim_itemWidth); + owner->UpdateLayoutSizeOffset(); + } } - else + +/*********************************************************************** +GalleryResponsiveLayout +***********************************************************************/ + + void GalleryResponsiveLayout::UpdateMinSize() { - AdjustLevel(); + SetPreferredMinSize(Size(itemCount * itemWidth + sizeOffset.x, sizeOffset.y)); } - } - GuiResponsiveContainerComposition::GuiResponsiveContainerComposition() - :upperLevelSize(RESPONSIVE_INVALID_SIZE) - { - BoundsChanged.AttachMethod(this, &GuiResponsiveContainerComposition::OnBoundsChanged); - } + GalleryResponsiveLayout::GalleryResponsiveLayout() + { + SetDirection(ResponsiveDirection::Horizontal); + } - GuiResponsiveContainerComposition::~GuiResponsiveContainerComposition() - { - } + GalleryResponsiveLayout::~GalleryResponsiveLayout() + { + } - GuiResponsiveCompositionBase* GuiResponsiveContainerComposition::GetResponsiveTarget() - { - return responsiveTarget; - } + vint GalleryResponsiveLayout::GetMinCount() + { + return minCount; + } - void GuiResponsiveContainerComposition::SetResponsiveTarget(GuiResponsiveCompositionBase* value) - { - if (responsiveTarget != value) + vint GalleryResponsiveLayout::GetMaxCount() { - if (responsiveTarget) + return maxCount; + } + + vint GalleryResponsiveLayout::GetItemWidth() + { + return itemWidth; + } + + Size GalleryResponsiveLayout::GetSizeOffset() + { + return sizeOffset; + } + + vint GalleryResponsiveLayout::GetVisibleItemCount() + { + return itemCount; + } + + void GalleryResponsiveLayout::SetMinCount(vint value) + { + vint oldCount = GetLevelCount(); + vint oldLevel = GetCurrentLevel(); + + if (minCount != value) { - RemoveChild(responsiveTarget); + if (value < 0) value = 0; + minCount = value; + if (maxCount < minCount) maxCount = minCount; + if (itemCount < minCount) itemCount = minCount; + UpdateMinSize(); } - responsiveTarget = value; - upperLevelSize = RESPONSIVE_INVALID_SIZE; + bool countChanged = oldCount != GetLevelCount(); + bool levelChanged = oldLevel != GetCurrentLevel(); + if (countChanged) LevelCountChanged.Execute(GuiEventArgs(this)); + if (levelChanged) CurrentLevelChanged.Execute(GuiEventArgs(this)); + if (countChanged || levelChanged) OnResponsiveChildLevelUpdated(); + } - if (responsiveTarget) + void GalleryResponsiveLayout::SetMaxCount(vint value) + { + vint oldCount = GetLevelCount(); + vint oldLevel = GetCurrentLevel(); + + if (maxCount != value) { - responsiveTarget->SetAlignmentToParent(Margin(0, 0, 0, 0)); - while (responsiveTarget->LevelUp()); - AddChild(responsiveTarget); + if (value < 0) value = 0; + maxCount = value; + if (minCount > maxCount) minCount = maxCount; + if (itemCount > maxCount) itemCount = maxCount; + UpdateMinSize(); + } - GuiEventArgs arguments(this); - OnBoundsChanged(this, arguments); + if (oldCount != GetLevelCount()) LevelCountChanged.Execute(GuiEventArgs(this)); + if (oldLevel != GetCurrentLevel()) CurrentLevelChanged.Execute(GuiEventArgs(this)); + } + + void GalleryResponsiveLayout::SetItemWidth(vint value) + { + if (itemWidth != value) + { + itemWidth = value; + UpdateMinSize(); } } - } -#undef RESPONSIVE_INVALID_SIZE + void GalleryResponsiveLayout::SetSizeOffset(Size value) + { + if (sizeOffset != value) + { + sizeOffset = value; + UpdateMinSize(); + } + } + + vint GalleryResponsiveLayout::GetLevelCount() + { + return maxCount - minCount + 1; + } + + vint GalleryResponsiveLayout::GetCurrentLevel() + { + return itemCount - minCount; + } + + bool GalleryResponsiveLayout::LevelDown() + { + if (itemCount > minCount) + { + itemCount--; + UpdateMinSize(); + CurrentLevelChanged.Execute(GuiEventArgs(this)); + return true; + } + return false; + } + + bool GalleryResponsiveLayout::LevelUp() + { + if (itemCount < maxCount) + { + itemCount++; + UpdateMinSize(); + CurrentLevelChanged.Execute(GuiEventArgs(this)); + return true; + } + return false; + } + } } } } - /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSSHAREDSIZECOMPOSITION.CPP +.\CONTROLS\TOOLSTRIPPACKAGE\GUITOOLSTRIPCOMMAND.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace compositions + namespace controls { - using namespace reflection::description; using namespace collections; - using namespace controls; - using namespace elements; + using namespace compositions; + using namespace regex; /*********************************************************************** -GuiSharedSizeItemComposition +GuiToolstripCommand ***********************************************************************/ - void GuiSharedSizeItemComposition::Update() + void GuiToolstripCommand::OnShortcutKeyItemExecuted(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - if (parentRoot) + Executed.ExecuteWithNewSender(arguments, sender); + } + + void GuiToolstripCommand::OnRenderTargetChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + UpdateShortcutOwner(); + } + + void GuiToolstripCommand::InvokeDescriptionChanged() + { + GuiEventArgs arguments; + DescriptionChanged.Execute(arguments); + } + + compositions::IGuiShortcutKeyManager* GuiToolstripCommand::GetShortcutManagerFromBuilder(Ptr builder) + { + if (builder->global) { - parentRoot->ForceCalculateSizeImmediately(); + return GetApplication()->GetGlobalShortcutKeyManager(); } - InvokeOnCompositionStateChanged(); + else + { + if (attachedControlHost) + { + if (!attachedControlHost->GetShortcutKeyManager()) + { + attachedControlHost->SetShortcutKeyManager(new GuiShortcutKeyManager()); + } + return attachedControlHost->GetShortcutKeyManager(); + } + } + return nullptr; } - void GuiSharedSizeItemComposition::OnParentLineChanged() + void GuiToolstripCommand::RemoveShortcut() { - GuiBoundsComposition::OnParentLineChanged(); - if (parentRoot) + if (shortcutKeyItem) { - parentRoot->childItems.Remove(this); - parentRoot = nullptr; + shortcutKeyItem->Executed.Detach(shortcutKeyItemExecutedHandler); + shortcutKeyItem->GetManager()->DestroyShortcut(shortcutKeyItem); } + shortcutKeyItem = nullptr; + shortcutKeyItemExecutedHandler = nullptr; + } - auto current = GetParent(); - while (current) + void GuiToolstripCommand::ReplaceShortcut(compositions::IGuiShortcutKeyItem* value) + { + if (shortcutKeyItem != value) { - if (auto item = dynamic_cast(current)) - { - break; - } - else if (auto root = dynamic_cast(current)) + RemoveShortcut(); + if (value) { - parentRoot = root; - break; + shortcutKeyItem = value; + shortcutKeyItemExecutedHandler = shortcutKeyItem->Executed.AttachMethod(this, &GuiToolstripCommand::OnShortcutKeyItemExecuted); } - current = current->GetParent(); + InvokeDescriptionChanged(); } + } - if (parentRoot) + void GuiToolstripCommand::BuildShortcut(const WString& builderText) + { + List errors; + if (auto parser = GetParserManager()->GetParser(L"SHORTCUT")) { - parentRoot->childItems.Add(this); - Size minSize; - if (sharedWidth) + if (auto builder = parser->ParseInternal(builderText, errors)) { - vint index = parentRoot->itemWidths.Keys().IndexOf(group); - if (index != -1) + shortcutBuilder = builder; + if (auto shortcutKeyManager = GetShortcutManagerFromBuilder(builder)) { - minSize.x = parentRoot->itemWidths.Values()[index]; + if (auto item = shortcutKeyManager->CreateShortcutIfNotExist(builder->ctrl, builder->shift, builder->alt, builder->key)) + { + ReplaceShortcut(item); + } } } - if (sharedHeight) + } + } + + void GuiToolstripCommand::UpdateShortcutOwner() + { + GuiControlHost* host = nullptr; + if (auto control = dynamic_cast(attachedRootObject)) + { + host = control->GetRelatedControlHost(); + } + else if (auto composition = dynamic_cast(attachedRootObject)) + { + host = composition->GetRelatedControlHost(); + } + + if (attachedControlHost != host) + { + attachedControlHost = host; + if (shortcutBuilder && !shortcutBuilder->global) { - vint index = parentRoot->itemHeights.Keys().IndexOf(group); - if (index != -1) + if (shortcutKeyItem) { - minSize.y = parentRoot->itemHeights.Values()[index]; + ReplaceShortcut(nullptr); } + BuildShortcut(shortcutBuilder->text); } - SetPreferredMinSize(minSize); } } - GuiSharedSizeItemComposition::GuiSharedSizeItemComposition() + GuiToolstripCommand::GuiToolstripCommand() { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - GuiSharedSizeItemComposition::~GuiSharedSizeItemComposition() + GuiToolstripCommand::~GuiToolstripCommand() { + RemoveShortcut(); + shortcutBuilder = nullptr; } - const WString& GuiSharedSizeItemComposition::GetGroup() + void GuiToolstripCommand::Attach(GuiInstanceRootObject* rootObject) { - return group; - } + GuiGraphicsComposition* rootComposition = nullptr; - void GuiSharedSizeItemComposition::SetGroup(const WString& value) - { - if (group != value) + if (attachedRootObject != rootObject) { - group = value; - Update(); + if (attachedRootObject) + { + if (auto control = dynamic_cast(attachedRootObject)) + { + control->ControlSignalTrigerred.Detach(renderTargetChangedHandler); + } + else if (auto composition = dynamic_cast(attachedRootObject)) + { + composition->GetEventReceiver()->renderTargetChanged.Detach(renderTargetChangedHandler); + } + renderTargetChangedHandler = nullptr; + } + + attachedRootObject = rootObject; + if (attachedRootObject) + { + if (auto control = dynamic_cast(attachedRootObject)) + { + renderTargetChangedHandler = control->ControlSignalTrigerred.AttachLambda( + [=](GuiGraphicsComposition* sender, GuiControlSignalEventArgs& arguments) + { + OnRenderTargetChanged(sender, arguments); + }); + } + else if (auto composition = dynamic_cast(attachedRootObject)) + { + renderTargetChangedHandler = composition->GetEventReceiver()->renderTargetChanged.AttachMethod(this, &GuiToolstripCommand::OnRenderTargetChanged); + } + } + UpdateShortcutOwner(); } } - bool GuiSharedSizeItemComposition::GetSharedWidth() + void GuiToolstripCommand::Detach(GuiInstanceRootObject* rootObject) { - return sharedWidth; + Attach(nullptr); } - void GuiSharedSizeItemComposition::SetSharedWidth(bool value) + Ptr GuiToolstripCommand::GetLargeImage() { - if (sharedWidth != value) + return largeImage; + } + + void GuiToolstripCommand::SetLargeImage(Ptr value) + { + if (largeImage != value) { - sharedWidth = value; - Update(); + largeImage = value; + InvokeDescriptionChanged(); } } - bool GuiSharedSizeItemComposition::GetSharedHeight() + Ptr GuiToolstripCommand::GetImage() { - return sharedHeight; + return image; } - void GuiSharedSizeItemComposition::SetSharedHeight(bool value) + void GuiToolstripCommand::SetImage(Ptr value) { - if (sharedHeight != value) + if(image!=value) { - sharedHeight = value; - Update(); + image=value; + InvokeDescriptionChanged(); } } -/*********************************************************************** -GuiSharedSizeRootComposition -***********************************************************************/ + const WString& GuiToolstripCommand::GetText() + { + return text; + } - void GuiSharedSizeRootComposition::AddSizeComponent(collections::Dictionary& sizes, const WString& group, vint sizeComponent) + void GuiToolstripCommand::SetText(const WString& value) { - vint index = sizes.Keys().IndexOf(group); - if (index == -1) - { - sizes.Add(group, sizeComponent); - } - else if (sizes.Values().Get(index) < sizeComponent) + if(text!=value) { - sizes.Set(group, sizeComponent); + text=value; + InvokeDescriptionChanged(); } } - void GuiSharedSizeRootComposition::CollectSizes(collections::Dictionary& widths, collections::Dictionary& heights) + compositions::IGuiShortcutKeyItem* GuiToolstripCommand::GetShortcut() { - for (auto item : childItems) - { - auto group = item->GetGroup(); - auto minSize = item->GetPreferredMinSize(); - item->SetPreferredMinSize(Size(0, 0)); - auto size = item->GetPreferredBounds().GetSize(); + return shortcutKeyItem; + } - if (item->GetSharedWidth()) - { - AddSizeComponent(widths, group, size.x); - } - if (item->GetSharedHeight()) - { - AddSizeComponent(heights, group, size.y); - } - - item->SetPreferredMinSize(minSize); - } + WString GuiToolstripCommand::GetShortcutBuilder() + { + return shortcutBuilder ? shortcutBuilder->text : L""; } - void GuiSharedSizeRootComposition::AlignSizes(collections::Dictionary& widths, collections::Dictionary& heights) + void GuiToolstripCommand::SetShortcutBuilder(const WString& value) { - for (auto item : childItems) - { - auto group = item->GetGroup(); - auto size = item->GetPreferredMinSize(); + BuildShortcut(value); + } - if (item->GetSharedWidth()) - { - size.x = widths[group]; - } - if (item->GetSharedHeight()) - { - size.y = heights[group]; - } + bool GuiToolstripCommand::GetEnabled() + { + return enabled; + } - item->SetPreferredMinSize(size); + void GuiToolstripCommand::SetEnabled(bool value) + { + if(enabled!=value) + { + enabled=value; + InvokeDescriptionChanged(); } } - GuiSharedSizeRootComposition::GuiSharedSizeRootComposition() + bool GuiToolstripCommand::GetSelected() { + return selected; } - GuiSharedSizeRootComposition::~GuiSharedSizeRootComposition() + void GuiToolstripCommand::SetSelected(bool value) { + if(selected!=value) + { + selected=value; + InvokeDescriptionChanged(); + } } - void GuiSharedSizeRootComposition::ForceCalculateSizeImmediately() +/*********************************************************************** +GuiToolstripCommand::ShortcutBuilder Parser +***********************************************************************/ + + class GuiToolstripCommandShortcutParser : public Object, public IGuiParser { - itemWidths.Clear(); - itemHeights.Clear(); + typedef GuiToolstripCommand::ShortcutBuilder ShortcutBuilder; + public: + Regex regexShortcut; + const vint _global; + const vint _ctrl; + const vint _shift; + const vint _alt; + const vint _key; - CollectSizes(itemWidths, itemHeights); - AlignSizes(itemWidths, itemHeights); - GuiBoundsComposition::ForceCalculateSizeImmediately(); - } + GuiToolstripCommandShortcutParser() + : regexShortcut(L"((global:))?((Ctrl)/+|(Shift)/+|(Alt)/+)*(/.+)") + , _global(regexShortcut.CaptureNames().IndexOf(L"global")) + , _ctrl(regexShortcut.CaptureNames().IndexOf(L"ctrl")) + , _shift(regexShortcut.CaptureNames().IndexOf(L"shift")) + , _alt(regexShortcut.CaptureNames().IndexOf(L"alt")) + , _key(regexShortcut.CaptureNames().IndexOf(L"key")) + { + } - Rect GuiSharedSizeRootComposition::GetBounds() + Ptr ParseInternal(const WString& text, collections::List& errors)override + { + Ptr match=regexShortcut.MatchHead(text); + if (match && match->Result().Length() != text.Length()) + { + glr::ParsingError error; + error.message = L"Failed to parse a shortcut \"" + text + L"\"."; + errors.Add(error); + return nullptr; + } + + auto builder = Ptr(new ShortcutBuilder); + builder->text = text; + builder->global = match->Groups().Contains(_global); + builder->ctrl = match->Groups().Contains(_ctrl); + builder->shift = match->Groups().Contains(_shift); + builder->alt = match->Groups().Contains(_alt); + + WString name = match->Groups()[_key][0].Value(); + builder->key = GetCurrentController()->InputService()->GetKey(name); + + return builder->key == VKEY::KEY_UNKNOWN ? nullptr : builder; + } + }; + +/*********************************************************************** +GuiToolstripCommandPlugin +***********************************************************************/ + + class GuiToolstripCommandPlugin : public Object, public IGuiPlugin { - Dictionary widths, heights; - CollectSizes(widths, heights); - bool minSizeModified = CompareEnumerable(itemWidths, widths) != 0 || CompareEnumerable(itemHeights, heights) != 0; + public: - if (minSizeModified) + GUI_PLUGIN_NAME(GacUI_Compiler_ShortcutParser) { - CopyFrom(itemWidths, widths); - CopyFrom(itemHeights, heights); - AlignSizes(itemWidths, itemHeights); - GuiBoundsComposition::ForceCalculateSizeImmediately(); + GUI_PLUGIN_DEPEND(GacUI_Parser); } - return GuiBoundsComposition::GetBounds(); - } + + void Load()override + { + IGuiParserManager* manager=GetParserManager(); + manager->SetParser(L"SHORTCUT", Ptr(new GuiToolstripCommandShortcutParser)); + } + + void Unload()override + { + } + }; + GUI_REGISTER_PLUGIN(GuiToolstripCommandPlugin) } } } /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSSPECIALIZEDCOMPOSITION.CPP +.\CONTROLS\TOOLSTRIPPACKAGE\GUITOOLSTRIPMENU.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace compositions + namespace controls { + using namespace collections; + using namespace compositions; /*********************************************************************** -GuiSideAlignedComposition +GuiToolstripCollectionBase ***********************************************************************/ - GuiSideAlignedComposition::GuiSideAlignedComposition() - :direction(Top) - ,maxLength(10) - ,maxRatio(1.0) - { - } + const wchar_t* const IToolstripUpdateLayoutInvoker::Identifier = L"vl::presentation::controls::IToolstripUpdateLayoutInvoker"; - GuiSideAlignedComposition::~GuiSideAlignedComposition() + void GuiToolstripCollectionBase::InvokeUpdateLayout() { + if(contentCallback) + { + contentCallback->UpdateLayout(); + } } - GuiSideAlignedComposition::Direction GuiSideAlignedComposition::GetDirection() + bool GuiToolstripCollectionBase::QueryInsert(vint index, GuiControl* const& child) { - return direction; + return !items.Contains(child) && !child->GetBoundsComposition()->GetParent(); } - void GuiSideAlignedComposition::SetDirection(Direction value) + void GuiToolstripCollectionBase::BeforeRemove(vint index, GuiControl* const& child) { - direction = value; - InvokeOnCompositionStateChanged(); + if (auto invoker = child->QueryTypedService()) + { + invoker->SetCallback(nullptr); + } + InvokeUpdateLayout(); } - vint GuiSideAlignedComposition::GetMaxLength() + void GuiToolstripCollectionBase::AfterInsert(vint index, GuiControl* const& child) { - return maxLength; + if (auto invoker = child->QueryTypedService()) + { + invoker->SetCallback(contentCallback); + } + InvokeUpdateLayout(); } - void GuiSideAlignedComposition::SetMaxLength(vint value) + void GuiToolstripCollectionBase::AfterRemove(vint index, vint count) { - if (value < 0) value = 0; - maxLength = value; - InvokeOnCompositionStateChanged(); + InvokeUpdateLayout(); } - double GuiSideAlignedComposition::GetMaxRatio() + GuiToolstripCollectionBase::GuiToolstripCollectionBase(IToolstripUpdateLayout* _contentCallback) + :contentCallback(_contentCallback) { - return maxRatio; } - void GuiSideAlignedComposition::SetMaxRatio(double value) + GuiToolstripCollectionBase::~GuiToolstripCollectionBase() { - maxRatio = - value < 0 ? 0 : - value>1 ? 1 : - value; - InvokeOnCompositionStateChanged(); } - bool GuiSideAlignedComposition::IsSizeAffectParent() - { - return false; - } +/*********************************************************************** +GuiToolstripCollection +***********************************************************************/ - Rect GuiSideAlignedComposition::GetBounds() + void GuiToolstripCollection::UpdateItemVisibility(vint index, GuiControl* child) { - Rect result; - GuiGraphicsComposition* parent = GetParent(); - if (parent) + auto stackItem = stackComposition->GetStackItems()[index]; + if (child->GetVisible()) { - Rect bounds = parent->GetBounds(); - vint w = (vint)(bounds.Width()*maxRatio); - vint h = (vint)(bounds.Height()*maxRatio); - if (w > maxLength) w = maxLength; - if (h > maxLength) h = maxLength; - switch (direction) - { - case Left: - { - bounds.x2 = bounds.x1 + w; - } - break; - case Top: - { - bounds.y2 = bounds.y1 + h; - } - break; - case Right: - { - bounds.x1 = bounds.x2 - w; - } - break; - case Bottom: - { - bounds.y1 = bounds.y2 - h; - } - break; - } - result = bounds; + stackItem->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + child->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + } + else + { + stackItem->SetMinSizeLimitation(GuiGraphicsComposition::NoLimit); + child->GetBoundsComposition()->SetAlignmentToParent(Margin(-1, -1, -1, -1)); } - UpdatePreviousBounds(result); - return result; } -/*********************************************************************** -GuiPartialViewComposition -***********************************************************************/ + void GuiToolstripCollection::OnItemVisibleChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) + { + auto child = sender->GetRelatedControl(); + vint index = IndexOf(child); + UpdateItemVisibility(index, child); + InvokeUpdateLayout(); + } - GuiPartialViewComposition::GuiPartialViewComposition() - :wRatio(0.0) - ,wPageSize(1.0) - ,hRatio(0.0) - ,hPageSize(1.0) + void GuiToolstripCollection::BeforeRemove(vint index, GuiControl* const& child) { + GuiStackItemComposition* stackItem = stackComposition->GetStackItems().Get(index); + + auto eventHandler = eventHandlers[index]; + child->VisibleChanged.Detach(eventHandler); + eventHandlers.RemoveAt(index); + + GuiToolstripCollectionBase::BeforeRemove(index, child); } - GuiPartialViewComposition::~GuiPartialViewComposition() + void GuiToolstripCollection::AfterInsert(vint index, GuiControl* const& child) { + { + GuiStackItemComposition* stackItem = new GuiStackItemComposition; + stackItem->AddChild(child->GetBoundsComposition()); + stackComposition->InsertStackItem(index, stackItem); + } + { + auto eventHandler = child->VisibleChanged.AttachMethod(this, &GuiToolstripCollection::OnItemVisibleChanged); + eventHandlers.Insert(index, eventHandler); + } + UpdateItemVisibility(index, child); + GuiToolstripCollectionBase::AfterInsert(index, child); } - double GuiPartialViewComposition::GetWidthRatio() + void GuiToolstripCollection::AfterRemove(vint index, vint count) { - return wRatio; + for (vint i = 0; i < count; i++) + { + auto stackItem = stackComposition->GetStackItems().Get(index); + stackComposition->RemoveChild(stackItem); + SafeDeleteComposition(stackItem); + } + GuiToolstripCollectionBase::AfterRemove(index, count); } - double GuiPartialViewComposition::GetWidthPageSize() + GuiToolstripCollection::GuiToolstripCollection(IToolstripUpdateLayout* _contentCallback, compositions::GuiStackComposition* _stackComposition) + :GuiToolstripCollectionBase(_contentCallback) + ,stackComposition(_stackComposition) { - return wPageSize; + stackComposition->SetPreferredMinSize(Size(1, 1)); } - double GuiPartialViewComposition::GetHeightRatio() + GuiToolstripCollection::~GuiToolstripCollection() { - return hRatio; } - double GuiPartialViewComposition::GetHeightPageSize() +/*********************************************************************** +GuiToolstripMenu +***********************************************************************/ + + void GuiToolstripMenu::UpdateLayout() { - return hPageSize; + sharedSizeRootComposition->ForceCalculateSizeImmediately(); } - void GuiPartialViewComposition::SetWidthRatio(double value) + GuiToolstripMenu::GuiToolstripMenu(theme::ThemeName themeName, GuiControl* _owner) + :GuiMenu(themeName, _owner) { - wRatio = value; - InvokeOnCompositionStateChanged(); + sharedSizeRootComposition = new GuiSharedSizeRootComposition(); + sharedSizeRootComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + sharedSizeRootComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->AddChild(sharedSizeRootComposition); + + stackComposition=new GuiStackComposition; + stackComposition->SetDirection(GuiStackComposition::Vertical); + stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + sharedSizeRootComposition->AddChild(stackComposition); + + toolstripItems = Ptr(new GuiToolstripCollection(this, stackComposition)); } - void GuiPartialViewComposition::SetWidthPageSize(double value) + GuiToolstripMenu::~GuiToolstripMenu() { - wPageSize = value; - InvokeOnCompositionStateChanged(); } - void GuiPartialViewComposition::SetHeightRatio(double value) + collections::ObservableListBase& GuiToolstripMenu::GetToolstripItems() { - hRatio = value; - InvokeOnCompositionStateChanged(); + return *toolstripItems.Obj(); } - void GuiPartialViewComposition::SetHeightPageSize(double value) +/*********************************************************************** +GuiToolstripMenuBar +***********************************************************************/ + + GuiToolstripMenuBar::GuiToolstripMenuBar(theme::ThemeName themeName) + :GuiMenuBar(themeName) { - hPageSize = value; - InvokeOnCompositionStateChanged(); + stackComposition=new GuiStackComposition; + stackComposition->SetDirection(GuiStackComposition::Horizontal); + stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->AddChild(stackComposition); + + toolstripItems=Ptr(new GuiToolstripCollection(nullptr, stackComposition)); } - bool GuiPartialViewComposition::IsSizeAffectParent() + GuiToolstripMenuBar::~GuiToolstripMenuBar() { - return false; } - Rect GuiPartialViewComposition::GetBounds() + collections::ObservableListBase& GuiToolstripMenuBar::GetToolstripItems() { - Rect result; - GuiGraphicsComposition* parent = GetParent(); - if (parent) - { - Rect bounds = parent->GetBounds(); - vint w = bounds.Width(); - vint h = bounds.Height(); - vint pw = (vint)(wPageSize*w); - vint ph = (vint)(hPageSize*h); + return *toolstripItems.Obj(); + } - vint ow = preferredMinSize.x - pw; - if (ow < 0) ow = 0; - vint oh = preferredMinSize.y - ph; - if (oh < 0) oh = 0; +/*********************************************************************** +GuiToolstripToolBar +***********************************************************************/ + + GuiToolstripToolBar::GuiToolstripToolBar(theme::ThemeName themeName) + :GuiControl(themeName) + { + stackComposition=new GuiStackComposition; + stackComposition->SetDirection(GuiStackComposition::Horizontal); + stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->AddChild(stackComposition); - w -= ow; - h -= oh; - pw += ow; - ph += oh; + toolstripItems=Ptr(new GuiToolstripCollection(nullptr, stackComposition)); + } - result = Rect(Point((vint)(wRatio*w), (vint)(hRatio*h)), Size(pw, ph)); - } - UpdatePreviousBounds(result); - return result; + GuiToolstripToolBar::~GuiToolstripToolBar() + { } - } - } -} + collections::ObservableListBase& GuiToolstripToolBar::GetToolstripItems() + { + return *toolstripItems.Obj(); + } /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSSTACKCOMPOSITION.CPP +GuiToolstripButton ***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace compositions - { - -/*********************************************************************** -GuiStackComposition -***********************************************************************/ + void GuiToolstripButton::SetCallback(IToolstripUpdateLayout* _callback) + { + callback = _callback; + } - void GuiStackComposition::UpdateStackItemBounds() + void GuiToolstripButton::OnActiveAlt() { - if (stackItemBounds.Count() != stackItems.Count()) + auto host = GetSubMenuHost(); + if (host == this) { - stackItemBounds.Resize(stackItems.Count()); + GuiMenuButton::OnActiveAlt(); } - - stackItemTotalSize = Size(0, 0); - Point offset; - for (vint i = 0; i < stackItems.Count(); i++) + else { - vint offsetX = 0; - vint offsetY = 0; - Size itemSize = stackItems[i]->GetMinSize(); - stackItemBounds[i] = Rect(offset, itemSize); - -#define ACCUMULATE(U, V) \ - { \ - if (stackItemTotalSize.V < itemSize.V) \ - { \ - stackItemTotalSize.V = itemSize.V; \ - } \ - if (i > 0) \ - { \ - stackItemTotalSize.U += padding; \ - } \ - stackItemTotalSize.U += itemSize.U; \ - } \ - - switch (direction) - { - case GuiStackComposition::Horizontal: - case GuiStackComposition::ReversedHorizontal: - ACCUMULATE(x, y) - break; - case GuiStackComposition::Vertical: - case GuiStackComposition::ReversedVertical: - ACCUMULATE(y, x) - break; - } - -#undef ACCUMULATE - offset.x += itemSize.x + padding; - offset.y += itemSize.y + padding; + host->QueryTypedService()->OnActiveAlt(); } - EnsureStackItemVisible(); } - void GuiStackComposition::EnsureStackItemVisible() + void GuiToolstripButton::UpdateCommandContent() { -#define ADJUSTMENT(U, V) \ - if (itemBounds.U() <= 0) \ - { \ - adjustment -= itemBounds.U(); \ - } \ - else \ - { \ - vint overflow = itemBounds.V() - previousBounds.V(); \ - if (overflow > 0) \ - { \ - adjustment -= overflow; \ - } \ - } \ - - if (ensuringVisibleStackItem) + if(command) { - Rect itemBounds = ensuringVisibleStackItem->GetBounds(); - switch (direction) + SetLargeImage(command->GetLargeImage()); + SetImage(command->GetImage()); + SetText(command->GetText()); + SetEnabled(command->GetEnabled()); + SetSelected(command->GetSelected()); + if(command->GetShortcut()) { - case Horizontal: - case ReversedHorizontal: - ADJUSTMENT(Left, Right) - break; - case Vertical: - case ReversedVertical: - ADJUSTMENT(Top, Bottom) - break; + SetShortcutText(command->GetShortcut()->GetName()); + } + else + { + SetShortcutText(L""); } } - - InvokeOnCompositionStateChanged(); -#undef ADJUSTMENT + else + { + SetLargeImage(nullptr); + SetImage(nullptr); + SetText(L""); + SetEnabled(true); + SetSelected(false); + SetShortcutText(L""); + } } - void GuiStackComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) + void GuiToolstripButton::OnLayoutAwaredPropertyChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - EnsureStackItemVisible(); + if (callback) + { + callback->UpdateLayout(); + } } - void GuiStackComposition::OnChildInserted(GuiGraphicsComposition* child) + void GuiToolstripButton::OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiBoundsComposition::OnChildInserted(child); - GuiStackItemComposition* item = dynamic_cast(child); - if (item) + if(command) { - if (!stackItems.Contains(item)) - { - stackItems.Add(item); - } - UpdateStackItemBounds(); + command->Executed.ExecuteWithNewSender(arguments, sender); } } - void GuiStackComposition::OnChildRemoved(GuiGraphicsComposition* child) + void GuiToolstripButton::OnCommandDescriptionChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments) { - GuiBoundsComposition::OnChildRemoved(child); - GuiStackItemComposition* item = dynamic_cast(child); - if (item) + UpdateCommandContent(); + } + + GuiToolstripButton::GuiToolstripButton(theme::ThemeName themeName) + :GuiMenuButton(themeName) + ,command(0) + { + SetAutoFocus(false); + Clicked.AttachMethod(this, &GuiToolstripButton::OnClicked); + TextChanged.AttachMethod(this, &GuiToolstripButton::OnLayoutAwaredPropertyChanged); + ShortcutTextChanged.AttachMethod(this, &GuiToolstripButton::OnLayoutAwaredPropertyChanged); + } + + GuiToolstripButton::~GuiToolstripButton() + { + } + + GuiToolstripCommand* GuiToolstripButton::GetCommand() + { + return command; + } + + void GuiToolstripButton::SetCommand(GuiToolstripCommand* value) + { + if(command!=value) { - stackItems.Remove(item); - if (item == ensuringVisibleStackItem) + if(command) { - ensuringVisibleStackItem = 0; + command->DescriptionChanged.Detach(descriptionChangedHandler); } - UpdateStackItemBounds(); + command=0; + descriptionChangedHandler=0; + if(value) + { + command=value; + descriptionChangedHandler=command->DescriptionChanged.AttachMethod(this, &GuiToolstripButton::OnCommandDescriptionChanged); + } + UpdateCommandContent(); } } - GuiStackComposition::GuiStackComposition() + GuiToolstripMenu* GuiToolstripButton::GetToolstripSubMenu() { - BoundsChanged.AttachMethod(this, &GuiStackComposition::OnBoundsChanged); + return dynamic_cast(GetSubMenu()); } - GuiStackComposition::~GuiStackComposition() + GuiToolstripMenu* GuiToolstripButton::EnsureToolstripSubMenu() { + if (!GetSubMenu()) + { + CreateToolstripSubMenu({}); + } + return dynamic_cast(GetSubMenu()); } - const GuiStackComposition::ItemCompositionList& GuiStackComposition::GetStackItems() + void GuiToolstripButton::CreateToolstripSubMenu(TemplateProperty subMenuTemplate) { - return stackItems; + if (!subMenu) + { + auto newSubMenu = new GuiToolstripMenu(theme::ThemeName::Menu, this); + if (subMenuTemplate) + { + newSubMenu->SetControlTemplate(subMenuTemplate); + } + else + { + newSubMenu->SetControlTemplate(TypedControlTemplateObject(true)->GetSubMenuTemplate()); + } + SetSubMenu(newSubMenu, true); + } } - bool GuiStackComposition::InsertStackItem(vint index, GuiStackItemComposition* item) + IDescriptable* GuiToolstripButton::QueryService(const WString& identifier) { - index = stackItems.Insert(index, item); - if (!AddChild(item)) + if (identifier == IToolstripUpdateLayoutInvoker::Identifier) { - stackItems.RemoveAt(index); - return false; + return (IToolstripUpdateLayoutInvoker*)this; } else { - return true; + return GuiMenuButton::QueryService(identifier); } } - GuiStackComposition::Direction GuiStackComposition::GetDirection() +/*********************************************************************** +GuiToolstripNestedContainer +***********************************************************************/ + + void GuiToolstripNestedContainer::UpdateLayout() { - return direction; + // It could happen if a GuiToolstripGroupContainer contains something other that GuiToolstripGroup + if (callback && callback != this) + { + callback->UpdateLayout(); + } } - void GuiStackComposition::SetDirection(Direction value) + void GuiToolstripNestedContainer::SetCallback(IToolstripUpdateLayout* _callback) { - direction = value; - EnsureStackItemVisible(); + callback = _callback; } - vint GuiStackComposition::GetPadding() + GuiToolstripNestedContainer::GuiToolstripNestedContainer(theme::ThemeName themeName) + :GuiControl(themeName) { - return padding; } - void GuiStackComposition::SetPadding(vint value) + GuiToolstripNestedContainer::~GuiToolstripNestedContainer() { - padding = value; - EnsureStackItemVisible(); } - void GuiStackComposition::ForceCalculateSizeImmediately() + IDescriptable* GuiToolstripNestedContainer::QueryService(const WString& identifier) { - GuiBoundsComposition::ForceCalculateSizeImmediately(); - UpdateStackItemBounds(); + if (identifier == IToolstripUpdateLayoutInvoker::Identifier) + { + return (IToolstripUpdateLayoutInvoker*)this; + } + else + { + return GuiControl::QueryService(identifier); + } } - - Size GuiStackComposition::GetMinPreferredClientSize() + +/*********************************************************************** +GuiToolstripGroupContainer::GroupCollection +***********************************************************************/ + + void GuiToolstripGroupContainer::GroupCollection::BeforeRemove(vint index, GuiControl* const& child) { - Size minSize = GuiBoundsComposition::GetMinPreferredClientSize(); - if (GetMinSizeLimitation() == GuiGraphicsComposition::LimitToElementAndChildren) + auto controlStackItem = container->stackComposition->GetStackItems()[index * 2]; + CHECK_ERROR(controlStackItem->RemoveChild(child->GetBoundsComposition()), L"GuiToolstripGroupContainer::GroupCollection::BeforeRemove(vint, GuiControl* const&)#Internal error"); + } + + void GuiToolstripGroupContainer::GroupCollection::AfterInsert(vint index, GuiControl* const& child) + { + auto controlStackItem = new GuiStackItemComposition; + child->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + CHECK_ERROR(controlStackItem->AddChild(child->GetBoundsComposition()), L"GuiToolstripGroupContainer::GroupCollection::AfterInsert(vint, GuiControl* const&)#Internal error"); + + if (container->stackComposition->GetStackItems().Count() > 0) { - if (!ensuringVisibleStackItem || direction == Vertical || direction == ReversedVertical) - { - if (minSize.x < stackItemTotalSize.x) - { - minSize.x = stackItemTotalSize.x; - } - } - if (!ensuringVisibleStackItem || direction == Horizontal || direction == ReversedHorizontal) + auto splitterStackItem = new GuiStackItemComposition; + auto splitter = new GuiControl(container->splitterThemeName); + if (splitterTemplate) { - if (minSize.y < stackItemTotalSize.y) - { - minSize.y = stackItemTotalSize.y; - } + splitter->SetControlTemplate(splitterTemplate); } + splitter->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + splitterStackItem->AddChild(splitter->GetBoundsComposition()); + container->stackComposition->InsertStackItem(index == 0 ? 0 : index * 2 - 1, splitterStackItem); } - vint x = 0; - vint y = 0; - if (extraMargin.left > 0) x += extraMargin.left; - if (extraMargin.right > 0) x += extraMargin.right; - if (extraMargin.top > 0) y += extraMargin.top; - if (extraMargin.bottom > 0) y += extraMargin.bottom; - return minSize + Size(x, y); + container->stackComposition->InsertStackItem(index * 2, controlStackItem); + + GuiToolstripCollectionBase::AfterInsert(index, child); } - Rect GuiStackComposition::GetBounds() + void GuiToolstripGroupContainer::GroupCollection::AfterRemove(vint index, vint count) { - for (vint i = 0; i < stackItems.Count(); i++) + vint min = index * 2; + vint max = (index + count - 1) * 2; + for (vint i = min; i <= max; i++) { - if (stackItemBounds[i].GetSize() != stackItems[i]->GetMinSize()) - { - UpdateStackItemBounds(); - break; - } + auto stackItem = container->stackComposition->GetStackItems()[min]; + container->stackComposition->RemoveChild(stackItem); + SafeDeleteComposition(stackItem); } + GuiToolstripCollectionBase::AfterRemove(index, count); + } - Rect bounds = GuiBoundsComposition::GetBounds(); - previousBounds = bounds; - UpdatePreviousBounds(previousBounds); - return bounds; + GuiToolstripGroupContainer::GroupCollection::GroupCollection(GuiToolstripGroupContainer* _container) + :GuiToolstripCollectionBase(_container) + , container(_container) + { } - Margin GuiStackComposition::GetExtraMargin() + GuiToolstripGroupContainer::GroupCollection::~GroupCollection() { - return extraMargin; } - void GuiStackComposition::SetExtraMargin(Margin value) + GuiToolstripGroupContainer::ControlTemplatePropertyType GuiToolstripGroupContainer::GroupCollection::GetSplitterTemplate() { - extraMargin=value; - EnsureStackItemVisible(); + return splitterTemplate; } - bool GuiStackComposition::IsStackItemClipped() + void GuiToolstripGroupContainer::GroupCollection::SetSplitterTemplate(const ControlTemplatePropertyType& value) { - Rect clientArea = GetClientArea(); - switch(direction) + splitterTemplate = value; + RebuildSplitters(); + } + + void GuiToolstripGroupContainer::GroupCollection::RebuildSplitters() + { + auto stack = container->stackComposition; + vint count = stack->GetStackItems().Count(); + for (vint i = 1; i < count; i += 2) { - case Horizontal: - case ReversedHorizontal: + auto stackItem = stack->GetStackItems()[i]; { - vint width = stackItemTotalSize.x - + (extraMargin.left > 0 ? extraMargin.left : 0) - + (extraMargin.right > 0 ? extraMargin.right : 0) - ; - return width > clientArea.Width(); + auto control = stackItem->Children()[0]->GetAssociatedControl(); + CHECK_ERROR(control != nullptr, L"GuiToolstripGroupContainer::GroupCollection::RebuildSplitters()#Internal error"); + stackItem->RemoveChild(control->GetBoundsComposition()); + delete control; } - break; - case Vertical: - case ReversedVertical: { - vint height = stackItemTotalSize.y - + (extraMargin.top > 0 ? extraMargin.top : 0) - + (extraMargin.bottom > 0 ? extraMargin.bottom : 0) - ; - return height > clientArea.Height(); + auto control = new GuiControl(container->splitterThemeName); + if (splitterTemplate) + { + control->SetControlTemplate(splitterTemplate); + } + control->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackItem->AddChild(control->GetBoundsComposition()); } - break; } - return false; } - bool GuiStackComposition::EnsureVisible(vint index) +/*********************************************************************** +GuiToolstripGroupContainer +***********************************************************************/ + + void GuiToolstripGroupContainer::OnParentLineChanged() { - if (0 <= index && index < stackItems.Count()) + auto direction = GuiStackComposition::Horizontal; + if (auto service = QueryTypedService()) { - ensuringVisibleStackItem = stackItems[index]; + if (service->GetPreferredDirection() == IGuiMenuService::Vertical) + { + direction = GuiStackComposition::Vertical; + } } - else + + if (direction != stackComposition->GetDirection()) { - ensuringVisibleStackItem = 0; + if (direction == GuiStackComposition::Vertical) + { + splitterThemeName = theme::ThemeName::MenuSplitter; + } + else + { + splitterThemeName = theme::ThemeName::ToolstripSplitter; + } + + stackComposition->SetDirection(direction); + groupCollection->RebuildSplitters(); + UpdateLayout(); } - EnsureStackItemVisible(); - return ensuringVisibleStackItem != 0; - } -/*********************************************************************** -GuiStackItemComposition -***********************************************************************/ + GuiControl::OnParentLineChanged(); + } - void GuiStackItemComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) + GuiToolstripGroupContainer::GuiToolstripGroupContainer(theme::ThemeName themeName) + :GuiToolstripNestedContainer(themeName) + , splitterThemeName(theme::ThemeName::ToolstripSplitter) { - GuiGraphicsSite::OnParentChanged(oldParent, newParent); - stackParent = newParent == 0 ? 0 : dynamic_cast(newParent); + stackComposition = new GuiStackComposition; + stackComposition->SetDirection(GuiStackComposition::Horizontal); + stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->AddChild(stackComposition); + + groupCollection = Ptr(new GroupCollection(this)); } - Size GuiStackItemComposition::GetMinSize() + GuiToolstripGroupContainer::~GuiToolstripGroupContainer() { - return GetBoundsInternal(bounds).GetSize(); } - GuiStackItemComposition::GuiStackItemComposition() - :stackParent(0) + GuiToolstripGroupContainer::ControlTemplatePropertyType GuiToolstripGroupContainer::GetSplitterTemplate() { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + return groupCollection->GetSplitterTemplate(); } - GuiStackItemComposition::~GuiStackItemComposition() + void GuiToolstripGroupContainer::SetSplitterTemplate(const ControlTemplatePropertyType& value) { + groupCollection->SetSplitterTemplate(value); } - bool GuiStackItemComposition::IsSizeAffectParent() + collections::ObservableListBase& GuiToolstripGroupContainer::GetToolstripItems() { - return false; + return *groupCollection.Obj(); } - Rect GuiStackItemComposition::GetBounds() +/*********************************************************************** +GuiToolstripGroup +***********************************************************************/ + + void GuiToolstripGroup::OnParentLineChanged() { - Rect result = bounds; - if(stackParent) + auto direction = GuiStackComposition::Horizontal; + if (auto service = QueryTypedService()) { - vint index = stackParent->stackItems.IndexOf(this); - if (index != -1) - { - result = stackParent->stackItemBounds[index]; - } - - Rect parentBounds = stackParent->previousBounds; - Margin margin = stackParent->extraMargin; - if (margin.left <= 0) margin.left = 0; - if (margin.top <= 0) margin.top = 0; - if (margin.right <= 0) margin.right = 0; - if (margin.bottom <= 0) margin.bottom = 0; - - auto x = result.Left(); - auto y = result.Top(); - auto w = result.Width(); - auto h = result.Height(); - - switch (stackParent->direction) + if (service->GetPreferredDirection() == IGuiMenuService::Vertical) { - case GuiStackComposition::Horizontal: - x += margin.left + stackParent->adjustment; - y = margin.top; - h = parentBounds.Height() - margin.top - margin.bottom; - break; - case GuiStackComposition::ReversedHorizontal: - x = parentBounds.Width() - margin.right - x - w + stackParent->adjustment; - y = margin.top; - h = parentBounds.Height() - margin.top - margin.bottom; - break; - case GuiStackComposition::Vertical: - x = margin.left; - y += margin.top + stackParent->adjustment; - w = parentBounds.Width() - margin.left - margin.right; - break; - case GuiStackComposition::ReversedVertical: - x = margin.left; - y = parentBounds.Height() - margin.bottom - y - h + stackParent->adjustment; - w = parentBounds.Width() - margin.left - margin.right; - break; + direction = GuiStackComposition::Vertical; } + } - result = Rect( - x - extraMargin.left, - y - extraMargin.top, - x + w + extraMargin.right, - y + h + extraMargin.bottom - ); + if (direction != stackComposition->GetDirection()) + { + stackComposition->SetDirection(direction); + UpdateLayout(); } - UpdatePreviousBounds(result); - return result; + + GuiControl::OnParentLineChanged(); } - void GuiStackItemComposition::SetBounds(Rect value) + GuiToolstripGroup::GuiToolstripGroup(theme::ThemeName themeName) + :GuiToolstripNestedContainer(themeName) { - bounds = value; - InvokeOnCompositionStateChanged(); + stackComposition = new GuiStackComposition; + stackComposition->SetDirection(GuiStackComposition::Horizontal); + stackComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); + stackComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + containerComposition->AddChild(stackComposition); + + toolstripItems = Ptr(new GuiToolstripCollection(nullptr, stackComposition)); } - Margin GuiStackItemComposition::GetExtraMargin() + GuiToolstripGroup::~GuiToolstripGroup() { - return extraMargin; } - void GuiStackItemComposition::SetExtraMargin(Margin value) + collections::ObservableListBase& GuiToolstripGroup::GetToolstripItems() { - extraMargin = value; - InvokeOnCompositionStateChanged(); + return *toolstripItems.Obj(); } } } } - /*********************************************************************** -.\GRAPHICSCOMPOSITION\GUIGRAPHICSTABLECOMPOSITION.CPP +.\GRAPHICSCOMPOSITION\GUIGRAPHICSAXIS.CPP ***********************************************************************/ namespace vl @@ -27960,7144 +27107,7245 @@ namespace vl { namespace compositions { - using namespace collections; - using namespace controls; - using namespace elements; /*********************************************************************** -GuiTableComposition +GuiDefaultAxis ***********************************************************************/ - namespace update_cell_bounds_helpers + GuiDefaultAxis::GuiDefaultAxis() { - vint First(vint a, vint b) - { - return a; - } + } - vint Second(vint a, vint b) - { - return b; - } + GuiDefaultAxis::~GuiDefaultAxis() + { + } - vint X(Size s) - { - return s.x; - } + Size GuiDefaultAxis::RealSizeToVirtualSize(Size size) + { + return size; + } - vint Y(Size s) - { - return s.y; - } + Size GuiDefaultAxis::VirtualSizeToRealSize(Size size) + { + return size; + } - vint RL(GuiCellComposition* cell) - { - return cell->GetRow(); - } + Point GuiDefaultAxis::RealPointToVirtualPoint(Size realFullSize, Point point) + { + return point; + } - vint CL(GuiCellComposition* cell) - { - return cell->GetColumn(); - } + Point GuiDefaultAxis::VirtualPointToRealPoint(Size realFullSize, Point point) + { + return point; + } - vint RS(GuiCellComposition* cell) - { - return cell->GetRowSpan(); - } + Rect GuiDefaultAxis::RealRectToVirtualRect(Size realFullSize, Rect rect) + { + return rect; + } - vint CS(GuiCellComposition* cell) - { - return cell->GetColumnSpan(); - } + Rect GuiDefaultAxis::VirtualRectToRealRect(Size realFullSize, Rect rect) + { + return rect; } - using namespace update_cell_bounds_helpers; - vint GuiTableComposition::GetSiteIndex(vint _rows, vint _columns, vint _row, vint _column) + Margin GuiDefaultAxis::RealMarginToVirtualMargin(Margin margin) { - return _row*_columns + _column; + return margin; } - void GuiTableComposition::SetSitedCell(vint _row, vint _column, GuiCellComposition* cell) + Margin GuiDefaultAxis::VirtualMarginToRealMargin(Margin margin) { - cellCompositions[GetSiteIndex(rows, columns, _row, _column)] = cell; + return margin; } - void GuiTableComposition::UpdateCellBoundsInternal( - collections::Array& dimSizes, - vint& dimSize, - vint& dimSizeWithPercentage, - collections::Array& dimOptions, - vint GuiTableComposition::* dim1, - vint GuiTableComposition::* dim2, - vint(*getSize)(Size), - vint(*getLocation)(GuiCellComposition*), - vint(*getSpan)(GuiCellComposition*), - vint(*getRow)(vint, vint), - vint(*getCol)(vint, vint), - vint maxPass - ) + KeyDirection GuiDefaultAxis::RealKeyDirectionToVirtualKeyDirection(KeyDirection key) { - for (vint pass = 0; pass < maxPass; pass++) + return key; + } + +/*********************************************************************** +GuiAxis +***********************************************************************/ + + GuiAxis::GuiAxis(AxisDirection _axisDirection) + :axisDirection(_axisDirection) + { + } + + GuiAxis::~GuiAxis() + { + } + + AxisDirection GuiAxis::GetDirection() + { + return axisDirection; + } + + Size GuiAxis::RealSizeToVirtualSize(Size size) + { + switch(axisDirection) { - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (pass == 0) - { - dimSizes[i] = 0; - } - switch (option.composeType) - { - case GuiCellOption::Absolute: - { - dimSizes[i] = option.absolute; - } - break; - case GuiCellOption::MinSize: - { - for (vint j = 0; j < this->*dim2; j++) - { - GuiCellComposition* cell = GetSitedCell(getRow(i, j), getCol(i, j)); - if (cell) - { - bool accept = false; - if (pass == 0) - { - accept = getSpan(cell) == 1; - } - else - { - accept = getLocation(cell) + getSpan(cell) == i + 1; - } - if (accept) - { - vint size = getSize(cell->GetPreferredBounds().GetSize()); - vint span = getSpan(cell); - for (vint k = 1; k < span; k++) - { - size -= dimSizes[i - k] + cellPadding; - } - if (dimSizes[i] < size) - { - dimSizes[i] = size; - } - } - } - } - } - break; - default:; - } - } - } - - bool percentageExists = false; - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - if (0.001 < option.percentage) - { - percentageExists = true; - } - } - } - - if (percentageExists) - { - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - if (0.001 < option.percentage) - { - for (vint j = 0; j < this->*dim2; j++) - { - GuiCellComposition* cell = GetSitedCell(getRow(i, j), getCol(i, j)); - if (cell) - { - vint size = getSize(cell->GetPreferredBounds().GetSize()); - vint start = getLocation(cell); - vint span = getSpan(cell); - size -= (span - 1)*cellPadding; - double totalPercentage = 0; - - for (vint k = start; k < start + span; k++) - { - if (dimOptions[k].composeType == GuiCellOption::Percentage) - { - if (0.001 < dimOptions[k].percentage) - { - totalPercentage += dimOptions[k].percentage; - } - } - else - { - size -= dimSizes[k]; - } - } - - size = (vint)ceil(size*option.percentage / totalPercentage); - if (dimSizes[i] < size) - { - dimSizes[i] = size; - } - } - } - } - } - } - - vint percentageTotalSize = 0; - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - if (0.001 < option.percentage) - { - vint size = (vint)ceil(dimSizes[i] / option.percentage); - if (percentageTotalSize < size) - { - percentageTotalSize = size; - } - } - } - } - - double totalPercentage = 0; - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - if (0.001 < option.percentage) - { - totalPercentage += option.percentage; - } - } - } - - for (vint i = 0; i < this->*dim1; i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - if (0.001 < option.percentage) - { - vint size = (vint)ceil(percentageTotalSize*option.percentage / totalPercentage); - if (dimSizes[i] < size) - { - dimSizes[i] = size; - } - } - } - } - } - - for (vint i = 0; i < this->*dim1; i++) - { - if (dimOptions[i].composeType != GuiCellOption::Percentage) - { - dimSize += dimSizes[i]; - } - dimSizeWithPercentage += dimSizes[i]; + case AxisDirection::LeftDown: + case AxisDirection::RightDown: + case AxisDirection::LeftUp: + case AxisDirection::RightUp: + return Size(size.x, size.y); + case AxisDirection::DownLeft: + case AxisDirection::DownRight: + case AxisDirection::UpLeft: + case AxisDirection::UpRight: + return Size(size.y, size.x); } + return size; } - void GuiTableComposition::UpdateCellBoundsPercentages( - collections::Array& dimSizes, - vint dimSize, - vint maxDimSize, - collections::Array& dimOptions - ) + Size GuiAxis::VirtualSizeToRealSize(Size size) { - if (maxDimSize > dimSize) - { - double totalPercentage = 0; - vint percentageCount = 0; - for (vint i = 0; i < dimOptions.Count(); i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - totalPercentage += option.percentage; - percentageCount++; - } - } - if (percentageCount > 0 && totalPercentage > 0.001) - { - for (vint i = 0; i < dimOptions.Count(); i++) - { - GuiCellOption option = dimOptions[i]; - if (option.composeType == GuiCellOption::Percentage) - { - dimSizes[i] = (vint)((maxDimSize - dimSize)*option.percentage / totalPercentage); - } - } - } - } + return RealSizeToVirtualSize(size); } - vint GuiTableComposition::UpdateCellBoundsOffsets( - collections::Array& offsets, - collections::Array& sizes, - vint max - ) + Point GuiAxis::RealPointToVirtualPoint(Size realFullSize, Point point) { - offsets[0] = 0; - for (vint i = 1; i < offsets.Count(); i++) - { - offsets[i] = offsets[i - 1] + cellPadding + sizes[i - 1]; - } + Rect rect(point, Size(0, 0)); + return RealRectToVirtualRect(realFullSize, rect).LeftTop(); + } - vint last = offsets.Count() - 1; - vint right = offsets[last] + sizes[last]; - return max - right; + Point GuiAxis::VirtualPointToRealPoint(Size realFullSize, Point point) + { + Rect rect(point, Size(0, 0)); + return VirtualRectToRealRect(realFullSize, rect).LeftTop(); } - void GuiTableComposition::OnRenderContextChanged() + Rect GuiAxis::RealRectToVirtualRect(Size realFullSize, Rect rect) { - if(GetRenderTarget()) + vint x1=rect.x1; + vint x2=realFullSize.x-rect.x2; + vint y1=rect.y1; + vint y2=realFullSize.y-rect.y2; + vint w=rect.Width(); + vint h=rect.Height(); + switch(axisDirection) { - UpdateCellBounds(); + case AxisDirection::LeftDown: + return Rect(Point(x2, y1), Size(w, h)); + case AxisDirection::RightDown: + return Rect(Point(x1, y1), Size(w, h)); + case AxisDirection::LeftUp: + return Rect(Point(x2, y2), Size(w, h)); + case AxisDirection::RightUp: + return Rect(Point(x1, y2), Size(w, h)); + case AxisDirection::DownLeft: + return Rect(Point(y1, x2), Size(h, w)); + case AxisDirection::DownRight: + return Rect(Point(y1, x1), Size(h, w)); + case AxisDirection::UpLeft: + return Rect(Point(y2, x2), Size(h, w)); + case AxisDirection::UpRight: + return Rect(Point(y2, x1), Size(h, w)); } + return rect; } - GuiTableComposition::GuiTableComposition() - :rows(0) - , columns(0) - , cellPadding(0) - , borderVisible(true) - , rowExtending(0) - , columnExtending(0) + Rect GuiAxis::VirtualRectToRealRect(Size realFullSize, Rect rect) { - ConfigChanged.SetAssociatedComposition(this); - SetRowsAndColumns(1, 1); + realFullSize=RealSizeToVirtualSize(realFullSize); + vint x1=rect.x1; + vint x2=realFullSize.x-rect.x2; + vint y1=rect.y1; + vint y2=realFullSize.y-rect.y2; + vint w=rect.Width(); + vint h=rect.Height(); + switch(axisDirection) + { + case AxisDirection::LeftDown: + return Rect(Point(x2, y1), Size(w, h)); + case AxisDirection::RightDown: + return Rect(Point(x1, y1), Size(w, h)); + case AxisDirection::LeftUp: + return Rect(Point(x2, y2), Size(w, h)); + case AxisDirection::RightUp: + return Rect(Point(x1, y2), Size(w, h)); + case AxisDirection::DownLeft: + return Rect(Point(y2, x1), Size(h, w)); + case AxisDirection::DownRight: + return Rect(Point(y1, x1), Size(h, w)); + case AxisDirection::UpLeft: + return Rect(Point(y2, x2), Size(h, w)); + case AxisDirection::UpRight: + return Rect(Point(y1, x2), Size(h, w)); + } + return rect; } - GuiTableComposition::~GuiTableComposition() + Margin GuiAxis::RealMarginToVirtualMargin(Margin margin) { + vint x1=margin.left; + vint x2=margin.right; + vint y1=margin.top; + vint y2=margin.bottom; + switch(axisDirection) + { + case AxisDirection::LeftDown: + return Margin(x2, y1, x1, y2); + case AxisDirection::RightDown: + return Margin(x1, y1, x2, y2); + case AxisDirection::LeftUp: + return Margin(x2, y2, x1, y1); + case AxisDirection::RightUp: + return Margin(x1, y2, x2, y1); + case AxisDirection::DownLeft: + return Margin(y1, x2, y2, x1); + case AxisDirection::DownRight: + return Margin(y1, x1, y2, x2); + case AxisDirection::UpLeft: + return Margin(y2, x2, y1, x1); + case AxisDirection::UpRight: + return Margin(y2, x1, y1, x2); + } + return margin; } - vint GuiTableComposition::GetRows() + Margin GuiAxis::VirtualMarginToRealMargin(Margin margin) { - return rows; + vint x1=margin.left; + vint x2=margin.right; + vint y1=margin.top; + vint y2=margin.bottom; + switch(axisDirection) + { + case AxisDirection::LeftDown: + return Margin(x2, y1, x1, y2); + case AxisDirection::RightDown: + return Margin(x1, y1, x2, y2); + case AxisDirection::LeftUp: + return Margin(x2, y2, x1, y1); + case AxisDirection::RightUp: + return Margin(x1, y2, x2, y1); + case AxisDirection::DownLeft: + return Margin(y2, x1, y1, x2); + case AxisDirection::DownRight: + return Margin(y1, x1, y2, x2); + case AxisDirection::UpLeft: + return Margin(y2, x2, y1, x1); + case AxisDirection::UpRight: + return Margin(y1, x2, y2, x1); + default:; + } + return margin; } - vint GuiTableComposition::GetColumns() + KeyDirection GuiAxis::RealKeyDirectionToVirtualKeyDirection(KeyDirection key) { - return columns; - } + bool pageKey=false; + switch(key) + { + case KeyDirection::PageUp: + pageKey=true; + key=KeyDirection::Up; + break; + case KeyDirection::PageDown: + pageKey=true; + key=KeyDirection::Down; + break; + case KeyDirection::PageLeft: + pageKey=true; + key=KeyDirection::Left; + break; + case KeyDirection::PageRight: + pageKey=true; + key=KeyDirection::Right; + break; + default:; + } - bool GuiTableComposition::SetRowsAndColumns(vint _rows, vint _columns) - { - if (_rows <= 0 || _columns <= 0) return false; - rowOptions.Resize(_rows); - columnOptions.Resize(_columns); - cellCompositions.Resize(_rows*_columns); - cellBounds.Resize(_rows*_columns); - for (vint i = 0; i < _rows*_columns; i++) + switch(key) { - cellCompositions[i] = 0; - cellBounds[i] = Rect(); + case KeyDirection::Up: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::Up; break; + case AxisDirection::RightDown: key=KeyDirection::Up; break; + case AxisDirection::LeftUp: key=KeyDirection::Down; break; + case AxisDirection::RightUp: key=KeyDirection::Down; break; + case AxisDirection::DownLeft: key=KeyDirection::Left; break; + case AxisDirection::DownRight: key=KeyDirection::Left; break; + case AxisDirection::UpLeft: key=KeyDirection::Right; break; + case AxisDirection::UpRight: key=KeyDirection::Right; break; + } + break; + case KeyDirection::Down: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::Down; break; + case AxisDirection::RightDown: key=KeyDirection::Down; break; + case AxisDirection::LeftUp: key=KeyDirection::Up; break; + case AxisDirection::RightUp: key=KeyDirection::Up; break; + case AxisDirection::DownLeft: key=KeyDirection::Right; break; + case AxisDirection::DownRight: key=KeyDirection::Right; break; + case AxisDirection::UpLeft: key=KeyDirection::Left; break; + case AxisDirection::UpRight: key=KeyDirection::Left; break; + } + break; + case KeyDirection::Left: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::Right; break; + case AxisDirection::RightDown: key=KeyDirection::Left; break; + case AxisDirection::LeftUp: key=KeyDirection::Right; break; + case AxisDirection::RightUp: key=KeyDirection::Left; break; + case AxisDirection::DownLeft: key=KeyDirection::Down; break; + case AxisDirection::DownRight: key=KeyDirection::Up; break; + case AxisDirection::UpLeft: key=KeyDirection::Down; break; + case AxisDirection::UpRight: key=KeyDirection::Up; break; + } + break; + case KeyDirection::Right: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::Left; break; + case AxisDirection::RightDown: key=KeyDirection::Right; break; + case AxisDirection::LeftUp: key=KeyDirection::Left; break; + case AxisDirection::RightUp: key=KeyDirection::Right; break; + case AxisDirection::DownLeft: key=KeyDirection::Up; break; + case AxisDirection::DownRight: key=KeyDirection::Down; break; + case AxisDirection::UpLeft: key=KeyDirection::Up; break; + case AxisDirection::UpRight: key=KeyDirection::Down; break; + } + break; + case KeyDirection::Home: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::Home; break; + case AxisDirection::RightDown: key=KeyDirection::Home; break; + case AxisDirection::LeftUp: key=KeyDirection::End; break; + case AxisDirection::RightUp: key=KeyDirection::End; break; + case AxisDirection::DownLeft: key=KeyDirection::Home; break; + case AxisDirection::DownRight: key=KeyDirection::Home; break; + case AxisDirection::UpLeft: key=KeyDirection::End; break; + case AxisDirection::UpRight: key=KeyDirection::End; break; + } + break; + case KeyDirection::End: + switch(axisDirection) + { + case AxisDirection::LeftDown: key=KeyDirection::End; break; + case AxisDirection::RightDown: key=KeyDirection::End; break; + case AxisDirection::LeftUp: key=KeyDirection::Home; break; + case AxisDirection::RightUp: key=KeyDirection::Home; break; + case AxisDirection::DownLeft: key=KeyDirection::End; break; + case AxisDirection::DownRight: key=KeyDirection::End; break; + case AxisDirection::UpLeft: key=KeyDirection::Home; break; + case AxisDirection::UpRight: key=KeyDirection::Home; break; + } + break; + default:; } - rows = _rows; - columns = _columns; - vint childCount = Children().Count(); - for (vint i = 0; i < childCount; i++) + + if(pageKey) { - GuiCellComposition* cell = dynamic_cast(Children().Get(i)); - if (cell) + switch(key) { - cell->OnTableRowsAndColumnsChanged(); + case KeyDirection::Up: + key=KeyDirection::PageUp; + break; + case KeyDirection::Down: + key=KeyDirection::PageDown; + break; + case KeyDirection::Left: + key=KeyDirection::PageLeft; + break; + case KeyDirection::Right: + key=KeyDirection::PageRight; + break; + default:; } } - ConfigChanged.Execute(GuiEventArgs(this)); - UpdateCellBounds(); - return true; + return key; } + } + } +} - GuiCellComposition* GuiTableComposition::GetSitedCell(vint _row, vint _column) - { - return cellCompositions[GetSiteIndex(rows, columns, _row, _column)]; - } +/*********************************************************************** +.\GRAPHICSCOMPOSITION\GUIGRAPHICSFLOWCOMPOSITION.CPP +***********************************************************************/ - GuiCellOption GuiTableComposition::GetRowOption(vint _row) - { - return rowOptions[_row]; - } +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace collections; - void GuiTableComposition::SetRowOption(vint _row, GuiCellOption option) +/*********************************************************************** +GuiFlowComposition +***********************************************************************/ + + void GuiFlowComposition::UpdateFlowItemBounds(bool forceUpdate) { - rowOptions[_row] = option; - UpdateCellBounds(); - ConfigChanged.Execute(GuiEventArgs(this)); - } + if (forceUpdate || needUpdate) + { + needUpdate = false; + InvokeOnCompositionStateChanged(); - GuiCellOption GuiTableComposition::GetColumnOption(vint _column) - { - return columnOptions[_column]; - } + auto clientMargin = axis->RealMarginToVirtualMargin(extraMargin); + if (clientMargin.left < 0) clientMargin.left = 0; + if (clientMargin.top < 0) clientMargin.top = 0; + if (clientMargin.right < 0) clientMargin.right = 0; + if (clientMargin.bottom < 0) clientMargin.bottom = 0; - void GuiTableComposition::SetColumnOption(vint _column, GuiCellOption option) - { - columnOptions[_column] = option; - UpdateCellBounds(); - ConfigChanged.Execute(GuiEventArgs(this)); - } + auto realFullSize = previousBounds.GetSize(); + auto clientSize = axis->RealSizeToVirtualSize(realFullSize); + clientSize.x -= (clientMargin.left + clientMargin.right); + clientSize.y -= (clientMargin.top + clientMargin.bottom); - vint GuiTableComposition::GetCellPadding() - { - return cellPadding; - } + flowItemBounds.Resize(flowItems.Count()); + for (vint i = 0; i < flowItems.Count(); i++) + { + flowItemBounds[i] = Rect(Point(0, 0), flowItems[i]->GetMinSize()); + } - void GuiTableComposition::SetCellPadding(vint value) - { - if (value < 0) value = 0; - cellPadding = value; - UpdateCellBounds(); - } + vint currentIndex = 0; + vint rowTop = 0; - bool GuiTableComposition::GetBorderVisible() - { - return borderVisible; - } + while (currentIndex < flowItems.Count()) + { + auto itemSize = axis->RealSizeToVirtualSize(flowItemBounds[currentIndex].GetSize()); + vint rowWidth = itemSize.x; + vint rowHeight = itemSize.y; + vint rowItemCount = 1; - void GuiTableComposition::SetBorderVisible(bool value) - { - if (borderVisible != value) - { - borderVisible = value; - UpdateCellBounds(); - } - } + for (vint i = currentIndex + 1; i < flowItems.Count(); i++) + { + itemSize = axis->RealSizeToVirtualSize(flowItemBounds[i].GetSize()); + vint itemWidth = itemSize.x + columnPadding; + if (rowWidth + itemWidth > clientSize.x) + { + break; + } + rowWidth += itemWidth; + if (rowHeight < itemSize.y) + { + rowHeight = itemSize.y; + } + rowItemCount++; + } - Rect GuiTableComposition::GetCellArea() - { - Rect bounds(Point(0, 0), GuiBoundsComposition::GetBounds().GetSize()); - vint borderThickness = borderVisible ? cellPadding : 0; - bounds.x1 += margin.left + internalMargin.left + borderThickness; - bounds.y1 += margin.top + internalMargin.top + borderThickness; - bounds.x2 -= margin.right + internalMargin.right + borderThickness; - bounds.y2 -= margin.bottom + internalMargin.bottom + borderThickness; - if (bounds.x2 < bounds.x1) bounds.x2 = bounds.x1; - if (bounds.y2 < bounds.y1) bounds.y2 = bounds.y1; - return bounds; - } + vint baseLine = 0; + Array itemBaseLines(rowItemCount); + for (vint i = 0; i < rowItemCount; i++) + { + vint index = currentIndex + i; + vint itemBaseLine = 0; + itemSize = axis->RealSizeToVirtualSize(flowItemBounds[index].GetSize()); - void GuiTableComposition::UpdateCellBounds() - { - rowOffsets.Resize(rows); - rowSizes.Resize(rows); - columnOffsets.Resize(columns); - columnSizes.Resize(columns); + auto option = flowItems[index]->GetFlowOption(); + switch (option.baseline) + { + case GuiFlowOption::FromTop: + itemBaseLine = option.distance; + break; + case GuiFlowOption::FromBottom: + itemBaseLine = itemSize.y - option.distance; + break; + case GuiFlowOption::Percentage: + itemBaseLine = (vint)(itemSize.y*option.percentage); + break; + } - vint rowTotal = (rows - 1) * cellPadding; - vint columnTotal = (columns - 1) * cellPadding; - vint rowTotalWithPercentage = rowTotal; - vint columnTotalWithPercentage = columnTotal; + itemBaseLines[i] = itemBaseLine; + if (baseLine < itemBaseLine) + { + baseLine = itemBaseLine; + } + } - UpdateCellBoundsInternal( - rowSizes, - rowTotal, - rowTotalWithPercentage, - rowOptions, - &GuiTableComposition::rows, - &GuiTableComposition::columns, - &Y, - &RL, - &RS, - &First, - &Second, - 1 - ); - UpdateCellBoundsInternal( - columnSizes, - columnTotal, - columnTotalWithPercentage, - columnOptions, - &GuiTableComposition::columns, - &GuiTableComposition::rows, - &X, - &CL, - &CS, - &Second, - &First, - 1 - ); + vint rowUsedWidth = 0; + for (vint i = 0; i < rowItemCount; i++) + { + vint index = currentIndex + i; + itemSize = axis->RealSizeToVirtualSize(flowItemBounds[index].GetSize()); - Rect area = GetCellArea(); - UpdateCellBoundsPercentages(rowSizes, rowTotal, area.Height(), rowOptions); - UpdateCellBoundsPercentages(columnSizes, columnTotal, area.Width(), columnOptions); - rowExtending = UpdateCellBoundsOffsets(rowOffsets, rowSizes, area.Height()); - columnExtending = UpdateCellBoundsOffsets(columnOffsets, columnSizes, area.Width()); + vint itemLeft = 0; + vint itemTop = rowTop + baseLine - itemBaseLines[i]; - for (vint i = 0; i < rows; i++) - { - for (vint j = 0; j < columns; j++) - { - vint index = GetSiteIndex(rows, columns, i, j); - cellBounds[index] = Rect(Point(columnOffsets[j], rowOffsets[i]), Size(columnSizes[j], rowSizes[i])); - } - } + switch (alignment) + { + case FlowAlignment::Left: + itemLeft = rowUsedWidth + i * columnPadding; + break; + case FlowAlignment::Center: + itemLeft = rowUsedWidth + i * columnPadding + (clientSize.x - rowWidth) / 2; + break; + case FlowAlignment::Extend: + if (i == 0) + { + itemLeft = rowUsedWidth; + } + else + { + itemLeft = rowUsedWidth + (vint)((double)(clientSize.x - rowWidth) * i / (rowItemCount - 1)) + i * columnPadding; + } + break; + } - tableContentMinSize = Size(columnTotalWithPercentage, rowTotalWithPercentage); - InvokeOnCompositionStateChanged(); - } + flowItemBounds[index] = axis->VirtualRectToRealRect( + realFullSize, + Rect( + Point( + itemLeft + clientMargin.left, + itemTop + clientMargin.top + ), + itemSize + ) + ); + rowUsedWidth += itemSize.x; + } - void GuiTableComposition::ForceCalculateSizeImmediately() - { - GuiBoundsComposition::ForceCalculateSizeImmediately(); - UpdateCellBounds(); - UpdateCellBounds(); + rowTop += rowHeight + rowPadding; + currentIndex += rowItemCount; + } + + minHeight = rowTop == 0 ? 0 : rowTop - rowPadding; + } } - Size GuiTableComposition::GetMinPreferredClientSize() + void GuiFlowComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) { - vint offset = (borderVisible ? 2 * cellPadding : 0); - return Size(tableContentMinSize.x + offset, tableContentMinSize.y + offset); + UpdateFlowItemBounds(true); } - Rect GuiTableComposition::GetBounds() + void GuiFlowComposition::OnChildInserted(GuiGraphicsComposition* child) { - Rect cached = previousBounds; - Rect result = GuiBoundsComposition::GetBounds(); - - bool cellMinSizeModified = false; - SortedList cells; - for (auto cell : cellCompositions) - { - if (cell && !cells.Contains(cell)) - { - cells.Add(cell); - Size newSize = cell->GetPreferredBounds().GetSize(); - if (cell->lastPreferredSize != newSize) - { - cell->lastPreferredSize = newSize; - cellMinSizeModified = true; - } - } - } - - if (cached != result || cellMinSizeModified) + GuiBoundsComposition::OnChildInserted(child); + auto item = dynamic_cast(child); + if (item && !flowItems.Contains(item)) { - UpdateCellBounds(); + flowItems.Add(item); + needUpdate = true; } - return result; } -/*********************************************************************** -GuiCellComposition -***********************************************************************/ - - void GuiCellComposition::ClearSitedCells(GuiTableComposition* table) + void GuiFlowComposition::OnChildRemoved(GuiGraphicsComposition* child) { - if (row != -1 && column != -1) + GuiBoundsComposition::OnChildRemoved(child); + auto item = dynamic_cast(child); + if (item) { - for (vint r = 0; r < rowSpan; r++) - { - for (vint c = 0; c < columnSpan; c++) - { - table->SetSitedCell(row + r, column + c, 0); - } - } + flowItems.Remove(item); + needUpdate = true; } } - - void GuiCellComposition::SetSitedCells(GuiTableComposition* table) + + Size GuiFlowComposition::GetMinPreferredClientSizeInternal(bool considerPreferredMinSize) { - for (vint r = 0; r < rowSpan; r++) + Size minSize = GuiBoundsComposition::GetMinPreferredClientSizeInternal(considerPreferredMinSize); + if (GetMinSizeLimitation() == GuiGraphicsComposition::LimitToElementAndChildren) { - for (vint c = 0; c < columnSpan; c++) + auto clientSize = axis->VirtualSizeToRealSize(Size(0, minHeight)); + for (auto item : flowItems) { - table->SetSitedCell(row + r, column + c, this); + auto itemSize = InvokeGetPreferredBoundsInternal(item, considerPreferredMinSize).GetSize(); + if (clientSize.x < itemSize.x) clientSize.x = itemSize.x; + if (clientSize.y < itemSize.y) clientSize.y = itemSize.y; } + if (minSize.x < clientSize.x) minSize.x = clientSize.x; + if (minSize.y < clientSize.y) minSize.y = clientSize.y; } + + vint x = 0; + vint y = 0; + if (extraMargin.left > 0) x += extraMargin.left; + if (extraMargin.right > 0) x += extraMargin.right; + if (extraMargin.top > 0) y += extraMargin.top; + if (extraMargin.bottom > 0) y += extraMargin.bottom; + return minSize + Size(x, y); } - void GuiCellComposition::ResetSiteInternal() + GuiFlowComposition::GuiFlowComposition() + :axis(new GuiDefaultAxis) { - row = -1; - column = -1; - rowSpan = 1; - columnSpan = 1; + BoundsChanged.AttachMethod(this, &GuiFlowComposition::OnBoundsChanged); } - bool GuiCellComposition::SetSiteInternal(vint _row, vint _column, vint _rowSpan, vint _columnSpan) + GuiFlowComposition::~GuiFlowComposition() { - if (tableParent) - { - if (_row < 0 || _row >= tableParent->rows || _column < 0 || _column >= tableParent->columns) return false; - if (_rowSpan<1 || _row + _rowSpan>tableParent->rows || _columnSpan<1 || _column + _columnSpan>tableParent->columns) return false; - - for (vint r = 0; r < _rowSpan; r++) - { - for (vint c = 0; c < _columnSpan; c++) - { - GuiCellComposition* cell = tableParent->GetSitedCell(_row + r, _column + c); - if (cell && cell != this) - { - return false; - } - } - } - ClearSitedCells(tableParent); - } - - row = _row; - column = _column; - rowSpan = _rowSpan; - columnSpan = _columnSpan; + } - if (tableParent) - { - SetSitedCells(tableParent); - } - return true; + const GuiFlowComposition::ItemCompositionList& GuiFlowComposition::GetFlowItems() + { + return flowItems; } - void GuiCellComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) + bool GuiFlowComposition::InsertFlowItem(vint index, GuiFlowItemComposition* item) { - GuiGraphicsSite::OnParentChanged(oldParent, newParent); - if (tableParent) - { - ClearSitedCells(tableParent); - } - tableParent = dynamic_cast(newParent); - if (!tableParent || !SetSiteInternal(row, column, rowSpan, columnSpan)) + index = flowItems.Insert(index, item); + if (!AddChild(item)) { - ResetSiteInternal(); + flowItems.RemoveAt(index); + return false; } - if (tableParent) + else { - if (row != -1 && column != -1) - { - SetSiteInternal(row, column, rowSpan, columnSpan); - } - tableParent->UpdateCellBounds(); + needUpdate = true; + return true; } } - void GuiCellComposition::OnTableRowsAndColumnsChanged() + + Margin GuiFlowComposition::GetExtraMargin() { - if(!SetSiteInternal(row, column, rowSpan, columnSpan)) + return extraMargin; + } + + void GuiFlowComposition::SetExtraMargin(Margin value) + { + if (extraMargin != value) { - ResetSiteInternal(); + extraMargin = value; + needUpdate = true; + InvokeOnCompositionStateChanged(); } } - GuiCellComposition::GuiCellComposition() - :row(-1) - ,column(-1) - ,rowSpan(1) - ,columnSpan(1) - ,tableParent(0) + vint GuiFlowComposition::GetRowPadding() { - SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + return rowPadding; } - GuiCellComposition::~GuiCellComposition() + void GuiFlowComposition::SetRowPadding(vint value) { + if (rowPadding != value) + { + rowPadding = value; + needUpdate = true; + InvokeOnCompositionStateChanged(); + } } - GuiTableComposition* GuiCellComposition::GetTableParent() + vint GuiFlowComposition::GetColumnPadding() { - return tableParent; + return columnPadding; } - vint GuiCellComposition::GetRow() + void GuiFlowComposition::SetColumnPadding(vint value) { - return row; + if (columnPadding != value) + { + columnPadding = value; + needUpdate = true; + InvokeOnCompositionStateChanged(); + } } - vint GuiCellComposition::GetRowSpan() + Ptr GuiFlowComposition::GetAxis() { - return rowSpan; + return axis; } - vint GuiCellComposition::GetColumn() + void GuiFlowComposition::SetAxis(Ptr value) { - return column; + if (value) + { + axis = value; + needUpdate = true; + InvokeOnCompositionStateChanged(); + } } - vint GuiCellComposition::GetColumnSpan() + FlowAlignment GuiFlowComposition::GetAlignment() { - return columnSpan; + return alignment; } - bool GuiCellComposition::SetSite(vint _row, vint _column, vint _rowSpan, vint _columnSpan) + void GuiFlowComposition::SetAlignment(FlowAlignment value) { - if (!SetSiteInternal(_row, _column, _rowSpan, _columnSpan)) + if (alignment != value) { - return false; + alignment = value; + needUpdate = true; + InvokeOnCompositionStateChanged(); } + } - if (tableParent) - { - tableParent->UpdateCellBounds(); - } - return true; + void GuiFlowComposition::ForceCalculateSizeImmediately() + { + GuiBoundsComposition::ForceCalculateSizeImmediately(); + UpdateFlowItemBounds(true); } - Rect GuiCellComposition::GetBounds() + Rect GuiFlowComposition::GetBounds() { - Rect result; - if(tableParent && row!=-1 && column!=-1) + if (!needUpdate) { - Rect bounds1, bounds2; - { - vint index=tableParent->GetSiteIndex(tableParent->rows, tableParent->columns, row, column); - bounds1=tableParent->cellBounds[index]; - } + for (vint i = 0; i < flowItems.Count(); i++) { - vint index=tableParent->GetSiteIndex(tableParent->rows, tableParent->columns, row+rowSpan-1, column+columnSpan-1); - bounds2=tableParent->cellBounds[index]; - if(tableParent->GetMinSizeLimitation()==GuiGraphicsComposition::NoLimit) + if (flowItemBounds[i].GetSize() != flowItems[i]->GetMinSize()) { - if(row+rowSpan==tableParent->rows) - { - bounds2.y2+=tableParent->rowExtending; - } - if(column+columnSpan==tableParent->columns) - { - bounds2.x2+=tableParent->columnExtending; - } + needUpdate = true; + break; } } - vint offset = tableParent->borderVisible ? tableParent->cellPadding : 0; - result = Rect(bounds1.x1 + offset, bounds1.y1 + offset, bounds2.x2 + offset, bounds2.y2 + offset); } - else + + if (needUpdate) { - result = Rect(); + UpdateFlowItemBounds(true); } - UpdatePreviousBounds(result); - return result; + + bounds = GuiBoundsComposition::GetBounds(); + return bounds; } /*********************************************************************** -GuiTableSplitterCompositionBase +GuiFlowItemComposition ***********************************************************************/ - void GuiTableSplitterCompositionBase::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) + void GuiFlowItemComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) { GuiGraphicsSite::OnParentChanged(oldParent, newParent); - tableParent = dynamic_cast(newParent); + flowParent = newParent == 0 ? 0 : dynamic_cast(newParent); } - void GuiTableSplitterCompositionBase::OnLeftButtonDown(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + Size GuiFlowItemComposition::GetMinSize() { - dragging = true; - draggingPoint = Point(arguments.x, arguments.y); + return GetBoundsInternal(bounds, true).GetSize(); } - void GuiTableSplitterCompositionBase::OnLeftButtonUp(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + GuiFlowItemComposition::GuiFlowItemComposition() { - dragging = false; + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - void GuiTableSplitterCompositionBase::OnMouseMoveHelper( - vint cellsBefore, - vint GuiTableComposition::* cells, - collections::Array& cellSizes, - vint offset, - GuiCellOption(GuiTableComposition::*getOption)(vint), - void(GuiTableComposition::*setOption)(vint, GuiCellOption) - ) + GuiFlowItemComposition::~GuiFlowItemComposition() { - if (dragging) + } + + bool GuiFlowItemComposition::IsSizeAffectParent() + { + return false; + } + + Rect GuiFlowItemComposition::GetBounds() + { + Rect result = bounds; + if(flowParent) { - if (tableParent) + flowParent->UpdateFlowItemBounds(false); + vint index = flowParent->flowItems.IndexOf(this); + if (index != -1) { - if (0 < cellsBefore && cellsBefore < tableParent->*cells) - { - auto o1 = (tableParent->*getOption)(cellsBefore - 1); - auto o2 = (tableParent->*getOption)(cellsBefore); - - vint indexStart = -1; - vint indexEnd = -1; - vint indexStep = -1; - vint max = 0; + result = flowParent->flowItemBounds[index]; + } - if (offset < 0) - { - indexStart = cellsBefore - 1; - indexEnd = -1; - indexStep = -1; - } - else if (offset > 0) - { - indexStart = cellsBefore; - indexEnd = tableParent->*cells; - indexStep = 1; - } - else - { - return; - } + result = Rect( + result.Left() - extraMargin.left, + result.Top() - extraMargin.top, + result.Right() + extraMargin.right, + result.Bottom() + extraMargin.bottom + ); + } + UpdatePreviousBounds(result); + return result; + } - { - auto o = (tableParent->*getOption)(indexStart); - if (o.composeType == GuiCellOption::Absolute) - { - max = o.absolute - 1; - } - else - { - for (vint i = indexStart; i != indexEnd; i += indexStep) - { - o = (tableParent->*getOption)(i); - if (o.composeType == GuiCellOption::Absolute) - { - break; - } - else if (o.composeType == GuiCellOption::Percentage) - { - max += cellSizes[i] - 1; - } - } - } + void GuiFlowItemComposition::SetBounds(Rect value) + { + if (bounds != value) + { + bounds = value; + InvokeOnCompositionStateChanged(); + } + } - if (max <= 0) - { - return; - } - } + Margin GuiFlowItemComposition::GetExtraMargin() + { + return extraMargin; + } - if (offset < 0) - { - if (max < -offset) - { - offset = -max; - } - } - else - { - if (max < offset) - { - offset = max; - } - } + void GuiFlowItemComposition::SetExtraMargin(Margin value) + { + if (extraMargin != value) + { + extraMargin = value; + InvokeOnCompositionStateChanged(); + } + } - if (o1.composeType == GuiCellOption::Absolute) - { - o1.absolute += offset; - (tableParent->*setOption)(cellsBefore - 1, o1); - } - if (o2.composeType == GuiCellOption::Absolute) - { - o2.absolute -= offset; - (tableParent->*setOption)(cellsBefore, o2); - } - tableParent->ForceCalculateSizeImmediately(); - } + GuiFlowOption GuiFlowItemComposition::GetFlowOption() + { + return option; + } + + void GuiFlowItemComposition::SetFlowOption(GuiFlowOption value) + { + if (option != value) + { + option = value; + if (flowParent) + { + flowParent->needUpdate = true; + InvokeOnCompositionStateChanged(); } } } + } + } +} - Rect GuiTableSplitterCompositionBase::GetBoundsHelper( - vint cellsBefore, - vint GuiTableComposition::* cells, - vint(Rect::* dimSize)()const, - collections::Array& cellOffsets, - vint Rect::* dimU1, - vint Rect::* dimU2, - vint Rect::* dimV1, - vint Rect::* dimV2 - ) +/*********************************************************************** +.\GRAPHICSCOMPOSITION\GUIGRAPHICSREPEATCOMPOSITION.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + namespace compositions + { + using namespace reflection::description; + using namespace collections; + using namespace controls; + using namespace elements; + +/*********************************************************************** +GuiRepeatCompositionBase +***********************************************************************/ + + void GuiRepeatCompositionBase::OnItemChanged(vint index, vint oldCount, vint newCount) { - Rect result(0, 0, 0, 0); - if (tableParent) + if (itemTemplate && itemSource) { - if (0 < cellsBefore && cellsBefore < tableParent->*cells) + for (vint i = oldCount - 1; i >= 0; i--) { - vint offset = tableParent->borderVisible ? tableParent->cellPadding : 0; - result.*dimU1 = offset; - result.*dimU2 = offset + (tableParent->GetCellArea().*dimSize)(); - result.*dimV1 = offset + cellOffsets[cellsBefore] - tableParent->cellPadding; - result.*dimV2 = (result.*dimV1) + tableParent->cellPadding; + RemoveItem(index + i); + } + + for (vint i = 0; i < newCount; i++) + { + InstallItem(index + i); } } - UpdatePreviousBounds(result); - return result; } - - GuiTableSplitterCompositionBase::GuiTableSplitterCompositionBase() - :tableParent(0) - , dragging(false) + + void GuiRepeatCompositionBase::RemoveItem(vint index) { - SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeNS)); - GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiTableSplitterCompositionBase::OnLeftButtonDown); - GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiTableSplitterCompositionBase::OnLeftButtonUp); + GuiItemEventArgs arguments(dynamic_cast(this)); + arguments.itemIndex = index; + ItemRemoved.Execute(arguments); + + auto item = RemoveRepeatComposition(index); + SafeDeleteComposition(item); } - GuiTableSplitterCompositionBase::~GuiTableSplitterCompositionBase() + void GuiRepeatCompositionBase::InstallItem(vint index) { + auto source = itemSource->Get(index); + auto templateItem = itemTemplate(source); + auto item = InsertRepeatComposition(index); + + templateItem->SetAlignmentToParent(Margin(0, 0, 0, 0)); + item->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + item->AddChild(templateItem); + + GuiItemEventArgs arguments(dynamic_cast(this)); + arguments.itemIndex = index; + ItemInserted.Execute(arguments); } - GuiTableComposition* GuiTableSplitterCompositionBase::GetTableParent() + void GuiRepeatCompositionBase::ClearItems() { - return tableParent; + for (vint i = GetRepeatCompositionCount() - 1; i >= 0; i--) + { + RemoveItem(i); + } } -/*********************************************************************** -GuiRowSplitterComposition -***********************************************************************/ + void GuiRepeatCompositionBase::InstallItems() + { + if (itemTemplate && itemSource) + { + vint count = itemSource->GetCount(); + for (vint i = 0; i < count; i++) + { + InstallItem(i); + } + } + } - void GuiRowSplitterComposition::OnMouseMove(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + GuiRepeatCompositionBase::GuiRepeatCompositionBase() { - OnMouseMoveHelper( - rowsToTheTop, - &GuiTableComposition::rows, - tableParent->rowSizes, - arguments.y - draggingPoint.y, - &GuiTableComposition::GetRowOption, - &GuiTableComposition::SetRowOption - ); } - - GuiRowSplitterComposition::GuiRowSplitterComposition() - :rowsToTheTop(0) + + GuiRepeatCompositionBase::~GuiRepeatCompositionBase() { - SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeNS)); - GetEventReceiver()->mouseMove.AttachMethod(this, &GuiRowSplitterComposition::OnMouseMove); + if (itemChangedHandler) + { + itemSource.Cast()->ItemChanged.Remove(itemChangedHandler); + } } - GuiRowSplitterComposition::~GuiRowSplitterComposition() + GuiRepeatCompositionBase::ItemStyleProperty GuiRepeatCompositionBase::GetItemTemplate() { + return itemTemplate; } - vint GuiRowSplitterComposition::GetRowsToTheTop() + void GuiRepeatCompositionBase::SetItemTemplate(ItemStyleProperty value) { - return rowsToTheTop; + ClearItems(); + itemTemplate = value; + if (itemTemplate && itemSource) + { + InstallItems(); + } } - void GuiRowSplitterComposition::SetRowsToTheTop(vint value) + Ptr GuiRepeatCompositionBase::GetItemSource() { - rowsToTheTop = value; - InvokeOnCompositionStateChanged(); + return itemSource; } - Rect GuiRowSplitterComposition::GetBounds() + void GuiRepeatCompositionBase::SetItemSource(Ptr value) { - return GetBoundsHelper( - rowsToTheTop, - &GuiTableComposition::rows, - &Rect::Width, - tableParent->rowOffsets, - &Rect::x1, - &Rect::x2, - &Rect::y1, - &Rect::y2 - ); + if (value != itemSource) + { + if (itemChangedHandler) + { + itemSource.Cast()->ItemChanged.Remove(itemChangedHandler); + } + + ClearItems(); + itemSource = value.Cast(); + if (!itemSource && value) + { + itemSource = IValueList::Create(GetLazyList(value)); + } + + if (itemTemplate && itemSource) + { + InstallItems(); + } + if (auto observable = itemSource.Cast()) + { + itemChangedHandler = observable->ItemChanged.Add(this, &GuiRepeatCompositionBase::OnItemChanged); + } + } } /*********************************************************************** -GuiColumnSplitterComposition +GuiRepeatStackComposition ***********************************************************************/ - void GuiColumnSplitterComposition::OnMouseMove(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + vint GuiRepeatStackComposition::GetRepeatCompositionCount() { - OnMouseMoveHelper( - columnsToTheLeft, - &GuiTableComposition::columns, - tableParent->columnSizes, - arguments.x - draggingPoint.x, - &GuiTableComposition::GetColumnOption, - &GuiTableComposition::SetColumnOption - ); + return stackItems.Count(); } - - GuiColumnSplitterComposition::GuiColumnSplitterComposition() - :columnsToTheLeft(0) + + GuiGraphicsComposition* GuiRepeatStackComposition::GetRepeatComposition(vint index) { - SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeWE)); - GetEventReceiver()->mouseMove.AttachMethod(this, &GuiColumnSplitterComposition::OnMouseMove); + return stackItems[index]; } - GuiColumnSplitterComposition::~GuiColumnSplitterComposition() + GuiGraphicsComposition* GuiRepeatStackComposition::InsertRepeatComposition(vint index) { + CHECK_ERROR(0 <= index && index <= stackItems.Count(), L"GuiRepeatStackComposition::InsertRepeatComposition(vint)#Index out of range."); + auto item = new GuiStackItemComposition; + InsertStackItem(index, item); + return item; } - vint GuiColumnSplitterComposition::GetColumnsToTheLeft() + GuiGraphicsComposition* GuiRepeatStackComposition::RemoveRepeatComposition(vint index) { - return columnsToTheLeft; + auto item = stackItems[index]; + RemoveChild(item); + return item; } - void GuiColumnSplitterComposition::SetColumnsToTheLeft(vint value) +/*********************************************************************** +GuiRepeatFlowComposition +***********************************************************************/ + + vint GuiRepeatFlowComposition::GetRepeatCompositionCount() { - columnsToTheLeft = value; - InvokeOnCompositionStateChanged(); + return flowItems.Count(); } - Rect GuiColumnSplitterComposition::GetBounds() + GuiGraphicsComposition* GuiRepeatFlowComposition::GetRepeatComposition(vint index) { - return GetBoundsHelper( - columnsToTheLeft, - &GuiTableComposition::columns, - &Rect::Height, - tableParent->columnOffsets, - &Rect::y1, - &Rect::y2, - &Rect::x1, - &Rect::x2 - ); + return flowItems[index]; + } + + GuiGraphicsComposition* GuiRepeatFlowComposition::InsertRepeatComposition(vint index) + { + CHECK_ERROR(0 <= index && index <= flowItems.Count(), L"GuiRepeatStackComposition::InsertRepeatComposition(vint)#Index out of range."); + auto item = new GuiFlowItemComposition; + InsertFlowItem(index, item); + return item; + } + + GuiGraphicsComposition* GuiRepeatFlowComposition::RemoveRepeatComposition(vint index) + { + auto item = flowItems[index]; + RemoveChild(item); + return item; } } } } /*********************************************************************** -.\GRAPHICSELEMENT\GUIGRAPHICSDOCUMENTELEMENT.CPP +.\GRAPHICSCOMPOSITION\GUIGRAPHICSRESPONSIVECOMPOSITION.CPP ***********************************************************************/ namespace vl { - using namespace collections; - namespace presentation { - namespace elements + namespace compositions { + using namespace collections; + using namespace controls; /*********************************************************************** -SetPropertiesVisitor +GuiResponsiveCompositionBase ***********************************************************************/ - namespace visitors + void GuiResponsiveCompositionBase::OnParentLineChanged() { - class SetPropertiesVisitor : public Object, public DocumentRun::IVisitor + GuiBoundsComposition::OnParentLineChanged(); + GuiResponsiveCompositionBase* responsive = nullptr; { - typedef GuiDocumentElement::GuiDocumentElementRenderer Renderer; - typedef DocumentModel::ResolvedStyle ResolvedStyle; - public: - vint start; - vint length; - vint selectionBegin; - vint selectionEnd; - List styles; - - DocumentModel* model; - Renderer* renderer; - Ptr cache; - IGuiGraphicsParagraph* paragraph; - - SetPropertiesVisitor(DocumentModel* _model, Renderer* _renderer, Ptr _cache, vint _selectionBegin, vint _selectionEnd) - :start(0) - ,length(0) - ,model(_model) - ,renderer(_renderer) - ,cache(_cache) - ,paragraph(_cache->graphicsParagraph.Obj()) - ,selectionBegin(_selectionBegin) - ,selectionEnd(_selectionEnd) - { - ResolvedStyle style; - style=model->GetStyle(DocumentModel::DefaultStyleName, style); - styles.Add(style); - } - - void VisitContainer(DocumentContainerRun* run) + auto parent = GetParent(); + while (parent) { - for (auto subRun : run->runs) + if ((responsive = dynamic_cast(parent))) { - subRun->Accept(this); + break; } + parent = parent->GetParent(); } + } - void ApplyStyle(vint start, vint length, const ResolvedStyle& style) + if (responsiveParent != responsive) + { + if (responsiveParent) { - paragraph->SetFont(start, length, style.style.fontFamily); - paragraph->SetSize(start, length, style.style.size); - paragraph->SetStyle(start, length, - (IGuiGraphicsParagraph::TextStyle) - ( (style.style.bold?IGuiGraphicsParagraph::Bold:0) - | (style.style.italic?IGuiGraphicsParagraph::Italic:0) - | (style.style.underline?IGuiGraphicsParagraph::Underline:0) - | (style.style.strikeline?IGuiGraphicsParagraph::Strikeline:0) - )); + responsiveParent->OnResponsiveChildRemoved(this); + responsiveParent->OnResponsiveChildLevelUpdated(); } - - void ApplyColor(vint start, vint length, const ResolvedStyle& style) + responsiveParent = responsive; + if (responsiveParent) { - paragraph->SetColor(start, length, style.color); - paragraph->SetBackgroundColor(start, length, style.backgroundColor); + responsiveParent->OnResponsiveChildInserted(this); + responsiveParent->OnResponsiveChildLevelUpdated(); } + } + } - void Visit(DocumentTextRun* run)override - { - length=run->GetRepresentationText().Length(); - if(length>0) - { - ResolvedStyle style=styles[styles.Count()-1]; - ApplyStyle(start, length, style); - ApplyColor(start, length, style); + void GuiResponsiveCompositionBase::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) + { + } - vint styleStart=start; - vint styleEnd=styleStart+length; - if(styleStartselectionBegin?styleStart:selectionBegin; - vint s3=selectionEndGetStyle(DocumentModel::SelectionStyleName, style); - ApplyColor(s2, s3-s2, selectionStyle); - } - } - } - start+=length; - } + void GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated() + { + if (responsiveParent) + { + responsiveParent->OnResponsiveChildLevelUpdated(); + } + else + { + InvokeOnCompositionStateChanged(); + } + } - void Visit(DocumentStylePropertiesRun* run)override - { - ResolvedStyle style=styles[styles.Count()-1]; - style=model->GetStyle(run->style, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count()-1); - } + GuiResponsiveCompositionBase::GuiResponsiveCompositionBase() + { + SetMinSizeLimitation(LimitToElementAndChildren); + SetPreferredMinSize(Size(1, 1)); - void Visit(DocumentStyleApplicationRun* run)override - { - ResolvedStyle style=styles[styles.Count()-1]; - style=model->GetStyle(run->styleName, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count()-1); - } + LevelCountChanged.SetAssociatedComposition(this); + CurrentLevelChanged.SetAssociatedComposition(this); + } - void Visit(DocumentHyperlinkRun* run)override - { - ResolvedStyle style=styles[styles.Count()-1]; - style=model->GetStyle(run->styleName, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count()-1); - } + GuiResponsiveCompositionBase::~GuiResponsiveCompositionBase() + { + } - void Visit(DocumentImageRun* run)override - { - length=run->GetRepresentationText().Length(); + ResponsiveDirection GuiResponsiveCompositionBase::GetDirection() + { + return direction; + } - Ptr element=GuiImageFrameElement::Create(); - element->SetImage(run->image, run->frameIndex); - element->SetStretch(true); + void GuiResponsiveCompositionBase::SetDirection(ResponsiveDirection value) + { + if (direction != value) + { + direction = value; + OnResponsiveChildLevelUpdated(); + } + } - IGuiGraphicsParagraph::InlineObjectProperties properties; - properties.size=run->size; - properties.baseline=run->baseline; - properties.breakCondition=IGuiGraphicsParagraph::Alone; - properties.backgroundImage = element; - - paragraph->SetInlineObject(start, length, properties); - - if(startGetStyle(DocumentModel::SelectionStyleName, style); - ApplyColor(start, length, selectionStyle); - } - start+=length; - } - - void Visit(DocumentEmbeddedObjectRun* run)override - { - length=run->GetRepresentationText().Length(); - - IGuiGraphicsParagraph::InlineObjectProperties properties; - properties.breakCondition=IGuiGraphicsParagraph::Alone; - - if (run->name != L"") - { - vint index = renderer->nameCallbackIdMap.Keys().IndexOf(run->name); - if (index != -1) - { - auto id = renderer->nameCallbackIdMap.Values()[index]; - index = cache->embeddedObjects.Keys().IndexOf(id); - if (index != -1) - { - auto eo = cache->embeddedObjects.Values()[index]; - if (eo->start == start) - { - properties.size = eo->size; - properties.callbackId = id; - } - } - } - else - { - auto eo = MakePtr(); - eo->name = run->name; - eo->size = Size(0, 0); - eo->start = start; +/*********************************************************************** +GuiResponsiveSharedCollection +***********************************************************************/ - vint id = -1; - vint count = renderer->freeCallbackIds.Count(); - if (count > 0) - { - id = renderer->freeCallbackIds[count - 1]; - renderer->freeCallbackIds.RemoveAt(count - 1); - } - else - { - id = renderer->usedCallbackIds++; - } + void GuiResponsiveSharedCollection::BeforeInsert(vint index, controls::GuiControl* const& value) + { + CHECK_ERROR(!value->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedCollection::BeforeInsert(vint, GuiResponsiveSharedCollection* const&)#Cannot insert a shared control that is currently in use."); + } - renderer->nameCallbackIdMap.Add(eo->name, id); - cache->embeddedObjects.Add(id, eo); - properties.callbackId = id; - } - } + void GuiResponsiveSharedCollection::AfterInsert(vint index, controls::GuiControl* const& value) + { + view->OnResponsiveChildLevelUpdated(); + } - paragraph->SetInlineObject(start, length, properties); + void GuiResponsiveSharedCollection::BeforeRemove(vint index, controls::GuiControl* const& value) + { + CHECK_ERROR(!value->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedCollection::BeforeRemove(vint, GuiResponsiveSharedCollection* const&)#Cannot remove a shared control that is currently in use."); + } - if(startGetStyle(DocumentModel::SelectionStyleName, style); - ApplyColor(start, length, selectionStyle); - } - start+=length; - } + void GuiResponsiveSharedCollection::AfterRemove(vint index, vint count) + { + view->OnResponsiveChildLevelUpdated(); + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } + GuiResponsiveSharedCollection::GuiResponsiveSharedCollection(GuiResponsiveViewComposition* _view) + :view(_view) + { + } - static vint SetProperty(DocumentModel* model, Renderer* renderer, Ptr cache, Ptr run, vint selectionBegin, vint selectionEnd) - { - SetPropertiesVisitor visitor(model, renderer, cache, selectionBegin, selectionEnd); - run->Accept(&visitor); - return visitor.length; - } - }; + GuiResponsiveSharedCollection::~GuiResponsiveSharedCollection() + { } - using namespace visitors; /*********************************************************************** -GuiDocumentElement::GuiDocumentElementRenderer +GuiResponsiveViewCollection ***********************************************************************/ - Size GuiDocumentElement::GuiDocumentElementRenderer::OnRenderInlineObject(vint callbackId, Rect location) + void GuiResponsiveViewCollection::BeforeInsert(vint index, GuiResponsiveCompositionBase* const& value) { - if (element->callback) - { - auto cache = paragraphCaches[renderingParagraph]; - auto relativeLocation = Rect(Point(location.x1 + renderingParagraphOffset.x, location.y1 + renderingParagraphOffset.y), location.GetSize()); - auto eo = cache->embeddedObjects[callbackId]; - auto size = element->callback->OnRenderEmbeddedObject(eo->name, relativeLocation); - eo->resized = eo->size != size; - eo->size = size; - return eo->size; - } - else + CHECK_ERROR(!value->GetParent(), L"GuiResponsiveViewCollection::BeforeRemove(vint, GuiResponsiveCompositionBase* const&)#Cannot insert a view that is currently in use."); + } + + void GuiResponsiveViewCollection::AfterInsert(vint index, GuiResponsiveCompositionBase* const& value) + { + if (!view->currentView) { - return Size(); + view->skipUpdatingLevels = true; + view->currentView = value; + view->currentView->SetAlignmentToParent(Margin(0, 0, 0, 0)); + view->AddChild(view->currentView); + view->skipUpdatingLevels = false; } + view->OnResponsiveChildLevelUpdated(); } - void GuiDocumentElement::GuiDocumentElementRenderer::InitializeInternal() + void GuiResponsiveViewCollection::BeforeRemove(vint index, GuiResponsiveCompositionBase* const& value) { + CHECK_ERROR(!value->GetParent(), L"GuiResponsiveViewCollection::BeforeRemove(vint, GuiResponsiveCompositionBase* const&)#Cannot remove a view that is currently in use."); } - void GuiDocumentElement::GuiDocumentElementRenderer::FinalizeInternal() + void GuiResponsiveViewCollection::AfterRemove(vint index, vint count) { + view->OnResponsiveChildLevelUpdated(); } - void GuiDocumentElement::GuiDocumentElementRenderer::RenderTargetChangedInternal(IGuiGraphicsRenderTarget* oldRenderTarget, IGuiGraphicsRenderTarget* newRenderTarget) + GuiResponsiveViewCollection::GuiResponsiveViewCollection(GuiResponsiveViewComposition* _view) + :view(_view) { - for(vint i=0;idestructing) { - ParagraphCache* cache=paragraphCaches[i].Obj(); - if(cache) + auto sharedParent = shared->GetBoundsComposition()->GetParent(); + CHECK_ERROR(view->sharedControls.Contains(shared), L"GuiResponsiveSharedComposition::SetSharedControl()#The specified shared control is not in GuiResponsiveViewComposition::GetSharedControls()."); + CHECK_ERROR(!sharedParent || sharedParent == this, L"GuiResponsiveSharedComposition::SetSharedControl()#The specified shared control has not been released. This usually means this control is not in GuiResponsiveViewComposition::GetSharedControls()."); + + if (!sharedParent) { - cache->graphicsParagraph=0; + shared->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0)); + AddChild(shared->GetBoundsComposition()); + view->usedSharedControls.Add(shared); } } } - Ptr GuiDocumentElement::GuiDocumentElementRenderer::EnsureAndGetCache(vint paragraphIndex, bool createParagraph) + void GuiResponsiveSharedComposition::OnParentLineChanged() { - if(paragraphIndex<0 || paragraphIndex>=paragraphCaches.Count()) return 0; - Ptr paragraph=element->document->paragraphs[paragraphIndex]; - Ptr cache=paragraphCaches[paragraphIndex]; - if(!cache) + GuiBoundsComposition::OnParentLineChanged(); + if (view && view->destructing) { - cache=new ParagraphCache; - cache->fullText=paragraph->GetText(false); - paragraphCaches[paragraphIndex]=cache; + return; } - if(createParagraph) + GuiResponsiveViewComposition* currentView = nullptr; { - if(!cache->graphicsParagraph) - { - cache->graphicsParagraph=layoutProvider->CreateParagraph(cache->fullText, renderTarget, this); - cache->graphicsParagraph->SetParagraphAlignment(paragraph->alignment ? paragraph->alignment.Value() : Alignment::Left); - SetPropertiesVisitor::SetProperty(element->document.Obj(), this, cache, paragraph, cache->selectionBegin, cache->selectionEnd); - } - if(cache->graphicsParagraph->GetMaxWidth()!=lastMaxWidth) + auto parent = GetParent(); + while (parent) { - cache->graphicsParagraph->SetMaxWidth(lastMaxWidth); + if ((currentView = dynamic_cast(parent))) + { + break; + } + parent = parent->GetParent(); } + } - vint paragraphHeight=paragraphHeights[paragraphIndex]; - vint height=cache->graphicsParagraph->GetHeight(); - if(paragraphHeight!=height) - { - cachedTotalHeight+=height-paragraphHeight; - paragraphHeight=height; - paragraphHeights[paragraphIndex]=paragraphHeight; - minSize=Size(0, cachedTotalHeight); - } + if (currentView != view && view && shared) + { + RemoveChild(shared->GetBoundsComposition()); + view->usedSharedControls.Remove(shared); } + view = currentView; - return cache; + SetSharedControl(); } - bool GuiDocumentElement::GuiDocumentElementRenderer::GetParagraphIndexFromPoint(Point point, vint& top, vint& index) + GuiResponsiveSharedComposition::GuiResponsiveSharedComposition() { - vint y=0; - for(vint i=0;iGetLayoutProvider()) - ,lastCaret(-1, -1) - ,lastCaretFrontSide(false) + controls::GuiControl* GuiResponsiveSharedComposition::GetShared() { + return shared; } - void GuiDocumentElement::GuiDocumentElementRenderer::Render(Rect bounds) + void GuiResponsiveSharedComposition::SetShared(controls::GuiControl* value) { - if (element->callback) + if (shared != value) { - element->callback->OnStartRender(); + CHECK_ERROR(!shared || !shared->GetBoundsComposition()->GetParent(), L"GuiResponsiveSharedComposition::SetShared(GuiControl*)#Cannot replace a shared control that is currently in use."); + shared = value; + SetSharedControl(); } - renderTarget->PushClipper(bounds); - if(!renderTarget->IsClipperCoverWholeTarget()) - { - vint maxWidth=bounds.Width(); - Rect clipper=renderTarget->GetClipper(); - vint cx=bounds.Left(); - vint cy=bounds.Top(); - vint y1=clipper.Top()-bounds.Top(); - vint y2=y1+clipper.Height(); - vint y=0; + } - lastMaxWidth=maxWidth; +/*********************************************************************** +GuiResponsiveViewComposition +***********************************************************************/ - for(vint i=0;i=y2) + auto view = views[i]; + if (((vint)direction & (vint)view->GetDirection()) != 0) { - break; + levelCount += view->GetLevelCount(); } else { - Ptr paragraph=element->document->paragraphs[i]; - Ptr cache=paragraphCaches[i]; - bool created=cache && cache->graphicsParagraph; - cache=EnsureAndGetCache(i, true); - if(!created && i==lastCaret.row && element->caretVisible) - { - cache->graphicsParagraph->OpenCaret(lastCaret.column, lastCaretColor, lastCaretFrontSide); - } - - paragraphHeight=cache->graphicsParagraph->GetHeight(); - - renderingParagraph = i; - renderingParagraphOffset = Point(cx - bounds.x1, cy + y - bounds.y1); - cache->graphicsParagraph->Render(Rect(Point(cx, cy+y), Size(maxWidth, paragraphHeight))); - renderingParagraph = -1; - - bool resized = false; - for (vint j = 0; j < cache->embeddedObjects.Count(); j++) - { - auto eo = cache->embeddedObjects.Values()[j]; - if (eo->resized) - { - eo->resized = false; - resized = true; - } - } - - if (resized) - { - cache->graphicsParagraph = 0; - } + levelCount += 1; } - - y+=paragraphHeight+paragraphDistance; } } - renderTarget->PopClipper(); - if (element->callback) - { - element->callback->OnFinishRender(); - } - } - - void GuiDocumentElement::GuiDocumentElementRenderer::OnElementStateChanged() - { - if (element->document && element->document->paragraphs.Count() > 0) - { - vint defaultSize = GetCurrentController()->ResourceService()->GetDefaultFont().size; - paragraphDistance = defaultSize; - vint defaultHeight = defaultSize; - - paragraphCaches.Resize(element->document->paragraphs.Count()); - paragraphHeights.Resize(element->document->paragraphs.Count()); - - for (vint i = 0; i < paragraphCaches.Count(); i++) - { - paragraphCaches[i] = 0; - } - for (vint i = 0; i < paragraphHeights.Count(); i++) - { - paragraphHeights[i] = defaultHeight; - } - cachedTotalHeight = paragraphHeights.Count() * (defaultHeight + paragraphDistance); - if (paragraphHeights.Count()>0) - { - cachedTotalHeight -= paragraphDistance; - } - minSize = Size(0, cachedTotalHeight); - } - else + if (old != levelCount) { - paragraphCaches.Resize(0); - paragraphHeights.Resize(0); - cachedTotalHeight = 0; - minSize = Size(0, 0); + LevelCountChanged.Execute(GuiEventArgs(this)); + return true; } - - nameCallbackIdMap.Clear(); - freeCallbackIds.Clear(); - usedCallbackIds = 0; + return false; } - void GuiDocumentElement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) + bool GuiResponsiveViewComposition::CalculateCurrentLevel() { - if (0 <= index && index < paragraphCaches.Count() && 0 <= oldCount && index + oldCount <= paragraphCaches.Count() && 0 <= newCount) + vint old = currentLevel; + currentLevel = 0; + for (vint i = views.Count() - 1; i >= 0; i--) { - vint paragraphCount = element->document->paragraphs.Count(); - CHECK_ERROR(updatedText || oldCount == newCount, L"GuiDocumentlement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint, vint, vint, bool)#Illegal values of oldCount and newCount."); - CHECK_ERROR(paragraphCount - paragraphCaches.Count() == newCount - oldCount, L"GuiDocumentElement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint, vint, vint, bool)#Illegal values of oldCount and newCount."); - - ParagraphCacheArray oldCaches; - CopyFrom(oldCaches, paragraphCaches); - paragraphCaches.Resize(paragraphCount); - - ParagraphHeightArray oldHeights; - CopyFrom(oldHeights, paragraphHeights); - paragraphHeights.Resize(paragraphCount); - - vint defaultHeight = GetCurrentController()->ResourceService()->GetDefaultFont().size; - cachedTotalHeight = 0; - - for (vint i = 0; i < paragraphCount; i++) + auto view = views[i]; + if (((vint)direction & (vint)view->GetDirection()) != 0) { - if (i < index) - { - paragraphCaches[i] = oldCaches[i]; - paragraphHeights[i] = oldHeights[i]; - } - else if (i < index + newCount) + if (currentView == view) { - paragraphCaches[i] = 0; - paragraphHeights[i] = defaultHeight; - if (!updatedText && i < index + oldCount) - { - auto cache = oldCaches[i]; - if(cache) - { - cache->graphicsParagraph = 0; - } - paragraphCaches[i] = cache; - paragraphHeights[i] = oldHeights[i]; - } + currentLevel += view->GetCurrentLevel() + 1; + break; } else { - paragraphCaches[i] = oldCaches[i - (newCount - oldCount)]; - paragraphHeights[i] = oldHeights[i - (newCount - oldCount)]; + currentLevel += view->GetLevelCount(); } - cachedTotalHeight += paragraphHeights[i] + paragraphDistance; } - if (paragraphCount > 0) + else { - cachedTotalHeight -= paragraphDistance; + currentLevel++; } + } + currentLevel--; - if (updatedText) - { - vint count = oldCount < newCount ? oldCount : newCount; - for (vint i = 0; i < count; i++) - { - if (auto cache = oldCaches[index + i]) - { - for (vint j = 0; j < cache->embeddedObjects.Count(); j++) - { - auto id = cache->embeddedObjects.Keys()[j]; - auto name = cache->embeddedObjects.Values()[j]->name; - nameCallbackIdMap.Remove(name); - freeCallbackIds.Add(id); - } - } - } - } + if (old != currentLevel) + { + CurrentLevelChanged.Execute(GuiEventArgs(this)); + return true; } + return false; } - Ptr GuiDocumentElement::GuiDocumentElementRenderer::GetHyperlinkFromPoint(Point point) + void GuiResponsiveViewComposition::OnResponsiveChildLevelUpdated() { - if (!renderTarget) return nullptr; - vint top=0; - vint index=-1; - if(GetParagraphIndexFromPoint(point, top, index)) + if (!skipUpdatingLevels) { - Ptr cache=EnsureAndGetCache(index, true); - Point paragraphPoint(point.x, point.y-top); - - vint start=-1; - vint length=0; - if(cache->graphicsParagraph->GetInlineObjectFromPoint(paragraphPoint, start, length)) - { - return element->document->GetHyperlink(index, start, start+length); - } - - vint caret=cache->graphicsParagraph->GetCaretFromPoint(paragraphPoint); - return element->document->GetHyperlink(index, caret, caret); + CalculateLevelCount(); + CalculateCurrentLevel(); + GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); } - return nullptr; } - void GuiDocumentElement::GuiDocumentElementRenderer::OpenCaret(TextPos caret, Color color, bool frontSide) + GuiResponsiveViewComposition::GuiResponsiveViewComposition() + :sharedControls(this) + , views(this) { - CloseCaret(caret); - lastCaret=caret; - lastCaretColor=color; - lastCaretFrontSide=frontSide; - - Ptr cache=paragraphCaches[lastCaret.row]; - if(cache && cache->graphicsParagraph) - { - cache->graphicsParagraph->OpenCaret(lastCaret.column, lastCaretColor, lastCaretFrontSide); - } + BeforeSwitchingView.SetAssociatedComposition(this); } - void GuiDocumentElement::GuiDocumentElementRenderer::CloseCaret(TextPos caret) + GuiResponsiveViewComposition::~GuiResponsiveViewComposition() { - if(lastCaret!=TextPos(-1, -1)) + destructing = true; + + for (auto view : views) { - if(0<=lastCaret.row && lastCaret.row cache=paragraphCaches[lastCaret.row]; - if(cache && cache->graphicsParagraph) - { - cache->graphicsParagraph->CloseCaret(); - } + SafeDeleteComposition(view); } } - lastCaret=caret; + + for (auto shared : From(sharedControls).Except(usedSharedControls)) + { + SafeDeleteControl(shared); + } } - void GuiDocumentElement::GuiDocumentElementRenderer::SetSelection(TextPos begin, TextPos end) + vint GuiResponsiveViewComposition::GetLevelCount() { - if(begin>end) - { - TextPos t=begin; - begin=end; - end=t; - } - if(begin==end) - { - begin=TextPos(-1, -1); - end=TextPos(-1, -1); - } - - if (!renderTarget) return; - for(vint i=0;i cache=EnsureAndGetCache(i, false); - vint newBegin=i==begin.row?begin.column:0; - vint newEnd=i==end.row?end.column:cache->fullText.Length(); + return levelCount; + } - if(cache->selectionBegin!=newBegin || cache->selectionEnd!=newEnd) - { - cache->selectionBegin=newBegin; - cache->selectionEnd=newEnd; - NotifyParagraphUpdated(i, 1, 1, false); - } - } - else - { - Ptr cache=paragraphCaches[i]; - if(cache) - { - if(cache->selectionBegin!=-1 || cache->selectionEnd!=-1) - { - cache->selectionBegin=-1; - cache->selectionEnd=-1; - NotifyParagraphUpdated(i, 1, 1, false); - } - } - } - } + vint GuiResponsiveViewComposition::GetCurrentLevel() + { + return currentLevel; } - TextPos GuiDocumentElement::GuiDocumentElementRenderer::CalculateCaret(TextPos comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) + bool GuiResponsiveViewComposition::LevelDown() { - if (!renderTarget) return comparingCaret; - Ptr cache=EnsureAndGetCache(comparingCaret.row, true); - if(cache) + skipUpdatingLevels = true; + if (((vint)direction & (vint)currentView->GetDirection()) != 0 && !currentView->LevelDown()) { - switch(position) + vint index = views.IndexOf(currentView); + if (index < views.Count() - 1) { - case IGuiGraphicsParagraph::CaretFirst: - { - preferFrontSide=false; - vint caret=cache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretFirst, preferFrontSide); - return TextPos(comparingCaret.row, caret); - } - case IGuiGraphicsParagraph::CaretLast: - { - preferFrontSide=true; - vint caret=cache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretLast, preferFrontSide); - return TextPos(comparingCaret.row, caret); - } - case IGuiGraphicsParagraph::CaretLineFirst: - { - preferFrontSide=false; - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretLineFirst, preferFrontSide); - return TextPos(comparingCaret.row, caret); - } - case IGuiGraphicsParagraph::CaretLineLast: - { - preferFrontSide=true; - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretLineLast, preferFrontSide); - return TextPos(comparingCaret.row, caret); - } - case IGuiGraphicsParagraph::CaretMoveUp: - { - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveUp, preferFrontSide); - if(caret==comparingCaret.column && comparingCaret.row>0) - { - Rect caretBounds=cache->graphicsParagraph->GetCaretBounds(comparingCaret.column, preferFrontSide); - Ptr anotherCache=EnsureAndGetCache(comparingCaret.row-1, true); - vint height=anotherCache->graphicsParagraph->GetHeight(); - caret=anotherCache->graphicsParagraph->GetCaretFromPoint(Point(caretBounds.x1, height)); - return TextPos(comparingCaret.row-1, caret); - } - else - { - return TextPos(comparingCaret.row, caret); - } - } - case IGuiGraphicsParagraph::CaretMoveDown: - { - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveDown, preferFrontSide); - if(caret==comparingCaret.column && comparingCaret.rowgraphicsParagraph->GetCaretBounds(comparingCaret.column, preferFrontSide); - Ptr anotherCache=EnsureAndGetCache(comparingCaret.row+1, true); - caret=anotherCache->graphicsParagraph->GetCaretFromPoint(Point(caretBounds.x1, 0)); - return TextPos(comparingCaret.row+1, caret); - } - else - { - return TextPos(comparingCaret.row, caret); - } - } - case IGuiGraphicsParagraph::CaretMoveLeft: - { - preferFrontSide=false; - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveLeft, preferFrontSide); - if(caret==comparingCaret.column && comparingCaret.row>0) - { - Ptr anotherCache=EnsureAndGetCache(comparingCaret.row-1, true); - caret=anotherCache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretLast, preferFrontSide); - return TextPos(comparingCaret.row-1, caret); - } - else - { - return TextPos(comparingCaret.row, caret); - } - } - case IGuiGraphicsParagraph::CaretMoveRight: + RemoveChild(currentView); + currentView = views[index + 1]; + currentView->SetAlignmentToParent(Margin(0, 0, 0, 0)); { - preferFrontSide=true; - vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveRight, preferFrontSide); - if(caret==comparingCaret.column && comparingCaret.row anotherCache=EnsureAndGetCache(comparingCaret.row+1, true); - caret=anotherCache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretFirst, preferFrontSide); - return TextPos(comparingCaret.row+1, caret); - } - else - { - return TextPos(comparingCaret.row, caret); - } + GuiItemEventArgs arguments(this); + arguments.itemIndex = views.IndexOf(currentView); + BeforeSwitchingView.Execute(arguments); } + AddChild(currentView); } } - return comparingCaret; - } - - TextPos GuiDocumentElement::GuiDocumentElementRenderer::CalculateCaretFromPoint(Point point) - { - if (!renderTarget) return TextPos(-1, -1); - vint top=0; - vint index=-1; - if(GetParagraphIndexFromPoint(point, top, index)) - { - Ptr cache=EnsureAndGetCache(index, true); - Point paragraphPoint(point.x, point.y-top); - vint caret=cache->graphicsParagraph->GetCaretFromPoint(paragraphPoint); - return TextPos(index, caret); - } - return TextPos(-1, -1); + skipUpdatingLevels = false; + + auto x = CalculateLevelCount(); + auto y = CalculateCurrentLevel(); + if (!x && !y) return false; + InvokeOnCompositionStateChanged(); + return true; } - Rect GuiDocumentElement::GuiDocumentElementRenderer::GetCaretBounds(TextPos caret, bool frontSide) + bool GuiResponsiveViewComposition::LevelUp() { - if (!renderTarget) return Rect(); - Ptr cache=EnsureAndGetCache(caret.row, true); - if(cache) + skipUpdatingLevels = true; + if (((vint)direction & (vint)currentView->GetDirection()) != 0 && !currentView->LevelUp()) { - Rect bounds=cache->graphicsParagraph->GetCaretBounds(caret.column, frontSide); - if(bounds!=Rect()) + vint index = views.IndexOf(currentView); + if (index > 0) { - vint y=0; - for(vint i=0;iSetAlignmentToParent(Margin(0, 0, 0, 0)); { - EnsureAndGetCache(i, true); - y+=paragraphHeights[i]+paragraphDistance; + GuiItemEventArgs arguments(this); + arguments.itemIndex = views.IndexOf(currentView); + BeforeSwitchingView.Execute(arguments); } - - bounds.y1+=y; - bounds.y2+=y; - return bounds; + AddChild(currentView); } } - return Rect(); - } - -/*********************************************************************** -GuiDocumentElement -***********************************************************************/ + skipUpdatingLevels = false; - void GuiDocumentElement::UpdateCaret() - { - auto elementRenderer = renderer.Cast(); - if (elementRenderer) - { - elementRenderer->SetSelection(caretBegin, caretEnd); - if (caretVisible) - { - elementRenderer->OpenCaret(caretEnd, caretColor, caretFrontSide); - } - else - { - elementRenderer->CloseCaret(caretEnd); - } - InvokeOnCompositionStateChanged(); - } + auto x = CalculateLevelCount(); + auto y = CalculateCurrentLevel(); + if (!x && !y) return false; + InvokeOnCompositionStateChanged(); + return true; } - GuiDocumentElement::GuiDocumentElement() - :caretVisible(false) - ,caretFrontSide(false) + GuiResponsiveCompositionBase* GuiResponsiveViewComposition::GetCurrentView() { + return currentView; } - GuiDocumentElement::ICallback* GuiDocumentElement::GetCallback() + collections::ObservableListBase& GuiResponsiveViewComposition::GetSharedControls() { - return callback; + return sharedControls; } - void GuiDocumentElement::SetCallback(ICallback* value) + collections::ObservableListBase& GuiResponsiveViewComposition::GetViews() { - callback = value; + return views; } - Ptr GuiDocumentElement::GetDocument() - { - return document; - } +/*********************************************************************** +GuiResponsiveFixedComposition +***********************************************************************/ - void GuiDocumentElement::SetDocument(Ptr value) + void GuiResponsiveFixedComposition::OnResponsiveChildLevelUpdated() { - document=value; - InvokeOnElementStateChanged(); - SetCaret(TextPos(), TextPos(), false); + InvokeOnCompositionStateChanged(); } - TextPos GuiDocumentElement::GetCaretBegin() + GuiResponsiveFixedComposition::GuiResponsiveFixedComposition() { - return caretBegin; } - TextPos GuiDocumentElement::GetCaretEnd() + GuiResponsiveFixedComposition::~GuiResponsiveFixedComposition() { - return caretEnd; } - bool GuiDocumentElement::IsCaretEndPreferFrontSide() + vint GuiResponsiveFixedComposition::GetLevelCount() { - return caretFrontSide; + return 1; } - void GuiDocumentElement::SetCaret(TextPos begin, TextPos end, bool frontSide) + vint GuiResponsiveFixedComposition::GetCurrentLevel() { - caretBegin=begin; - caretEnd=end; - if(caretBegincaretEnd) - { - caretFrontSide=false; - } - else - { - caretFrontSide=frontSide; - } - UpdateCaret(); + return 0; } - bool GuiDocumentElement::GetCaretVisible() + bool GuiResponsiveFixedComposition::LevelDown() { - return caretVisible; + return false; } - void GuiDocumentElement::SetCaretVisible(bool value) + bool GuiResponsiveFixedComposition::LevelUp() { - caretVisible=value; - UpdateCaret(); + return false; } - Color GuiDocumentElement::GetCaretColor() - { - return caretColor; - } +/*********************************************************************** +GuiResponsiveStackComposition +***********************************************************************/ - void GuiDocumentElement::SetCaretColor(Color value) - { - caretColor=value; - UpdateCaret(); - } +#define DEFINE_AVAILABLE \ + auto availables = From(responsiveChildren) \ + .Where([=](GuiResponsiveCompositionBase* child) \ + { \ + return ((vint)direction & (vint)child->GetDirection()) != 0; \ + }) \ - TextPos GuiDocumentElement::CalculateCaret(TextPos comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) + bool GuiResponsiveStackComposition::CalculateLevelCount() { - if (auto elementRenderer = renderer.Cast()) + vint old = levelCount; + DEFINE_AVAILABLE; + if (availables.IsEmpty()) { - TextPos caret=elementRenderer->CalculateCaret(comparingCaret, position, preferFrontSide); - return caret.column==-1?comparingCaret:caret; + levelCount = 1; } else { - return comparingCaret; + levelCount = availables + .Select([](GuiResponsiveCompositionBase* child) + { + return child->GetLevelCount() - 1; + }) + .Aggregate([](vint a, vint b) + { + return a + b; + }) + 1; } - } - TextPos GuiDocumentElement::CalculateCaretFromPoint(Point point) - { - if (auto elementRenderer = renderer.Cast()) - { - return elementRenderer->CalculateCaretFromPoint(point); - } - else + if (old != levelCount) { - return TextPos(0, 0); + LevelCountChanged.Execute(GuiEventArgs(this)); + return true; } + return false; } - Rect GuiDocumentElement::GetCaretBounds(TextPos caret, bool frontSide) + bool GuiResponsiveStackComposition::CalculateCurrentLevel() { - if (auto elementRenderer = renderer.Cast()) + vint old = currentLevel; + DEFINE_AVAILABLE; + if (availables.IsEmpty()) { - return elementRenderer->GetCaretBounds(caret, frontSide); + currentLevel = 0; } else { - return Rect(); + currentLevel = availables + .Select([](GuiResponsiveCompositionBase* child) + { + return child->GetCurrentLevel(); + }) + .Aggregate([](vint a, vint b) + { + return a + b; + }); } - } - - void GuiDocumentElement::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) - { - if (auto elementRenderer = renderer.Cast()) + + if (old != currentLevel) { - elementRenderer->NotifyParagraphUpdated(index, oldCount, newCount, updatedText); - InvokeOnCompositionStateChanged(); + CurrentLevelChanged.Execute(GuiEventArgs(this)); + return true; } + return false; } - void GuiDocumentElement::EditRun(TextPos begin, TextPos end, Ptr model, bool copy) + void GuiResponsiveStackComposition::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - TextPos temp = begin; - begin = end; - end = temp; - } - - vint newRows = document->EditRun(begin, end, model, copy); - if (newRows != -1) - { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, newRows, true); - } - InvokeOnCompositionStateChanged(); - } + responsiveChildren.Add(child); } - void GuiDocumentElement::EditText(TextPos begin, TextPos end, bool frontSide, const collections::Array& text) + void GuiResponsiveStackComposition::OnResponsiveChildRemoved(GuiResponsiveCompositionBase* child) { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - TextPos temp = begin; - begin = end; - end = temp; - } + responsiveChildren.Remove(child); + } - vint newRows = document->EditText(begin, end, frontSide, text); - if (newRows != -1) - { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, newRows, true); - } - InvokeOnCompositionStateChanged(); - } + void GuiResponsiveStackComposition::OnResponsiveChildLevelUpdated() + { + CalculateLevelCount(); + CalculateCurrentLevel(); + GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); } - void GuiDocumentElement::EditStyle(TextPos begin, TextPos end, Ptr style) + bool GuiResponsiveStackComposition::ChangeLevel(bool levelDown) { - if (auto elementRenderer = renderer.Cast()) + DEFINE_AVAILABLE; + + SortedList ignored; + while (true) { - if (begin > end) + GuiResponsiveCompositionBase* selected = nullptr; + vint size = 0; + + for (auto child : availables) { - TextPos temp = begin; - begin = end; - end = temp; + if (!ignored.Contains(child)) + { + Size childSize = child->GetPreferredBounds().GetSize(); + vint childSizeToCompare = + direction == ResponsiveDirection::Horizontal ? childSize.x : + direction == ResponsiveDirection::Vertical ? childSize.y : + childSize.x * childSize.y; + + if (!selected || (levelDown ? size < childSizeToCompare : size > childSizeToCompare)) + { + selected = child; + size = childSizeToCompare; + } + } } - if (document->EditStyle(begin, end, style)) + if (!selected) { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); + break; } - InvokeOnCompositionStateChanged(); - } - } - - void GuiDocumentElement::EditImage(TextPos begin, TextPos end, Ptr image) - { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) + else if (levelDown ? selected->LevelDown() : selected->LevelUp()) { - TextPos temp = begin; - begin = end; - end = temp; + break; } - - if (document->EditImage(begin, end, image)) + else { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, 1, true); + ignored.Add(selected); } - InvokeOnCompositionStateChanged(); } + + if (!CalculateCurrentLevel()) return false; + InvokeOnCompositionStateChanged(); + return true; } - void GuiDocumentElement::EditHyperlink(vint paragraphIndex, vint begin, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) + GuiResponsiveStackComposition::GuiResponsiveStackComposition() { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - vint temp = begin; - begin = end; - end = temp; - } + } - if (document->EditHyperlink(paragraphIndex, begin, end, reference, normalStyleName, activeStyleName)) - { - elementRenderer->NotifyParagraphUpdated(paragraphIndex, 1, 1, false); - } - InvokeOnCompositionStateChanged(); - } + GuiResponsiveStackComposition::~GuiResponsiveStackComposition() + { } - void GuiDocumentElement::RemoveHyperlink(vint paragraphIndex, vint begin, vint end) + vint GuiResponsiveStackComposition::GetLevelCount() { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - vint temp = begin; - begin = end; - end = temp; - } + return levelCount; + } - if (document->RemoveHyperlink(paragraphIndex, begin, end)) - { - elementRenderer->NotifyParagraphUpdated(paragraphIndex, 1, 1, false); - } - InvokeOnCompositionStateChanged(); - } + vint GuiResponsiveStackComposition::GetCurrentLevel() + { + return currentLevel; } - void GuiDocumentElement::EditStyleName(TextPos begin, TextPos end, const WString& styleName) + bool GuiResponsiveStackComposition::LevelDown() { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - TextPos temp = begin; - begin = end; - end = temp; - } + return ChangeLevel(true); + } - if (document->EditStyleName(begin, end, styleName)) - { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); - } - InvokeOnCompositionStateChanged(); - } + bool GuiResponsiveStackComposition::LevelUp() + { + return ChangeLevel(false); } - void GuiDocumentElement::RemoveStyleName(TextPos begin, TextPos end) +/*********************************************************************** +GuiResponsiveGroupComposition +***********************************************************************/ + + bool GuiResponsiveGroupComposition::CalculateLevelCount() { - if (auto elementRenderer = renderer.Cast()) + vint old = levelCount; + DEFINE_AVAILABLE; + if (availables.IsEmpty()) { - if (begin > end) - { - TextPos temp = begin; - begin = end; - end = temp; - } + levelCount = 1; + } + else + { + levelCount = availables + .Select([](GuiResponsiveCompositionBase* child) + { + return child->GetLevelCount(); + }) + .Max(); + } - if (document->RemoveStyleName(begin, end)) - { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); - } - InvokeOnCompositionStateChanged(); + if (old != levelCount) + { + LevelCountChanged.Execute(GuiEventArgs(this)); + return true; } + return false; } - void GuiDocumentElement::RenameStyle(const WString& oldStyleName, const WString& newStyleName) + bool GuiResponsiveGroupComposition::CalculateCurrentLevel() { - if (auto elementRenderer = renderer.Cast()) + vint old = currentLevel; + DEFINE_AVAILABLE; + if (availables.IsEmpty()) { - document->RenameStyle(oldStyleName, newStyleName); + currentLevel = 0; + } + else + { + currentLevel = availables + .Select([](GuiResponsiveCompositionBase* child) + { + return child->GetCurrentLevel(); + }) + .Max(); + } + + if (old != currentLevel) + { + CurrentLevelChanged.Execute(GuiEventArgs(this)); + return true; } + return false; } - void GuiDocumentElement::ClearStyle(TextPos begin, TextPos end) + void GuiResponsiveGroupComposition::OnResponsiveChildInserted(GuiResponsiveCompositionBase* child) { - if (auto elementRenderer = renderer.Cast()) - { - if (begin > end) - { - TextPos temp = begin; - begin = end; - end = temp; - } + responsiveChildren.Add(child); + } - if (document->ClearStyle(begin, end)) - { - elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); - } - InvokeOnCompositionStateChanged(); - } + void GuiResponsiveGroupComposition::OnResponsiveChildRemoved(GuiResponsiveCompositionBase* child) + { + responsiveChildren.Remove(child); } - Ptr GuiDocumentElement::SummarizeStyle(TextPos begin, TextPos end) + void GuiResponsiveGroupComposition::OnResponsiveChildLevelUpdated() { - if (auto elementRenderer = renderer.Cast()) + CalculateLevelCount(); + CalculateCurrentLevel(); + GuiResponsiveCompositionBase::OnResponsiveChildLevelUpdated(); + } + + GuiResponsiveGroupComposition::GuiResponsiveGroupComposition() + { + } + + GuiResponsiveGroupComposition::~GuiResponsiveGroupComposition() + { + } + + vint GuiResponsiveGroupComposition::GetLevelCount() + { + return levelCount; + } + + vint GuiResponsiveGroupComposition::GetCurrentLevel() + { + return currentLevel; + } + + bool GuiResponsiveGroupComposition::LevelDown() + { + DEFINE_AVAILABLE; + vint level = currentLevel; + for (auto child : availables) { - if (begin > end) + if (child->GetCurrentLevel() >= level) { - TextPos temp = begin; - begin = end; - end = temp; + if (!child->LevelDown()) + { + break; + } } - - return document->SummarizeStyle(begin, end); } - return nullptr; + + if (!CalculateCurrentLevel()) return false; + InvokeOnCompositionStateChanged(); + return true; } - Nullable GuiDocumentElement::SummarizeStyleName(TextPos begin, TextPos end) + bool GuiResponsiveGroupComposition::LevelUp() { - if (auto elementRenderer = renderer.Cast()) + DEFINE_AVAILABLE; + vint level = currentLevel; + for (auto child : availables) { - if (begin > end) + while (child->GetCurrentLevel() <= level) { - TextPos temp = begin; - begin = end; - end = temp; + if (!child->LevelUp()) + { + break; + } } - - return document->SummarizeStyleName(begin, end); } - return {}; + + if (!CalculateCurrentLevel()) return false; + InvokeOnCompositionStateChanged(); + return true; } - void GuiDocumentElement::SetParagraphAlignment(TextPos begin, TextPos end, const collections::Array>& alignments) +#undef DEFINE_AVAILABLE + +/*********************************************************************** +GuiResponsiveContainerComposition +***********************************************************************/ + +#define RESPONSIVE_INVALID_SIZE Size(-1, -1) + + void GuiResponsiveContainerComposition::AdjustLevel() { - if (auto elementRenderer = renderer.Cast()) + if (!responsiveTarget) return; + const Size containerSize = GetBounds().GetSize(); + const Size responsiveOriginalSize = responsiveTarget->GetPreferredBounds().GetSize(); + const bool testX = (vint)responsiveTarget->GetDirection() & (vint)ResponsiveDirection::Horizontal; + const bool testY = (vint)responsiveTarget->GetDirection() & (vint)ResponsiveDirection::Vertical; + +#define RESPONSIVE_IF_CONTAINER(OP, SIZE) ((testX && (containerSize).x OP SIZE.x) || (testY && (containerSize).y OP SIZE.y)) + + if (upperLevelSize != RESPONSIVE_INVALID_SIZE && RESPONSIVE_IF_CONTAINER(>=, upperLevelSize)) { - vint first = begin.row; - vint last = end.row; - if (first > last) + upperLevelSize = RESPONSIVE_INVALID_SIZE; + } + + if (upperLevelSize == RESPONSIVE_INVALID_SIZE && RESPONSIVE_IF_CONTAINER(>=, responsiveOriginalSize)) + { + while (true) { - vint temp = first; - first = last; - last = temp; + if (responsiveTarget->GetCurrentLevel() == responsiveTarget->GetLevelCount() - 1) + { + break; + } + else if (responsiveTarget->LevelUp()) + { + responsiveTarget->ForceCalculateSizeImmediately(); + auto currentSize = responsiveTarget->GetPreferredBounds().GetSize(); + if (RESPONSIVE_IF_CONTAINER(<, currentSize)) + { + upperLevelSize = currentSize; + responsiveTarget->LevelDown(); + break; + } + } + else + { + break; + } } - - if (0 <= first && first < document->paragraphs.Count() && 0 <= last && last < document->paragraphs.Count() && last - first + 1 == alignments.Count()) + } + else + { + while (true) { - for (vint i = first; i <= last; i++) + responsiveTarget->ForceCalculateSizeImmediately(); + auto currentSize = responsiveTarget->GetPreferredBounds().GetSize(); + if (RESPONSIVE_IF_CONTAINER(>=, currentSize)) { - document->paragraphs[i]->alignment = alignments[i - first]; + break; + } + + if (responsiveTarget->GetCurrentLevel() == 0) + { + break; + } + else if(responsiveTarget->LevelDown()) + { + upperLevelSize = currentSize; + } + else + { + break; } - elementRenderer->NotifyParagraphUpdated(first, alignments.Count(), alignments.Count(), false); } - InvokeOnCompositionStateChanged(); } + +#undef RESPONSIVE_IF_CONTAINER } - Nullable GuiDocumentElement::SummarizeParagraphAlignment(TextPos begin, TextPos end) + void GuiResponsiveContainerComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) { - if (auto elementRenderer = renderer.Cast()) + if (auto control = GetRelatedControl()) { - if (begin > end) + control->TryDelayExecuteIfNotDeleted([=]() { - TextPos temp = begin; - begin = end; - end = temp; - } - - return document->SummarizeParagraphAlignment(begin, end); + AdjustLevel(); + }); + } + else + { + AdjustLevel(); } - return {}; } - Ptr GuiDocumentElement::GetHyperlinkFromPoint(Point point) + GuiResponsiveContainerComposition::GuiResponsiveContainerComposition() + :upperLevelSize(RESPONSIVE_INVALID_SIZE) { - if (auto elementRenderer = renderer.Cast()) + BoundsChanged.AttachMethod(this, &GuiResponsiveContainerComposition::OnBoundsChanged); + } + + GuiResponsiveContainerComposition::~GuiResponsiveContainerComposition() + { + } + + GuiResponsiveCompositionBase* GuiResponsiveContainerComposition::GetResponsiveTarget() + { + return responsiveTarget; + } + + void GuiResponsiveContainerComposition::SetResponsiveTarget(GuiResponsiveCompositionBase* value) + { + if (responsiveTarget != value) { - return elementRenderer->GetHyperlinkFromPoint(point); + if (responsiveTarget) + { + RemoveChild(responsiveTarget); + } + + responsiveTarget = value; + upperLevelSize = RESPONSIVE_INVALID_SIZE; + + if (responsiveTarget) + { + responsiveTarget->SetAlignmentToParent(Margin(0, 0, 0, 0)); + while (responsiveTarget->LevelUp()); + AddChild(responsiveTarget); + + GuiEventArgs arguments(this); + OnBoundsChanged(this, arguments); + } } - return nullptr; } + +#undef RESPONSIVE_INVALID_SIZE } } } + /*********************************************************************** -.\GRAPHICSELEMENT\GUIGRAPHICSELEMENT.CPP +.\GRAPHICSCOMPOSITION\GUIGRAPHICSSHAREDSIZECOMPOSITION.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace elements + namespace compositions { + using namespace reflection::description; using namespace collections; + using namespace controls; + using namespace elements; /*********************************************************************** -GuiFocusRectangleElement +GuiSharedSizeItemComposition ***********************************************************************/ - GuiFocusRectangleElement::GuiFocusRectangleElement() + void GuiSharedSizeItemComposition::Update() { + if (parentRoot) + { + parentRoot->ForceCalculateSizeImmediately(); + } + InvokeOnCompositionStateChanged(); } -/*********************************************************************** -GuiSolidBorderElement -***********************************************************************/ - - GuiSolidBorderElement::GuiSolidBorderElement() - :color(0, 0, 0) + void GuiSharedSizeItemComposition::OnParentLineChanged() { - } + GuiBoundsComposition::OnParentLineChanged(); + if (parentRoot) + { + parentRoot->childItems.Remove(this); + parentRoot = nullptr; + } - Color GuiSolidBorderElement::GetColor() - { - return color; - } + auto current = GetParent(); + while (current) + { + if (auto item = dynamic_cast(current)) + { + break; + } + else if (auto root = dynamic_cast(current)) + { + parentRoot = root; + break; + } + current = current->GetParent(); + } - void GuiSolidBorderElement::SetColor(Color value) - { - if(color!=value) + if (parentRoot) { - color=value; - InvokeOnElementStateChanged(); + parentRoot->childItems.Add(this); + Size minSize; + if (sharedWidth) + { + vint index = parentRoot->itemWidths.Keys().IndexOf(group); + if (index != -1) + { + minSize.x = parentRoot->itemWidths.Values()[index]; + } + } + if (sharedHeight) + { + vint index = parentRoot->itemHeights.Keys().IndexOf(group); + if (index != -1) + { + minSize.y = parentRoot->itemHeights.Values()[index]; + } + } + SetPreferredMinSize(minSize); } } - - ElementShape GuiSolidBorderElement::GetShape() + + GuiSharedSizeItemComposition::GuiSharedSizeItemComposition() { - return shape; + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - void GuiSolidBorderElement::SetShape(ElementShape value) + GuiSharedSizeItemComposition::~GuiSharedSizeItemComposition() { - shape=value; } -/*********************************************************************** -Gui3DBorderElement -***********************************************************************/ - - Gui3DBorderElement::Gui3DBorderElement() + const WString& GuiSharedSizeItemComposition::GetGroup() { + return group; } - Color Gui3DBorderElement::GetColor1() + void GuiSharedSizeItemComposition::SetGroup(const WString& value) { - return color1; + if (group != value) + { + group = value; + Update(); + } } - void Gui3DBorderElement::SetColor1(Color value) + bool GuiSharedSizeItemComposition::GetSharedWidth() { - SetColors(value, color2); + return sharedWidth; } - Color Gui3DBorderElement::GetColor2() + void GuiSharedSizeItemComposition::SetSharedWidth(bool value) { - return color2; + if (sharedWidth != value) + { + sharedWidth = value; + Update(); + } } - void Gui3DBorderElement::SetColor2(Color value) + bool GuiSharedSizeItemComposition::GetSharedHeight() { - SetColors(color1, value); + return sharedHeight; } - void Gui3DBorderElement::SetColors(Color value1, Color value2) + void GuiSharedSizeItemComposition::SetSharedHeight(bool value) { - if(color1!=value1 || color2!=value2) + if (sharedHeight != value) { - color1=value1; - color2=value2; - InvokeOnElementStateChanged(); + sharedHeight = value; + Update(); } } /*********************************************************************** -Gui3DSplitterElement +GuiSharedSizeRootComposition ***********************************************************************/ - Gui3DSplitterElement::Gui3DSplitterElement() - :direction(Horizontal) - { - } - - Color Gui3DSplitterElement::GetColor1() + void GuiSharedSizeRootComposition::AddSizeComponent(collections::Dictionary& sizes, const WString& group, vint sizeComponent) { - return color1; + vint index = sizes.Keys().IndexOf(group); + if (index == -1) + { + sizes.Add(group, sizeComponent); + } + else if (sizes.Values().Get(index) < sizeComponent) + { + sizes.Set(group, sizeComponent); + } } - void Gui3DSplitterElement::SetColor1(Color value) + void GuiSharedSizeRootComposition::CollectSizes(collections::Dictionary& widths, collections::Dictionary& heights) { - SetColors(value, color2); - } + for (auto item : childItems) + { + auto group = item->GetGroup(); + auto minSize = item->GetPreferredMinSize(); + auto size = InvokeGetPreferredBoundsInternal(item, false).GetSize(); - Color Gui3DSplitterElement::GetColor2() - { - return color2; - } + if (item->GetSharedWidth()) + { + AddSizeComponent(widths, group, size.x); + } + if (item->GetSharedHeight()) + { + AddSizeComponent(heights, group, size.y); + } - void Gui3DSplitterElement::SetColor2(Color value) - { - SetColors(color1, value); + item->SetPreferredMinSize(minSize); + } } - void Gui3DSplitterElement::SetColors(Color value1, Color value2) + void GuiSharedSizeRootComposition::AlignSizes(collections::Dictionary& widths, collections::Dictionary& heights) { - if(color1!=value1 || color2!=value2) + for (auto item : childItems) { - color1=value1; - color2=value2; - InvokeOnElementStateChanged(); - } - } + auto group = item->GetGroup(); + auto size = item->GetPreferredMinSize(); - Gui3DSplitterElement::Direction Gui3DSplitterElement::GetDirection() - { - return direction; - } + if (item->GetSharedWidth()) + { + size.x = widths[group]; + } + if (item->GetSharedHeight()) + { + size.y = heights[group]; + } - void Gui3DSplitterElement::SetDirection(Direction value) - { - if(direction!=value) - { - direction=value; - InvokeOnElementStateChanged(); + item->SetPreferredMinSize(size); } } -/*********************************************************************** -GuiSolidBackgroundElement -***********************************************************************/ - - GuiSolidBackgroundElement::GuiSolidBackgroundElement() - :color(255, 255, 255) + GuiSharedSizeRootComposition::GuiSharedSizeRootComposition() { } - Color GuiSolidBackgroundElement::GetColor() + GuiSharedSizeRootComposition::~GuiSharedSizeRootComposition() { - return color; } - void GuiSolidBackgroundElement::SetColor(Color value) + void GuiSharedSizeRootComposition::ForceCalculateSizeImmediately() { - if(color!=value) - { - color=value; - InvokeOnElementStateChanged(); - } - } - - ElementShape GuiSolidBackgroundElement::GetShape() - { - return shape; + itemWidths.Clear(); + itemHeights.Clear(); + + CollectSizes(itemWidths, itemHeights); + AlignSizes(itemWidths, itemHeights); + GuiBoundsComposition::ForceCalculateSizeImmediately(); } - void GuiSolidBackgroundElement::SetShape(ElementShape value) + Rect GuiSharedSizeRootComposition::GetBounds() { - shape=value; + Dictionary widths, heights; + CollectSizes(widths, heights); + bool minSizeModified = CompareEnumerable(itemWidths, widths) != 0 || CompareEnumerable(itemHeights, heights) != 0; + + if (minSizeModified) + { + CopyFrom(itemWidths, widths); + CopyFrom(itemHeights, heights); + AlignSizes(itemWidths, itemHeights); + GuiBoundsComposition::ForceCalculateSizeImmediately(); + } + return GuiBoundsComposition::GetBounds(); } + } + } +} /*********************************************************************** -GuiGradientBackgroundElement +.\GRAPHICSCOMPOSITION\GUIGRAPHICSSPECIALIZEDCOMPOSITION.CPP ***********************************************************************/ - GuiGradientBackgroundElement::GuiGradientBackgroundElement() - :direction(Horizontal) +namespace vl +{ + namespace presentation + { + namespace compositions + { + +/*********************************************************************** +GuiSideAlignedComposition +***********************************************************************/ + + GuiSideAlignedComposition::GuiSideAlignedComposition() + :direction(Top) + ,maxLength(10) + ,maxRatio(1.0) { } - Color GuiGradientBackgroundElement::GetColor1() + GuiSideAlignedComposition::~GuiSideAlignedComposition() { - return color1; } - void GuiGradientBackgroundElement::SetColor1(Color value) + GuiSideAlignedComposition::Direction GuiSideAlignedComposition::GetDirection() { - SetColors(value, color2); + return direction; } - Color GuiGradientBackgroundElement::GetColor2() + void GuiSideAlignedComposition::SetDirection(Direction value) { - return color2; + if (direction != value) + { + direction = value; + InvokeOnCompositionStateChanged(); + } } - void GuiGradientBackgroundElement::SetColor2(Color value) + vint GuiSideAlignedComposition::GetMaxLength() { - SetColors(color1, value); + return maxLength; } - void GuiGradientBackgroundElement::SetColors(Color value1, Color value2) + void GuiSideAlignedComposition::SetMaxLength(vint value) { - if(color1!=value1 || color2!=value2) + if (value < 0) value = 0; + if (maxLength != value) { - color1=value1; - color2=value2; - InvokeOnElementStateChanged(); + maxLength = value; + InvokeOnCompositionStateChanged(); } } - GuiGradientBackgroundElement::Direction GuiGradientBackgroundElement::GetDirection() + double GuiSideAlignedComposition::GetMaxRatio() { - return direction; + return maxRatio; } - void GuiGradientBackgroundElement::SetDirection(Direction value) + void GuiSideAlignedComposition::SetMaxRatio(double value) { - if(direction!=value) + if (value < 0) value = 0; else if (value > 1) value = 1; + if (maxRatio != value) { - direction=value; - InvokeOnElementStateChanged(); + maxRatio = value; + InvokeOnCompositionStateChanged(); } } - - ElementShape GuiGradientBackgroundElement::GetShape() + + bool GuiSideAlignedComposition::IsSizeAffectParent() { - return shape; + return false; } - void GuiGradientBackgroundElement::SetShape(ElementShape value) + Rect GuiSideAlignedComposition::GetBounds() { - shape=value; + Rect result; + GuiGraphicsComposition* parent = GetParent(); + if (parent) + { + Rect bounds = parent->GetBounds(); + vint w = (vint)(bounds.Width()*maxRatio); + vint h = (vint)(bounds.Height()*maxRatio); + if (w > maxLength) w = maxLength; + if (h > maxLength) h = maxLength; + switch (direction) + { + case Left: + { + bounds.x2 = bounds.x1 + w; + } + break; + case Top: + { + bounds.y2 = bounds.y1 + h; + } + break; + case Right: + { + bounds.x1 = bounds.x2 - w; + } + break; + case Bottom: + { + bounds.y1 = bounds.y2 - h; + } + break; + } + result = bounds; + } + UpdatePreviousBounds(result); + return result; } /*********************************************************************** -GuiInnerShadowElement +GuiPartialViewComposition ***********************************************************************/ - GuiInnerShadowElement::GuiInnerShadowElement() + GuiPartialViewComposition::GuiPartialViewComposition() + :wRatio(0.0) + ,wPageSize(1.0) + ,hRatio(0.0) + ,hPageSize(1.0) { } - Color GuiInnerShadowElement::GetColor() + GuiPartialViewComposition::~GuiPartialViewComposition() { - return color; } - void GuiInnerShadowElement::SetColor(Color value) + double GuiPartialViewComposition::GetWidthRatio() { - if (color != value) - { - color = value; - InvokeOnElementStateChanged(); - } + return wRatio; } - vint GuiInnerShadowElement::GetThickness() + double GuiPartialViewComposition::GetWidthPageSize() { - return thickness; + return wPageSize; } - void GuiInnerShadowElement::SetThickness(vint value) + double GuiPartialViewComposition::GetHeightRatio() { - if (thickness != value) - { - thickness = value; - InvokeOnElementStateChanged(); - } + return hRatio; } -/*********************************************************************** -GuiSolidLabelElement -***********************************************************************/ - - GuiSolidLabelElement::GuiSolidLabelElement() - :color(0, 0, 0) - ,hAlignment(Alignment::Left) - ,vAlignment(Alignment::Top) - ,wrapLine(false) - ,ellipse(false) - ,multiline(false) - ,wrapLineHeightCalculation(false) + double GuiPartialViewComposition::GetHeightPageSize() { - fontProperties.fontFamily=L"Lucida Console"; - fontProperties.size=12; + return hPageSize; } - Color GuiSolidLabelElement::GetColor() + void GuiPartialViewComposition::SetWidthRatio(double value) { - return color; + if (wRatio != value) + { + wRatio = value; + InvokeOnCompositionStateChanged(); + } } - void GuiSolidLabelElement::SetColor(Color value) + void GuiPartialViewComposition::SetWidthPageSize(double value) { - if(color!=value) + if (wPageSize != value) { - color=value; - InvokeOnElementStateChanged(); + wPageSize = value; + InvokeOnCompositionStateChanged(); } } - const FontProperties& GuiSolidLabelElement::GetFont() + void GuiPartialViewComposition::SetHeightRatio(double value) { - return fontProperties; + if (hRatio != value) + { + hRatio = value; + InvokeOnCompositionStateChanged(); + } } - void GuiSolidLabelElement::SetFont(const FontProperties& value) + void GuiPartialViewComposition::SetHeightPageSize(double value) { - if(fontProperties!=value) + if (hPageSize != value) { - fontProperties=value; - InvokeOnElementStateChanged(); + hPageSize = value; + InvokeOnCompositionStateChanged(); } } - const WString& GuiSolidLabelElement::GetText() + bool GuiPartialViewComposition::IsSizeAffectParent() { - return text; + return false; } - void GuiSolidLabelElement::SetText(const WString& value) + Rect GuiPartialViewComposition::GetBounds() { - if(text!=value) + Rect result; + GuiGraphicsComposition* parent = GetParent(); + if (parent) { - text=value; - InvokeOnElementStateChanged(); + Rect bounds = parent->GetBounds(); + vint w = bounds.Width(); + vint h = bounds.Height(); + vint pw = (vint)(wPageSize*w); + vint ph = (vint)(hPageSize*h); + + vint ow = preferredMinSize.x - pw; + if (ow < 0) ow = 0; + vint oh = preferredMinSize.y - ph; + if (oh < 0) oh = 0; + + w -= ow; + h -= oh; + pw += ow; + ph += oh; + + result = Rect(Point((vint)(wRatio*w), (vint)(hRatio*h)), Size(pw, ph)); } + UpdatePreviousBounds(result); + return result; } + } + } +} - Alignment GuiSolidLabelElement::GetHorizontalAlignment() - { - return hAlignment; - } - Alignment GuiSolidLabelElement::GetVerticalAlignment() - { - return vAlignment; - } +/*********************************************************************** +.\GRAPHICSCOMPOSITION\GUIGRAPHICSSTACKCOMPOSITION.CPP +***********************************************************************/ - void GuiSolidLabelElement::SetHorizontalAlignment(Alignment value) - { - SetAlignments(value, vAlignment); - } +namespace vl +{ + namespace presentation + { + namespace compositions + { - void GuiSolidLabelElement::SetVerticalAlignment(Alignment value) +/*********************************************************************** +GuiStackComposition +***********************************************************************/ + + void GuiStackComposition::UpdateStackItemBounds() { - SetAlignments(hAlignment, value); + if (stackItemBounds.Count() != stackItems.Count()) + { + stackItemBounds.Resize(stackItems.Count()); + } + + stackItemTotalSize = Size(0, 0); + Point offset; + for (vint i = 0; i < stackItems.Count(); i++) + { + vint offsetX = 0; + vint offsetY = 0; + Size itemSize = stackItems[i]->GetMinSize(); + stackItemBounds[i] = Rect(offset, itemSize); + +#define ACCUMULATE(U, V) \ + { \ + if (stackItemTotalSize.V < itemSize.V) \ + { \ + stackItemTotalSize.V = itemSize.V; \ + } \ + if (i > 0) \ + { \ + stackItemTotalSize.U += padding; \ + } \ + stackItemTotalSize.U += itemSize.U; \ + } \ + + switch (direction) + { + case GuiStackComposition::Horizontal: + case GuiStackComposition::ReversedHorizontal: + ACCUMULATE(x, y) + break; + case GuiStackComposition::Vertical: + case GuiStackComposition::ReversedVertical: + ACCUMULATE(y, x) + break; + } + +#undef ACCUMULATE + offset.x += itemSize.x + padding; + offset.y += itemSize.y + padding; + } + EnsureStackItemVisible(); } - void GuiSolidLabelElement::SetAlignments(Alignment horizontal, Alignment vertical) + void GuiStackComposition::EnsureStackItemVisible() { - if(hAlignment!=horizontal || vAlignment!=vertical) +#define ADJUSTMENT(U, V) \ + if (itemBounds.U() <= 0) \ + { \ + adjustment -= itemBounds.U(); \ + InvokeOnCompositionStateChanged(); \ + } \ + else \ + { \ + vint overflow = itemBounds.V() - previousBounds.V(); \ + if (overflow > 0) \ + { \ + adjustment -= overflow; \ + InvokeOnCompositionStateChanged(); \ + } \ + } \ + + if (ensuringVisibleStackItem) { - hAlignment=horizontal; - vAlignment=vertical; - InvokeOnElementStateChanged(); + Rect itemBounds = ensuringVisibleStackItem->GetBounds(); + switch (direction) + { + case Horizontal: + case ReversedHorizontal: + ADJUSTMENT(Left, Right) + break; + case Vertical: + case ReversedVertical: + ADJUSTMENT(Top, Bottom) + break; + } } +#undef ADJUSTMENT } - bool GuiSolidLabelElement::GetWrapLine() + void GuiStackComposition::OnBoundsChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) { - return wrapLine; + EnsureStackItemVisible(); } - void GuiSolidLabelElement::SetWrapLine(bool value) + void GuiStackComposition::OnChildInserted(GuiGraphicsComposition* child) { - if(wrapLine!=value) + GuiBoundsComposition::OnChildInserted(child); + GuiStackItemComposition* item = dynamic_cast(child); + if (item) { - wrapLine=value; - InvokeOnElementStateChanged(); + if (!stackItems.Contains(item)) + { + stackItems.Add(item); + } + UpdateStackItemBounds(); } } - bool GuiSolidLabelElement::GetEllipse() + void GuiStackComposition::OnChildRemoved(GuiGraphicsComposition* child) { - return ellipse; + GuiBoundsComposition::OnChildRemoved(child); + GuiStackItemComposition* item = dynamic_cast(child); + if (item) + { + stackItems.Remove(item); + if (item == ensuringVisibleStackItem) + { + ensuringVisibleStackItem = 0; + } + UpdateStackItemBounds(); + } } - - void GuiSolidLabelElement::SetEllipse(bool value) + + Size GuiStackComposition::GetMinPreferredClientSizeInternal(bool considerPreferredMinSize) { - if(ellipse!=value) + Size minSize = GuiBoundsComposition::GetMinPreferredClientSizeInternal(considerPreferredMinSize); + if (GetMinSizeLimitation() == GuiGraphicsComposition::LimitToElementAndChildren) { - ellipse=value; - InvokeOnElementStateChanged(); + if (!ensuringVisibleStackItem || direction == Vertical || direction == ReversedVertical) + { + if (minSize.x < stackItemTotalSize.x) + { + minSize.x = stackItemTotalSize.x; + } + } + if (!ensuringVisibleStackItem || direction == Horizontal || direction == ReversedHorizontal) + { + if (minSize.y < stackItemTotalSize.y) + { + minSize.y = stackItemTotalSize.y; + } + } } + + vint x = 0; + vint y = 0; + if (extraMargin.left > 0) x += extraMargin.left; + if (extraMargin.right > 0) x += extraMargin.right; + if (extraMargin.top > 0) y += extraMargin.top; + if (extraMargin.bottom > 0) y += extraMargin.bottom; + return minSize + Size(x, y); } - bool GuiSolidLabelElement::GetMultiline() + GuiStackComposition::GuiStackComposition() { - return multiline; + BoundsChanged.AttachMethod(this, &GuiStackComposition::OnBoundsChanged); } - void GuiSolidLabelElement::SetMultiline(bool value) + GuiStackComposition::~GuiStackComposition() { - if(multiline!=value) - { - multiline=value; - InvokeOnElementStateChanged(); - } } - bool GuiSolidLabelElement::GetWrapLineHeightCalculation() + const GuiStackComposition::ItemCompositionList& GuiStackComposition::GetStackItems() { - return wrapLineHeightCalculation; + return stackItems; } - void GuiSolidLabelElement::SetWrapLineHeightCalculation(bool value) + bool GuiStackComposition::InsertStackItem(vint index, GuiStackItemComposition* item) { - if(wrapLineHeightCalculation!=value) + index = stackItems.Insert(index, item); + if (!AddChild(item)) { - wrapLineHeightCalculation=value; - InvokeOnElementStateChanged(); + stackItems.RemoveAt(index); + return false; + } + else + { + return true; } } -/*********************************************************************** -GuiImageFrameElement -***********************************************************************/ - - GuiImageFrameElement::GuiImageFrameElement() - :frameIndex(0) - ,hAlignment(Alignment::Left) - ,vAlignment(Alignment::Top) - ,stretch(false) - ,enabled(true) + GuiStackComposition::Direction GuiStackComposition::GetDirection() { + return direction; } - Ptr GuiImageFrameElement::GetImage() + void GuiStackComposition::SetDirection(Direction value) { - return image; + direction = value; + EnsureStackItemVisible(); } - vint GuiImageFrameElement::GetFrameIndex() + vint GuiStackComposition::GetPadding() { - return frameIndex; + return padding; } - void GuiImageFrameElement::SetImage(Ptr value) + void GuiStackComposition::SetPadding(vint value) { - SetImage(value, frameIndex); + padding = value; + EnsureStackItemVisible(); } - void GuiImageFrameElement::SetFrameIndex(vint value) + void GuiStackComposition::ForceCalculateSizeImmediately() { - SetImage(image, value); + GuiBoundsComposition::ForceCalculateSizeImmediately(); + UpdateStackItemBounds(); } - void GuiImageFrameElement::SetImage(Ptr _image, vint _frameIndex) + Rect GuiStackComposition::GetBounds() { - if(image!=_image || frameIndex!=_frameIndex) + for (vint i = 0; i < stackItems.Count(); i++) { - if(!_image) - { - image=0; - frameIndex=0; - } - else if(0<=_frameIndex && _frameIndex<_image->GetFrameCount()) + if (stackItemBounds[i].GetSize() != stackItems[i]->GetMinSize()) { - image=_image; - frameIndex=_frameIndex; + UpdateStackItemBounds(); + break; } - InvokeOnElementStateChanged(); } - } - - Alignment GuiImageFrameElement::GetHorizontalAlignment() - { - return hAlignment; - } - Alignment GuiImageFrameElement::GetVerticalAlignment() - { - return vAlignment; + Rect bounds = GuiBoundsComposition::GetBounds(); + previousBounds = bounds; + UpdatePreviousBounds(previousBounds); + return bounds; } - void GuiImageFrameElement::SetHorizontalAlignment(Alignment value) + Margin GuiStackComposition::GetExtraMargin() { - SetAlignments(value, vAlignment); + return extraMargin; } - void GuiImageFrameElement::SetVerticalAlignment(Alignment value) + void GuiStackComposition::SetExtraMargin(Margin value) { - SetAlignments(hAlignment, value); + extraMargin=value; + EnsureStackItemVisible(); } - void GuiImageFrameElement::SetAlignments(Alignment horizontal, Alignment vertical) + bool GuiStackComposition::IsStackItemClipped() { - if(hAlignment!=horizontal || vAlignment!=vertical) + Rect clientArea = GetClientArea(); + switch(direction) { - hAlignment=horizontal; - vAlignment=vertical; - InvokeOnElementStateChanged(); - } - } - - bool GuiImageFrameElement::GetStretch() - { - return stretch; + case Horizontal: + case ReversedHorizontal: + { + vint width = stackItemTotalSize.x + + (extraMargin.left > 0 ? extraMargin.left : 0) + + (extraMargin.right > 0 ? extraMargin.right : 0) + ; + return width > clientArea.Width(); + } + break; + case Vertical: + case ReversedVertical: + { + vint height = stackItemTotalSize.y + + (extraMargin.top > 0 ? extraMargin.top : 0) + + (extraMargin.bottom > 0 ? extraMargin.bottom : 0) + ; + return height > clientArea.Height(); + } + break; + } + return false; } - void GuiImageFrameElement::SetStretch(bool value) + bool GuiStackComposition::EnsureVisible(vint index) { - if(stretch!=value) + if (0 <= index && index < stackItems.Count()) { - stretch=value; - InvokeOnElementStateChanged(); + ensuringVisibleStackItem = stackItems[index]; } - } - - bool GuiImageFrameElement::GetEnabled() - { - return enabled; - } - - void GuiImageFrameElement::SetEnabled(bool value) - { - if(enabled!=value) + else { - enabled=value; - InvokeOnElementStateChanged(); + ensuringVisibleStackItem = 0; } + EnsureStackItemVisible(); + return ensuringVisibleStackItem != 0; } /*********************************************************************** -GuiPolygonElement +GuiStackItemComposition ***********************************************************************/ - GuiPolygonElement::GuiPolygonElement() + void GuiStackItemComposition::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) { + GuiGraphicsSite::OnParentChanged(oldParent, newParent); + stackParent = newParent == 0 ? 0 : dynamic_cast(newParent); } - Size GuiPolygonElement::GetSize() + Size GuiStackItemComposition::GetMinSize() { - return size; + return GetBoundsInternal(bounds, true).GetSize(); } - void GuiPolygonElement::SetSize(Size value) + GuiStackItemComposition::GuiStackItemComposition() + :stackParent(0) { - if(size!=value) - { - size=value; - InvokeOnElementStateChanged(); - } + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); } - const Point& GuiPolygonElement::GetPoint(vint index) + GuiStackItemComposition::~GuiStackItemComposition() { - return points[index]; } - vint GuiPolygonElement::GetPointCount() + bool GuiStackItemComposition::IsSizeAffectParent() { - return points.Count(); + return false; } - void GuiPolygonElement::SetPoints(const Point* p, vint count) + Rect GuiStackItemComposition::GetBounds() { - points.Resize(count); - if(count>0) + Rect result = bounds; + if(stackParent) { - memcpy(&points[0], p, sizeof(*p)*count); - } - InvokeOnElementStateChanged(); - } + vint index = stackParent->stackItems.IndexOf(this); + if (index != -1) + { + result = stackParent->stackItemBounds[index]; + } - const GuiPolygonElement::PointArray& GuiPolygonElement::GetPointsArray() - { - return points; - } + Rect parentBounds = stackParent->previousBounds; + Margin margin = stackParent->extraMargin; + if (margin.left <= 0) margin.left = 0; + if (margin.top <= 0) margin.top = 0; + if (margin.right <= 0) margin.right = 0; + if (margin.bottom <= 0) margin.bottom = 0; - void GuiPolygonElement::SetPointsArray(const PointArray& value) - { - CopyFrom(points, value); - InvokeOnElementStateChanged(); - } + auto x = result.Left(); + auto y = result.Top(); + auto w = result.Width(); + auto h = result.Height(); - Color GuiPolygonElement::GetBorderColor() - { - return borderColor; + switch (stackParent->direction) + { + case GuiStackComposition::Horizontal: + x += margin.left + stackParent->adjustment; + y = margin.top; + h = parentBounds.Height() - margin.top - margin.bottom; + break; + case GuiStackComposition::ReversedHorizontal: + x = parentBounds.Width() - margin.right - x - w + stackParent->adjustment; + y = margin.top; + h = parentBounds.Height() - margin.top - margin.bottom; + break; + case GuiStackComposition::Vertical: + x = margin.left; + y += margin.top + stackParent->adjustment; + w = parentBounds.Width() - margin.left - margin.right; + break; + case GuiStackComposition::ReversedVertical: + x = margin.left; + y = parentBounds.Height() - margin.bottom - y - h + stackParent->adjustment; + w = parentBounds.Width() - margin.left - margin.right; + break; + } + + result = Rect( + x - extraMargin.left, + y - extraMargin.top, + x + w + extraMargin.right, + y + h + extraMargin.bottom + ); + } + UpdatePreviousBounds(result); + return result; } - void GuiPolygonElement::SetBorderColor(Color value) + void GuiStackItemComposition::SetBounds(Rect value) { - if(borderColor!=value) + if (bounds != value) { - borderColor=value; - InvokeOnElementStateChanged(); + bounds = value; + InvokeOnCompositionStateChanged(); } } - Color GuiPolygonElement::GetBackgroundColor() + Margin GuiStackItemComposition::GetExtraMargin() { - return backgroundColor; + return extraMargin; } - void GuiPolygonElement::SetBackgroundColor(Color value) + void GuiStackItemComposition::SetExtraMargin(Margin value) { - if(backgroundColor!=value) + if (extraMargin != value) { - backgroundColor=value; - InvokeOnElementStateChanged(); + extraMargin = value; + InvokeOnCompositionStateChanged(); } } } } } + /*********************************************************************** -.\GRAPHICSELEMENT\GUIGRAPHICSRESOURCEMANAGER.CPP +.\GRAPHICSCOMPOSITION\GUIGRAPHICSTABLECOMPOSITION.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace elements + namespace compositions { using namespace collections; + using namespace controls; + using namespace elements; /*********************************************************************** -GuiGraphicsResourceManager +GuiTableComposition ***********************************************************************/ - GuiGraphicsResourceManager::GuiGraphicsResourceManager() - { - } - - GuiGraphicsResourceManager::~GuiGraphicsResourceManager() - { - } - - vint GuiGraphicsResourceManager::RegisterElementType(const WString& elementTypeName) - { - CHECK_ERROR(!elementTypes.Contains(elementTypeName), L"GuiGraphicsResourceManager::RegisterElementType(const WString&)#This element type has already been registered."); - return elementTypes.Add(elementTypeName); - } - - void GuiGraphicsResourceManager::RegisterRendererFactory(vint elementType, Ptr factory) + namespace update_cell_bounds_helpers { - if (rendererFactories.Count() <= elementType) - { - rendererFactories.Resize(elementType + 1); - rendererFactories[elementType] = factory; - } - else + vint First(vint a, vint b) { - CHECK_ERROR(!rendererFactories[elementType], L"GuiGraphicsResourceManager::RegisterRendererFactory(vint, Ptr)#This element type has already been binded a renderer factory."); - rendererFactories[elementType] = factory; + return a; } - } - - IGuiGraphicsRendererFactory* GuiGraphicsResourceManager::GetRendererFactory(vint elementType) - { - return rendererFactories.Count() > elementType ? rendererFactories[elementType].Obj() : nullptr; - } - - GuiGraphicsResourceManager* guiGraphicsResourceManager=0; - - GuiGraphicsResourceManager* GetGuiGraphicsResourceManager() - { - return guiGraphicsResourceManager; - } - - void SetGuiGraphicsResourceManager(GuiGraphicsResourceManager* resourceManager) - { - guiGraphicsResourceManager=resourceManager; - } - } - } -} - -/*********************************************************************** -.\GRAPHICSELEMENT\GUIGRAPHICSTEXTELEMENT.CPP -***********************************************************************/ - -namespace vl -{ - using namespace collections; - - namespace presentation - { - namespace elements - { - namespace text - { - -/*********************************************************************** -text::TextLine -***********************************************************************/ - TextLine::TextLine() - :text(0) - ,att(0) - ,availableOffsetCount(0) - ,bufferLength(0) - ,dataLength(0) - ,lexerFinalState(-1) - ,contextFinalState(-1) + vint Second(vint a, vint b) { + return b; } - TextLine::~TextLine() + vint X(Size s) { + return s.x; } - vint TextLine::CalculateBufferLength(vint dataLength) + vint Y(Size s) { - if(dataLength<1)dataLength=1; - vint bufferLength=dataLength-dataLength%BlockSize; - if(bufferLengthGetRow(); } - void TextLine::Finalize() + vint CL(GuiCellComposition* cell) { - if(text) - { - delete[] text; - text=0; - } - if(att) - { - delete[] att; - att=0; - } - availableOffsetCount=0; - bufferLength=0; - dataLength=0; + return cell->GetColumn(); } - bool TextLine::IsReady() + vint RS(GuiCellComposition* cell) { - return text && att; + return cell->GetRowSpan(); } - bool TextLine::Modify(vint start, vint count, const wchar_t* input, vint inputCount) + vint CS(GuiCellComposition* cell) { - if(!text || !att || start<0 || count<0 || start+count>dataLength || inputCount<0) return false; + return cell->GetColumnSpan(); + } + } + using namespace update_cell_bounds_helpers; - vint newDataLength=dataLength-count+inputCount; - vint newBufferLength=CalculateBufferLength(newDataLength); - if(newBufferLength!=bufferLength) - { - wchar_t* newText=new wchar_t[newBufferLength]; - memcpy(newText, text, start*sizeof(wchar_t)); - memcpy(newText+start, input, inputCount*sizeof(wchar_t)); - memcpy(newText+start+inputCount, text+start+count, (dataLength-start-count)*sizeof(wchar_t)); + vint GuiTableComposition::GetSiteIndex(vint _rows, vint _columns, vint _row, vint _column) + { + return _row*_columns + _column; + } - CharAtt* newAtt=new CharAtt[newBufferLength]; - memcpy(newAtt, att, start*sizeof(CharAtt)); - memset(newAtt+start, 0, inputCount*sizeof(CharAtt)); - memcpy(newAtt+start+inputCount, att+start+count, (dataLength-start-count)*sizeof(CharAtt)); + void GuiTableComposition::SetSitedCell(vint _row, vint _column, GuiCellComposition* cell) + { + cellCompositions[GetSiteIndex(rows, columns, _row, _column)] = cell; + } - delete[] text; - delete[] att; - text=newText; - att=newAtt; - } - else - { - memmove(text+start+inputCount, text+start+count, (dataLength-start-count)*sizeof(wchar_t)); - memmove(att+start+inputCount, att+start+count, (dataLength-start-count)*sizeof(CharAtt)); - memcpy(text+start, input, inputCount*sizeof(wchar_t)); - memset(att+start, 0, inputCount*sizeof(CharAtt)); - } - dataLength=newDataLength; - bufferLength=newBufferLength; - if(availableOffsetCount>start) + void GuiTableComposition::UpdateCellBoundsInternal( + collections::Array& dimSizes, + vint& dimSize, + vint& dimSizeWithPercentage, + collections::Array& dimOptions, + vint GuiTableComposition::* dim1, + vint GuiTableComposition::* dim2, + vint(*getSize)(Size), + vint(*getLocation)(GuiCellComposition*), + vint(*getSpan)(GuiCellComposition*), + vint(*getRow)(vint, vint), + vint(*getCol)(vint, vint), + vint maxPass + ) + { + for (vint pass = 0; pass < maxPass; pass++) + { + for (vint i = 0; i < this->*dim1; i++) { - availableOffsetCount=start; + GuiCellOption option = dimOptions[i]; + if (pass == 0) + { + dimSizes[i] = 0; + } + switch (option.composeType) + { + case GuiCellOption::Absolute: + { + dimSizes[i] = option.absolute; + } + break; + case GuiCellOption::MinSize: + { + for (vint j = 0; j < this->*dim2; j++) + { + GuiCellComposition* cell = GetSitedCell(getRow(i, j), getCol(i, j)); + if (cell) + { + bool accept = false; + if (pass == 0) + { + accept = getSpan(cell) == 1; + } + else + { + accept = getLocation(cell) + getSpan(cell) == i + 1; + } + if (accept) + { + vint size = getSize(cell->GetPreferredBounds().GetSize()); + vint span = getSpan(cell); + for (vint k = 1; k < span; k++) + { + size -= dimSizes[i - k] + cellPadding; + } + if (dimSizes[i] < size) + { + dimSizes[i] = size; + } + } + } + } + } + break; + default:; + } } - - return true; } - TextLine TextLine::Split(vint index) + bool percentageExists = false; + for (vint i = 0; i < this->*dim1; i++) { - if(index<0 || index>dataLength) return TextLine(); - vint count=dataLength-index; - TextLine line; - line.Initialize(); - line.Modify(0, 0, text+index, count); - memcpy(line.att, att+index, count*sizeof(CharAtt)); - Modify(index, count, L"", 0); - return line; + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + if (0.001 < option.percentage) + { + percentageExists = true; + } + } } - void TextLine::AppendAndFinalize(TextLine& line) + if (percentageExists) { - vint oldDataLength=dataLength; - Modify(oldDataLength, 0, line.text, line.dataLength); - memcpy(att+oldDataLength, line.att, line.dataLength*sizeof(CharAtt)); - line.Finalize(); - } - -/*********************************************************************** -text::CharMeasurer -***********************************************************************/ + for (vint i = 0; i < this->*dim1; i++) + { + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + if (0.001 < option.percentage) + { + for (vint j = 0; j < this->*dim2; j++) + { + GuiCellComposition* cell = GetSitedCell(getRow(i, j), getCol(i, j)); + if (cell) + { + vint size = getSize(cell->GetPreferredBounds().GetSize()); + vint start = getLocation(cell); + vint span = getSpan(cell); + size -= (span - 1)*cellPadding; + double totalPercentage = 0; - CharMeasurer::CharMeasurer(vint _rowHeight) - :rowHeight(_rowHeight) - { - memset(widths, 0, sizeof(widths)); - } + for (vint k = start; k < start + span; k++) + { + if (dimOptions[k].composeType == GuiCellOption::Percentage) + { + if (0.001 < dimOptions[k].percentage) + { + totalPercentage += dimOptions[k].percentage; + } + } + else + { + size -= dimSizes[k]; + } + } - CharMeasurer::~CharMeasurer() - { - } + size = (vint)ceil(size*option.percentage / totalPercentage); + if (dimSizes[i] < size) + { + dimSizes[i] = size; + } + } + } + } + } + } - void CharMeasurer::SetRenderTarget(IGuiGraphicsRenderTarget* value) - { - if(oldRenderTarget!=value) + vint percentageTotalSize = 0; + for (vint i = 0; i < this->*dim1; i++) { - oldRenderTarget=value; - rowHeight=GetRowHeightInternal(oldRenderTarget); - memset(widths, 0, sizeof(widths)); + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + if (0.001 < option.percentage) + { + vint size = (vint)ceil(dimSizes[i] / option.percentage); + if (percentageTotalSize < size) + { + percentageTotalSize = size; + } + } + } } - } - vint CharMeasurer::MeasureWidth(UnicodeCodePoint codePoint) - { - vuint32_t index = codePoint.GetCodePoint(); - if (0 <= index && index < 65536) + double totalPercentage = 0; + for (vint i = 0; i < this->*dim1; i++) { - vint w = widths[index]; - if (w == 0) + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) { - widths[index] = w = MeasureWidthInternal(codePoint, oldRenderTarget); + if (0.001 < option.percentage) + { + totalPercentage += option.percentage; + } } - return w; } - else if (index < 0x110000) - { - return MeasureWidthInternal(codePoint, oldRenderTarget); - } - else + + for (vint i = 0; i < this->*dim1; i++) { - return 0; + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + if (0.001 < option.percentage) + { + vint size = (vint)ceil(percentageTotalSize*option.percentage / totalPercentage); + if (dimSizes[i] < size) + { + dimSizes[i] = size; + } + } + } } } - vint CharMeasurer::GetRowHeight() + for (vint i = 0; i < this->*dim1; i++) { - return rowHeight; + if (dimOptions[i].composeType != GuiCellOption::Percentage) + { + dimSize += dimSizes[i]; + } + dimSizeWithPercentage += dimSizes[i]; } + } -/*********************************************************************** -text::TextLines -***********************************************************************/ - - TextLines::TextLines(GuiColorizedTextElement* _ownerElement) - :ownerElement(_ownerElement) - ,charMeasurer(0) - ,renderTarget(0) - ,tabWidth(1) - ,tabSpaceCount(4) - ,passwordChar(L'\0') + void GuiTableComposition::UpdateCellBoundsPercentages( + collections::Array& dimSizes, + vint dimSize, + vint maxDimSize, + collections::Array& dimOptions + ) + { + if (maxDimSize > dimSize) { - TextLine line; - line.Initialize(); - lines.Add(line); + double totalPercentage = 0; + vint percentageCount = 0; + for (vint i = 0; i < dimOptions.Count(); i++) + { + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + totalPercentage += option.percentage; + percentageCount++; + } + } + if (percentageCount > 0 && totalPercentage > 0.001) + { + for (vint i = 0; i < dimOptions.Count(); i++) + { + GuiCellOption option = dimOptions[i]; + if (option.composeType == GuiCellOption::Percentage) + { + dimSizes[i] = (vint)((maxDimSize - dimSize)*option.percentage / totalPercentage); + } + } + } } + } - TextLines::~TextLines() + vint GuiTableComposition::UpdateCellBoundsOffsets( + collections::Array& offsets, + collections::Array& sizes, + vint max + ) + { + offsets[0] = 0; + for (vint i = 1; i < offsets.Count(); i++) { - RemoveLines(0, lines.Count()); + offsets[i] = offsets[i - 1] + cellPadding + sizes[i - 1]; } - //-------------------------------------------------------- + vint last = offsets.Count() - 1; + vint right = offsets[last] + sizes[last]; + return max - right; + } - vint TextLines::GetCount() + void GuiTableComposition::OnRenderContextChanged() + { + if(GetRenderTarget()) { - return lines.Count(); + UpdateCellBounds(); } + } - TextLine& TextLines::GetLine(vint row) + Size GuiTableComposition::GetMinPreferredClientSizeInternal(bool considerPreferredMinSize) + { + vint offset = (borderVisible ? 2 * cellPadding : 0); + return Size(tableContentMinSize.x + offset, tableContentMinSize.y + offset); + } + + GuiTableComposition::GuiTableComposition() + :rows(0) + , columns(0) + , cellPadding(0) + , borderVisible(true) + , rowExtending(0) + , columnExtending(0) + { + ConfigChanged.SetAssociatedComposition(this); + SetRowsAndColumns(1, 1); + } + + GuiTableComposition::~GuiTableComposition() + { + } + + vint GuiTableComposition::GetRows() + { + return rows; + } + + vint GuiTableComposition::GetColumns() + { + return columns; + } + + bool GuiTableComposition::SetRowsAndColumns(vint _rows, vint _columns) + { + if (_rows <= 0 || _columns <= 0) return false; + rowOptions.Resize(_rows); + columnOptions.Resize(_columns); + cellCompositions.Resize(_rows*_columns); + cellBounds.Resize(_rows*_columns); + for (vint i = 0; i < _rows*_columns; i++) { - return lines[row]; + cellCompositions[i] = 0; + cellBounds[i] = Rect(); } - - CharMeasurer* TextLines::GetCharMeasurer() + rows = _rows; + columns = _columns; + vint childCount = Children().Count(); + for (vint i = 0; i < childCount; i++) { - return charMeasurer; + GuiCellComposition* cell = dynamic_cast(Children().Get(i)); + if (cell) + { + cell->OnTableRowsAndColumnsChanged(); + } } + ConfigChanged.Execute(GuiEventArgs(this)); + UpdateCellBounds(); + return true; + } - void TextLines::SetCharMeasurer(CharMeasurer* value) + GuiCellComposition* GuiTableComposition::GetSitedCell(vint _row, vint _column) + { + return cellCompositions[GetSiteIndex(rows, columns, _row, _column)]; + } + + GuiCellOption GuiTableComposition::GetRowOption(vint _row) + { + return rowOptions[_row]; + } + + void GuiTableComposition::SetRowOption(vint _row, GuiCellOption option) + { + if (rowOptions[_row] != option) { - charMeasurer=value; - if(charMeasurer) charMeasurer->SetRenderTarget(renderTarget); - ClearMeasurement(); + rowOptions[_row] = option; + UpdateCellBounds(); + ConfigChanged.Execute(GuiEventArgs(this)); } + } - IGuiGraphicsRenderTarget* TextLines::GetRenderTarget() + GuiCellOption GuiTableComposition::GetColumnOption(vint _column) + { + return columnOptions[_column]; + } + + void GuiTableComposition::SetColumnOption(vint _column, GuiCellOption option) + { + if (columnOptions[_column] != option) { - return renderTarget; + columnOptions[_column] = option; + UpdateCellBounds(); + ConfigChanged.Execute(GuiEventArgs(this)); } + } - void TextLines::SetRenderTarget(IGuiGraphicsRenderTarget* value) + vint GuiTableComposition::GetCellPadding() + { + return cellPadding; + } + + void GuiTableComposition::SetCellPadding(vint value) + { + if (value < 0) value = 0; + cellPadding = value; + UpdateCellBounds(); + } + + bool GuiTableComposition::GetBorderVisible() + { + return borderVisible; + } + + void GuiTableComposition::SetBorderVisible(bool value) + { + if (borderVisible != value) { - renderTarget=value; - if(charMeasurer) charMeasurer->SetRenderTarget(renderTarget); - ClearMeasurement(); + borderVisible = value; + UpdateCellBounds(); } + } - WString TextLines::GetText(TextPos start, TextPos end) - { - if(!IsAvailable(start) || !IsAvailable(end) || start>end) return L""; + Rect GuiTableComposition::GetCellArea() + { + Rect bounds(Point(0, 0), GuiBoundsComposition::GetBounds().GetSize()); + vint borderThickness = borderVisible ? cellPadding : 0; + bounds.x1 += margin.left + internalMargin.left + borderThickness; + bounds.y1 += margin.top + internalMargin.top + borderThickness; + bounds.x2 -= margin.right + internalMargin.right + borderThickness; + bounds.y2 -= margin.bottom + internalMargin.bottom + borderThickness; + if (bounds.x2 < bounds.x1) bounds.x2 = bounds.x1; + if (bounds.y2 < bounds.y1) bounds.y2 = bounds.y1; + return bounds; + } - if(start.row==end.row) - { - return WString::CopyFrom(lines[start.row].text+start.column, end.column-start.column); - } + void GuiTableComposition::UpdateCellBounds() + { + rowOffsets.Resize(rows); + rowSizes.Resize(rows); + columnOffsets.Resize(columns); + columnSizes.Resize(columns); - vint count=0; - for(vint i=start.row+1;i buffer; - buffer.Resize(count+(end.row-start.row)*2); - wchar_t* writing=&buffer[0]; + UpdateCellBoundsInternal( + rowSizes, + rowTotal, + rowTotalWithPercentage, + rowOptions, + &GuiTableComposition::rows, + &GuiTableComposition::columns, + &Y, + &RL, + &RS, + &First, + &Second, + 1 + ); + UpdateCellBoundsInternal( + columnSizes, + columnTotal, + columnTotalWithPercentage, + columnOptions, + &GuiTableComposition::columns, + &GuiTableComposition::rows, + &X, + &CL, + &CS, + &Second, + &First, + 1 + ); - for(vint i=start.row;i<=end.row;i++) - { - wchar_t* text=lines[i].text; - vint chars=0; - if(i==start.row) - { - text+=start.column; - chars=lines[i].dataLength-start.column; - } - else if(i==end.row) - { - chars=end.column; - } - else - { - chars=lines[i].dataLength; - } + Rect area = GetCellArea(); + UpdateCellBoundsPercentages(rowSizes, rowTotal, area.Height(), rowOptions); + UpdateCellBoundsPercentages(columnSizes, columnTotal, area.Width(), columnOptions); + rowExtending = UpdateCellBoundsOffsets(rowOffsets, rowSizes, area.Height()); + columnExtending = UpdateCellBoundsOffsets(columnOffsets, columnSizes, area.Width()); - if(i!=start.row) - { - *writing++=L'\r'; - *writing++=L'\n'; - } - memcpy(writing, text, chars*sizeof(wchar_t)); - writing+=chars; + for (vint i = 0; i < rows; i++) + { + for (vint j = 0; j < columns; j++) + { + vint index = GetSiteIndex(rows, columns, i, j); + cellBounds[index] = Rect(Point(columnOffsets[j], rowOffsets[i]), Size(columnSizes[j], rowSizes[i])); } - return WString::CopyFrom(&buffer[0], buffer.Count()); } - WString TextLines::GetText() - { - return GetText(TextPos(0, 0), TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength)); - } + tableContentMinSize = Size(columnTotalWithPercentage, rowTotalWithPercentage); + InvokeOnCompositionStateChanged(); + } - void TextLines::SetText(const WString& value) - { - Modify(TextPos(0, 0), TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength), value); - } + void GuiTableComposition::ForceCalculateSizeImmediately() + { + GuiBoundsComposition::ForceCalculateSizeImmediately(); + UpdateCellBounds(); + UpdateCellBounds(); + } - //-------------------------------------------------------- + Rect GuiTableComposition::GetBounds() + { + Rect cached = previousBounds; + Rect result = GuiBoundsComposition::GetBounds(); - bool TextLines::RemoveLines(vint start, vint count) + bool cellMinSizeModified = false; + SortedList cells; + for (auto cell : cellCompositions) { - if(start<0 || count<0 || start+count>lines.Count()) return false; - for(vint i=start+count-1;i>=start;i--) + if (cell && !cells.Contains(cell)) { - lines[i].Finalize(); + cells.Add(cell); + Size newSize = cell->GetPreferredBounds().GetSize(); + if (cell->lastPreferredSize != newSize) + { + cell->lastPreferredSize = newSize; + cellMinSizeModified = true; + } } - lines.RemoveRange(start, count); - return true; } - bool TextLines::IsAvailable(TextPos pos) + if (cached != result || cellMinSizeModified) { - return 0<=pos.row && pos.row=lines.Count()) - { - return TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength); - } - else + for (vint r = 0; r < rowSpan; r++) { - TextLine& line=lines[pos.row]; - if(pos.column<0) - { - return TextPos(pos.row, 0); - } - else if(pos.column>line.dataLength) - { - return TextPos(pos.row, line.dataLength); - } - else + for (vint c = 0; c < columnSpan; c++) { - return pos; + table->SetSitedCell(row + r, column + c, 0); } } } + } - TextPos TextLines::Modify(TextPos start, TextPos end, const wchar_t** inputs, vint* inputCounts, vint rows) + void GuiCellComposition::SetSitedCells(GuiTableComposition* table) + { + for (vint r = 0; r < rowSpan; r++) { - if(!IsAvailable(start) || !IsAvailable(end) || start>end) return TextPos(-1, -1); - if (ownerElement) + for (vint c = 0; c < columnSpan; c++) { - ownerElement->InvokeOnElementStateChanged(); + table->SetSitedCell(row + r, column + c, this); } + } + } - if(rows==1) + void GuiCellComposition::ResetSiteInternal() + { + row = -1; + column = -1; + rowSpan = 1; + columnSpan = 1; + } + + bool GuiCellComposition::SetSiteInternal(vint _row, vint _column, vint _rowSpan, vint _columnSpan) + { + if (tableParent) + { + if (_row < 0 || _row >= tableParent->rows || _column < 0 || _column >= tableParent->columns) return false; + if (_rowSpan<1 || _row + _rowSpan>tableParent->rows || _columnSpan<1 || _column + _columnSpan>tableParent->columns) return false; + + for (vint r = 0; r < _rowSpan; r++) { - if(start.row==end.row) - { - lines[start.row].Modify(start.column, end.column-start.column, inputs[0], inputCounts[0]); - } - else + for (vint c = 0; c < _columnSpan; c++) { - if(end.row-start.row>1) + GuiCellComposition* cell = tableParent->GetSitedCell(_row + r, _column + c); + if (cell && cell != this) { - RemoveLines(start.row+1, end.row-start.row-1); + return false; } - vint modifyCount=lines[start.row].dataLength-start.column+end.column; - lines[start.row].AppendAndFinalize(lines[start.row+1]); - lines.RemoveAt(start.row+1); - lines[start.row].Modify(start.column, modifyCount, inputs[0], inputCounts[0]); } - return TextPos(start.row, start.column+inputCounts[0]); } + ClearSitedCells(tableParent); + } - if(start.row==end.row) - { - TextLine newLine=lines[start.row].Split(end.column); - lines.Insert(start.row+1, newLine); - end=TextPos(start.row+1, 0); - } + row = _row; + column = _column; + rowSpan = _rowSpan; + columnSpan = _columnSpan; - vint oldMiddleLines=end.row-start.row-1; - vint newMiddleLines=rows-2; - if(oldMiddleLinesnewMiddleLines) - { - RemoveLines(start.row+newMiddleLines+1, oldMiddleLines-newMiddleLines); - } - end.row+=newMiddleLines-oldMiddleLines; + if (tableParent) + { + SetSitedCells(tableParent); + } + return true; + } - lines[start.row].Modify(start.column, lines[start.row].dataLength-start.column, inputs[0], inputCounts[0]); - lines[end.row].Modify(0, end.column, inputs[rows-1], inputCounts[rows-1]); - for(vint i=1;i(newParent); + if (!tableParent || !SetSiteInternal(row, column, rowSpan, columnSpan)) + { + ResetSiteInternal(); + } + if (tableParent) + { + if (row != -1 && column != -1) { - lines[start.row+i].Modify(0, lines[start.row+i].dataLength, inputs[i], inputCounts[i]); + SetSiteInternal(row, column, rowSpan, columnSpan); } - return TextPos(end.row, inputCounts[rows-1]); + tableParent->UpdateCellBounds(); } + } - TextPos TextLines::Modify(TextPos start, TextPos end, const wchar_t* input, vint inputCount) + void GuiCellComposition::OnTableRowsAndColumnsChanged() + { + if(!SetSiteInternal(row, column, rowSpan, columnSpan)) { - List inputs; - List inputCounts; - const wchar_t* previous=input; - const wchar_t* current=input; + ResetSiteInternal(); + } + } - while(true) - { - if(current==input+inputCount) - { - inputs.Add(previous); - inputCounts.Add(current-previous); - break; - } - else if(*current==L'\r' || *current==L'\n') - { - inputs.Add(previous); - inputCounts.Add(current-previous); - previous=current+(current[1]==L'\n'?2:1); - current=previous; - } - else - { - current++; - } - } - - return Modify(start, end, &inputs[0], &inputCounts[0], inputs.Count()); - } - - TextPos TextLines::Modify(TextPos start, TextPos end, const wchar_t* input) - { - return Modify(start, end, input, wcslen(input)); - } + GuiCellComposition::GuiCellComposition() + :row(-1) + ,column(-1) + ,rowSpan(1) + ,columnSpan(1) + ,tableParent(0) + { + SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); + } - TextPos TextLines::Modify(TextPos start, TextPos end, const WString& input) - { - return Modify(start, end, input.Buffer(), input.Length()); - } + GuiCellComposition::~GuiCellComposition() + { + } - void TextLines::Clear() - { - RemoveLines(0, lines.Count()); - TextLine line; - line.Initialize(); - lines.Add(line); - if (ownerElement) - { - ownerElement->InvokeOnElementStateChanged(); - } - } + GuiTableComposition* GuiCellComposition::GetTableParent() + { + return tableParent; + } - //-------------------------------------------------------- + vint GuiCellComposition::GetRow() + { + return row; + } - void TextLines::ClearMeasurement() - { - for (vint i = 0; i < lines.Count(); i++) - { - lines[i].availableOffsetCount = 0; - } + vint GuiCellComposition::GetRowSpan() + { + return rowSpan; + } - tabWidth = tabSpaceCount * (charMeasurer ? charMeasurer->MeasureWidth({ L' ' }) : 1); - if (tabWidth == 0) - { - tabWidth = 1; - } + vint GuiCellComposition::GetColumn() + { + return column; + } - if (ownerElement) - { - ownerElement->InvokeOnElementStateChanged(); - } - } + vint GuiCellComposition::GetColumnSpan() + { + return columnSpan; + } - vint TextLines::GetTabSpaceCount() + bool GuiCellComposition::SetSite(vint _row, vint _column, vint _rowSpan, vint _columnSpan) + { + if (!SetSiteInternal(_row, _column, _rowSpan, _columnSpan)) { - return tabSpaceCount; + return false; } - void TextLines::SetTabSpaceCount(vint value) + if (tableParent) { - if(value<1) value=1; - if(tabSpaceCount!=value) - { - tabSpaceCount=value; - ClearMeasurement(); - } + tableParent->UpdateCellBounds(); } + return true; + } - void TextLines::MeasureRow(vint row) + Rect GuiCellComposition::GetBounds() + { + Rect result; + if(tableParent && row!=-1 && column!=-1) { - TextLine& line = lines[row]; - vint offset = 0; - if (line.availableOffsetCount) + Rect bounds1, bounds2; { - offset = line.att[line.availableOffsetCount - 1].rightOffset; + vint index=tableParent->GetSiteIndex(tableParent->rows, tableParent->columns, row, column); + bounds1=tableParent->cellBounds[index]; } - for (vint i = line.availableOffsetCount; i < line.dataLength; i++) { - CharAtt& att = line.att[i]; - wchar_t c = line.text[i]; - vint width = 0; - vint passwordWidth = 0; - if (passwordChar) - { - passwordWidth = charMeasurer ? charMeasurer->MeasureWidth({ passwordChar }) : 1; - } - - if (c == L'\t') - { - width = tabWidth - offset % tabWidth; - } -#if defined VCZH_MSVC - else if (UTF16SPFirst(c) && (i + 1 < line.dataLength) && UTF16SPSecond(line.text[i + 1])) - { - width = passwordChar ? passwordWidth : (charMeasurer ? charMeasurer->MeasureWidth({ c, line.text[i + 1] }) : 1); - offset += width; - att.rightOffset = (int)offset; - line.att[i + 1].rightOffset = (int)offset; - i++; - continue; - } -#endif - else + vint index=tableParent->GetSiteIndex(tableParent->rows, tableParent->columns, row+rowSpan-1, column+columnSpan-1); + bounds2=tableParent->cellBounds[index]; + if(tableParent->GetMinSizeLimitation()==GuiGraphicsComposition::NoLimit) { - width = passwordChar ? passwordWidth : (charMeasurer ? charMeasurer->MeasureWidth({ c }) : 1); + if(row+rowSpan==tableParent->rows) + { + bounds2.y2+=tableParent->rowExtending; + } + if(column+columnSpan==tableParent->columns) + { + bounds2.x2+=tableParent->columnExtending; + } } - offset += width; - att.rightOffset = (int)offset; } - line.availableOffsetCount = line.dataLength; + vint offset = tableParent->borderVisible ? tableParent->cellPadding : 0; + result = Rect(bounds1.x1 + offset, bounds1.y1 + offset, bounds2.x2 + offset, bounds2.y2 + offset); } - - vint TextLines::GetRowWidth(vint row) + else { - if(row<0 || row>=lines.Count()) return -1; - TextLine& line=lines[row]; - if(line.dataLength==0) - { - return 0; - } - else - { - MeasureRow(row); - return line.att[line.dataLength-1].rightOffset; - } + result = Rect(); } + UpdatePreviousBounds(result); + return result; + } - vint TextLines::GetRowHeight() - { - return charMeasurer ? charMeasurer->GetRowHeight() : 1; - } +/*********************************************************************** +GuiTableSplitterCompositionBase +***********************************************************************/ - vint TextLines::GetMaxWidth() + void GuiTableSplitterCompositionBase::OnParentChanged(GuiGraphicsComposition* oldParent, GuiGraphicsComposition* newParent) + { + GuiGraphicsSite::OnParentChanged(oldParent, newParent); + tableParent = dynamic_cast(newParent); + } + + void GuiTableSplitterCompositionBase::OnLeftButtonDown(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + { + dragging = true; + draggingPoint = Point(arguments.x, arguments.y); + } + + void GuiTableSplitterCompositionBase::OnLeftButtonUp(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) + { + dragging = false; + } + + void GuiTableSplitterCompositionBase::OnMouseMoveHelper( + vint cellsBefore, + vint GuiTableComposition::* cells, + collections::Array& cellSizes, + vint offset, + GuiCellOption(GuiTableComposition::*getOption)(vint), + void(GuiTableComposition::*setOption)(vint, GuiCellOption) + ) + { + if (dragging) { - vint width=0; - for(vint i=0;i*cells) { - width=rowWidth; - } - } - return width; - } + auto o1 = (tableParent->*getOption)(cellsBefore - 1); + auto o2 = (tableParent->*getOption)(cellsBefore); - vint TextLines::GetMaxHeight() - { - return lines.Count() * GetRowHeight(); - } + vint indexStart = -1; + vint indexEnd = -1; + vint indexStep = -1; + vint max = 0; - TextPos TextLines::GetTextPosFromPoint(Point point) - { - vint h = GetRowHeight(); - if(point.y<0) - { - point.y=0; - } - else if(point.y>=h*lines.Count()) - { - point.y=h*lines.Count()-1; - } + if (offset < 0) + { + indexStart = cellsBefore - 1; + indexEnd = -1; + indexStep = -1; + } + else if (offset > 0) + { + indexStart = cellsBefore; + indexEnd = tableParent->*cells; + indexStep = 1; + } + else + { + return; + } - vint row=point.y/h; - if(point.x<0) - { - return TextPos(row, 0); - } - else if(point.x>=GetRowWidth(row)) - { - return TextPos(row, lines[row].dataLength); - } - TextLine& line=lines[row]; + { + auto o = (tableParent->*getOption)(indexStart); + if (o.composeType == GuiCellOption::Absolute) + { + max = o.absolute - 1; + } + else + { + for (vint i = indexStart; i != indexEnd; i += indexStep) + { + o = (tableParent->*getOption)(i); + if (o.composeType == GuiCellOption::Absolute) + { + break; + } + else if (o.composeType == GuiCellOption::Percentage) + { + max += cellSizes[i] - 1; + } + } + } - vint i1=0, i2=line.dataLength; - vint p1=0, p2=line.att[line.dataLength-1].rightOffset; - while(i2-i1>1) - { - vint i=(i1+i2)/2; - vint p=i==0?0:line.att[i-1].rightOffset; - if(point.x 0 && UTF16SPFirst(line.text[i1 - 1])) - { - i1--; - } -#endif - return TextPos(row, i1); - } + if (max <= 0) + { + return; + } + } - Point TextLines::GetPointFromTextPos(TextPos pos) - { - if(IsAvailable(pos)) - { - vint y = pos.row * GetRowHeight(); - if(pos.column==0) - { - return Point(0, y); - } - else - { - MeasureRow(pos.row); - TextLine& line=lines[pos.row]; - return Point(line.att[pos.column-1].rightOffset, y); + if (offset < 0) + { + if (max < -offset) + { + offset = -max; + } + } + else + { + if (max < offset) + { + offset = max; + } + } + + if (o1.composeType == GuiCellOption::Absolute) + { + o1.absolute += offset; + (tableParent->*setOption)(cellsBefore - 1, o1); + } + if (o2.composeType == GuiCellOption::Absolute) + { + o2.absolute -= offset; + (tableParent->*setOption)(cellsBefore, o2); + } + tableParent->ForceCalculateSizeImmediately(); } } - else - { - return Point(-1, -1); - } } + } - Rect TextLines::GetRectFromTextPos(TextPos pos) + Rect GuiTableSplitterCompositionBase::GetBoundsHelper( + vint cellsBefore, + vint GuiTableComposition::* cells, + vint(Rect::* dimSize)()const, + collections::Array& cellOffsets, + vint Rect::* dimU1, + vint Rect::* dimU2, + vint Rect::* dimV1, + vint Rect::* dimV2 + ) + { + Rect result(0, 0, 0, 0); + if (tableParent) { - Point point=GetPointFromTextPos(pos); - if(point==Point(-1, -1)) - { - return Rect(-1, -1, -1, -1); - } - else + if (0 < cellsBefore && cellsBefore < tableParent->*cells) { - vint h = GetRowHeight(); - TextLine& line=lines[pos.row]; - if(pos.column==line.dataLength) - { - return Rect(point, Size(h/2, h)); - } - else - { - return Rect(point, Size(line.att[pos.column].rightOffset-point.x, h)); - } + vint offset = tableParent->borderVisible ? tableParent->cellPadding : 0; + result.*dimU1 = offset; + result.*dimU2 = offset + (tableParent->GetCellArea().*dimSize)(); + result.*dimV1 = offset + cellOffsets[cellsBefore] - tableParent->cellPadding; + result.*dimV2 = (result.*dimV1) + tableParent->cellPadding; } } - - //-------------------------------------------------------- - - wchar_t TextLines::GetPasswordChar() - { - return passwordChar; - } - - void TextLines::SetPasswordChar(wchar_t value) - { - passwordChar=value; - ClearMeasurement(); - } + UpdatePreviousBounds(result); + return result; } - - using namespace text; - -/*********************************************************************** -GuiColorizedTextElement -***********************************************************************/ - - GuiColorizedTextElement::GuiColorizedTextElement() - :callback(0) - ,isVisuallyEnabled(true) - ,isFocused(false) - ,caretVisible(false) - ,lines(this) + + GuiTableSplitterCompositionBase::GuiTableSplitterCompositionBase() + :tableParent(0) + , dragging(false) { + SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeNS)); + GetEventReceiver()->leftButtonDown.AttachMethod(this, &GuiTableSplitterCompositionBase::OnLeftButtonDown); + GetEventReceiver()->leftButtonUp.AttachMethod(this, &GuiTableSplitterCompositionBase::OnLeftButtonUp); } - text::TextLines& GuiColorizedTextElement::GetLines() + GuiTableSplitterCompositionBase::~GuiTableSplitterCompositionBase() { - return lines; } - GuiColorizedTextElement::ICallback* GuiColorizedTextElement::GetCallback() + GuiTableComposition* GuiTableSplitterCompositionBase::GetTableParent() { - return callback; + return tableParent; } - void GuiColorizedTextElement::SetCallback(ICallback* value) - { - callback=value; - if(!callback) - { - lines.SetCharMeasurer(0); - } - } +/*********************************************************************** +GuiRowSplitterComposition +***********************************************************************/ - const GuiColorizedTextElement::ColorArray& GuiColorizedTextElement::GetColors() + void GuiRowSplitterComposition::OnMouseMove(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) { - return colors; + OnMouseMoveHelper( + rowsToTheTop, + &GuiTableComposition::rows, + tableParent->rowSizes, + arguments.y - draggingPoint.y, + &GuiTableComposition::GetRowOption, + &GuiTableComposition::SetRowOption + ); } - - void GuiColorizedTextElement::SetColors(const ColorArray& value) + + GuiRowSplitterComposition::GuiRowSplitterComposition() + :rowsToTheTop(0) { - CopyFrom(colors, value); - if(callback) callback->ColorChanged(); - InvokeOnElementStateChanged(); + SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeNS)); + GetEventReceiver()->mouseMove.AttachMethod(this, &GuiRowSplitterComposition::OnMouseMove); } - void GuiColorizedTextElement::ResetTextColorIndex(vint index) + GuiRowSplitterComposition::~GuiRowSplitterComposition() { - vint lineCount = lines.GetCount(); - for (vint i = 0; i < lineCount; i++) - { - auto& line = lines.GetLine(i); - line.lexerFinalState = -1; - line.contextFinalState = -1; - for (vint j = 0; j < line.dataLength; j++) - { - line.att[j].colorIndex = (vuint32_t)index; - } - } } - const FontProperties& GuiColorizedTextElement::GetFont() + vint GuiRowSplitterComposition::GetRowsToTheTop() { - return font; + return rowsToTheTop; } - void GuiColorizedTextElement::SetFont(const FontProperties& value) + void GuiRowSplitterComposition::SetRowsToTheTop(vint value) { - if(font!=value) + if (rowsToTheTop != value) { - font=value; - if(callback) - { - callback->FontChanged(); - } - InvokeOnElementStateChanged(); + rowsToTheTop = value; + InvokeOnCompositionStateChanged(); } } - wchar_t GuiColorizedTextElement::GetPasswordChar() - { - return lines.GetPasswordChar(); - } - - void GuiColorizedTextElement::SetPasswordChar(wchar_t value) + Rect GuiRowSplitterComposition::GetBounds() { - if(lines.GetPasswordChar()!=value) - { - lines.SetPasswordChar(value); - InvokeOnElementStateChanged(); - } + return GetBoundsHelper( + rowsToTheTop, + &GuiTableComposition::rows, + &Rect::Width, + tableParent->rowOffsets, + &Rect::x1, + &Rect::x2, + &Rect::y1, + &Rect::y2 + ); } - Point GuiColorizedTextElement::GetViewPosition() - { - return viewPosition; - } +/*********************************************************************** +GuiColumnSplitterComposition +***********************************************************************/ - void GuiColorizedTextElement::SetViewPosition(Point value) + void GuiColumnSplitterComposition::OnMouseMove(GuiGraphicsComposition* sender, GuiMouseEventArgs& arguments) { - if(viewPosition!=value) - { - viewPosition=value; - InvokeOnElementStateChanged(); - } + OnMouseMoveHelper( + columnsToTheLeft, + &GuiTableComposition::columns, + tableParent->columnSizes, + arguments.x - draggingPoint.x, + &GuiTableComposition::GetColumnOption, + &GuiTableComposition::SetColumnOption + ); } - - bool GuiColorizedTextElement::GetVisuallyEnabled() + + GuiColumnSplitterComposition::GuiColumnSplitterComposition() + :columnsToTheLeft(0) { - return isVisuallyEnabled; + SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::SizeWE)); + GetEventReceiver()->mouseMove.AttachMethod(this, &GuiColumnSplitterComposition::OnMouseMove); } - void GuiColorizedTextElement::SetVisuallyEnabled(bool value) + GuiColumnSplitterComposition::~GuiColumnSplitterComposition() { - if(isVisuallyEnabled!=value) - { - isVisuallyEnabled=value; - InvokeOnElementStateChanged(); - } } - bool GuiColorizedTextElement::GetFocused() + vint GuiColumnSplitterComposition::GetColumnsToTheLeft() { - return isFocused; + return columnsToTheLeft; } - void GuiColorizedTextElement::SetFocused(bool value) + void GuiColumnSplitterComposition::SetColumnsToTheLeft(vint value) { - if(isFocused!=value) + if (columnsToTheLeft != value) { - isFocused=value; - InvokeOnElementStateChanged(); + columnsToTheLeft = value; + InvokeOnCompositionStateChanged(); } } - TextPos GuiColorizedTextElement::GetCaretBegin() - { - return caretBegin; - } - - void GuiColorizedTextElement::SetCaretBegin(TextPos value) - { - caretBegin=value; - InvokeOnElementStateChanged(); - } - - TextPos GuiColorizedTextElement::GetCaretEnd() - { - return caretEnd; - } - - void GuiColorizedTextElement::SetCaretEnd(TextPos value) - { - caretEnd=value; - InvokeOnElementStateChanged(); - } - - bool GuiColorizedTextElement::GetCaretVisible() - { - return caretVisible; - } - - void GuiColorizedTextElement::SetCaretVisible(bool value) - { - caretVisible=value; - InvokeOnElementStateChanged(); - } - - Color GuiColorizedTextElement::GetCaretColor() - { - return caretColor; - } - - void GuiColorizedTextElement::SetCaretColor(Color value) + Rect GuiColumnSplitterComposition::GetBounds() { - if(caretColor!=value) - { - caretColor=value; - InvokeOnElementStateChanged(); - } + return GetBoundsHelper( + columnsToTheLeft, + &GuiTableComposition::columns, + &Rect::Height, + tableParent->columnOffsets, + &Rect::y1, + &Rect::y2, + &Rect::x1, + &Rect::x2 + ); } } } } - /*********************************************************************** -.\GRAPHICSHOST\GUIGRAPHICSHOST.CPP +.\GRAPHICSELEMENT\GUIGRAPHICSDOCUMENTELEMENT.CPP ***********************************************************************/ namespace vl { + using namespace collections; + namespace presentation { - namespace compositions + namespace elements { - using namespace collections; - using namespace controls; - using namespace elements; - using namespace theme; /*********************************************************************** -GuiGraphicsTimerManager +SetPropertiesVisitor ***********************************************************************/ - GuiGraphicsTimerManager::GuiGraphicsTimerManager() - { - } - - GuiGraphicsTimerManager::~GuiGraphicsTimerManager() + namespace visitors { - } + class SetPropertiesVisitor : public Object, public DocumentRun::IVisitor + { + typedef GuiDocumentElement::GuiDocumentElementRenderer Renderer; + typedef DocumentModel::ResolvedStyle ResolvedStyle; + public: + vint start; + vint length; + vint selectionBegin; + vint selectionEnd; + List styles; - void GuiGraphicsTimerManager::AddCallback(Ptr callback) - { - callbacks.Add(callback); - } + DocumentModel* model; + Renderer* renderer; + Ptr cache; + IGuiGraphicsParagraph* paragraph; - void GuiGraphicsTimerManager::Play() - { - for (vint i = callbacks.Count() - 1; i >= 0; i--) - { - auto callback = callbacks[i]; - if (!callback->Play()) + SetPropertiesVisitor(DocumentModel* _model, Renderer* _renderer, Ptr _cache, vint _selectionBegin, vint _selectionEnd) + :start(0) + ,length(0) + ,model(_model) + ,renderer(_renderer) + ,cache(_cache) + ,paragraph(_cache->graphicsParagraph.Obj()) + ,selectionBegin(_selectionBegin) + ,selectionEnd(_selectionEnd) { - callbacks.RemoveAt(i); + ResolvedStyle style; + style=model->GetStyle(DocumentModel::DefaultStyleName, style); + styles.Add(style); } - } - } - -/*********************************************************************** -GuiGraphicsHost -***********************************************************************/ - - void GuiGraphicsHost::RefreshRelatedHostRecord(INativeWindow* nativeWindow) - { - hostRecord.nativeWindow = nativeWindow; - hostRecord.renderTarget = nativeWindow ? GetGuiGraphicsResourceManager()->GetRenderTarget(nativeWindow) : nullptr; - windowComposition->UpdateRelatedHostRecord(&hostRecord); - } - void GuiGraphicsHost::DisconnectCompositionInternal(GuiGraphicsComposition* composition) - { - for(vint i=0;iChildren().Count();i++) - { - DisconnectCompositionInternal(composition->Children().Get(i)); - } - if(mouseCaptureComposition==composition) - { - if(hostRecord.nativeWindow) + void VisitContainer(DocumentContainerRun* run) { - hostRecord.nativeWindow->ReleaseCapture(); + for (auto subRun : run->runs) + { + subRun->Accept(this); + } } - mouseCaptureComposition=0; - } - if(focusedComposition==composition) - { - focusedComposition=0; - } - mouseEnterCompositions.Remove(composition); - } - void GuiGraphicsHost::MouseCapture(const NativeWindowMouseInfo& info) - { - if (hostRecord.nativeWindow && (info.left || info.middle || info.right)) - { - if (!hostRecord.nativeWindow->IsCapturing() && !info.nonClient) + void ApplyStyle(vint start, vint length, const ResolvedStyle& style) { - hostRecord.nativeWindow->RequireCapture(); - auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); - mouseCaptureComposition = windowComposition->FindComposition(point, true); + paragraph->SetFont(start, length, style.style.fontFamily); + paragraph->SetSize(start, length, style.style.size); + paragraph->SetStyle(start, length, + (IGuiGraphicsParagraph::TextStyle) + ( (style.style.bold?IGuiGraphicsParagraph::Bold:0) + | (style.style.italic?IGuiGraphicsParagraph::Italic:0) + | (style.style.underline?IGuiGraphicsParagraph::Underline:0) + | (style.style.strikeline?IGuiGraphicsParagraph::Strikeline:0) + )); } - } - } - void GuiGraphicsHost::MouseUncapture(const NativeWindowMouseInfo& info) - { - if(hostRecord.nativeWindow && !(info.left || info.middle || info.right)) - { - hostRecord.nativeWindow->ReleaseCapture(); - mouseCaptureComposition=0; - } - } - - void GuiGraphicsHost::OnCharInput(const NativeWindowCharInfo& info, GuiGraphicsComposition* composition, GuiCharEvent GuiGraphicsEventReceiver::* eventReceiverEvent) - { - List compositions; - while(composition) - { - if(composition->HasEventReceiver()) + void ApplyColor(vint start, vint length, const ResolvedStyle& style) { - compositions.Add(composition); + paragraph->SetColor(start, length, style.color); + paragraph->SetBackgroundColor(start, length, style.backgroundColor); } - composition=composition->GetParent(); - } - - GuiCharEventArgs arguments(composition); - (NativeWindowCharInfo&)arguments=info; - for(vint i=compositions.Count()-1;i>=0;i--) - { - compositions[i]->GetEventReceiver()->previewCharInput.Execute(arguments); - if(arguments.handled) + void Visit(DocumentTextRun* run)override { - return; + length=run->GetRepresentationText().Length(); + if(length>0) + { + ResolvedStyle style=styles[styles.Count()-1]; + ApplyStyle(start, length, style); + ApplyColor(start, length, style); + + vint styleStart=start; + vint styleEnd=styleStart+length; + if(styleStartselectionBegin?styleStart:selectionBegin; + vint s3=selectionEndGetStyle(DocumentModel::SelectionStyleName, style); + ApplyColor(s2, s3-s2, selectionStyle); + } + } + } + start+=length; } - } - for(vint i=0;iGetEventReceiver()->*eventReceiverEvent).Execute(arguments); - if(arguments.handled) + void Visit(DocumentStylePropertiesRun* run)override { - return; + ResolvedStyle style=styles[styles.Count()-1]; + style=model->GetStyle(run->style, style); + styles.Add(style); + VisitContainer(run); + styles.RemoveAt(styles.Count()-1); } - } - } - void GuiGraphicsHost::OnKeyInput(const NativeWindowKeyInfo& info, GuiGraphicsComposition* composition, GuiKeyEvent GuiGraphicsEventReceiver::* eventReceiverEvent) - { - List compositions; - { - auto current = composition; - while (current) + void Visit(DocumentStyleApplicationRun* run)override { - if (current->HasEventReceiver()) - { - compositions.Add(current); - } - current = current->GetParent(); + ResolvedStyle style=styles[styles.Count()-1]; + style=model->GetStyle(run->styleName, style); + styles.Add(style); + VisitContainer(run); + styles.RemoveAt(styles.Count()-1); } - } - GuiKeyEventArgs arguments(composition); - (NativeWindowKeyInfo&)arguments = info; - - for (vint i = compositions.Count() - 1; i >= 0; i--) - { - compositions[i]->GetEventReceiver()->previewKey.Execute(arguments); - if (arguments.handled) + void Visit(DocumentHyperlinkRun* run)override { - return; + ResolvedStyle style=styles[styles.Count()-1]; + style=model->GetStyle(run->styleName, style); + styles.Add(style); + VisitContainer(run); + styles.RemoveAt(styles.Count()-1); } - } - for (vint i = 0; i < compositions.Count(); i++) - { - (compositions[i]->GetEventReceiver()->*eventReceiverEvent).Execute(arguments); - if (arguments.handled) + void Visit(DocumentImageRun* run)override { - return; - } - } - } + length=run->GetRepresentationText().Length(); - void GuiGraphicsHost::RaiseMouseEvent(GuiMouseEventArgs& arguments, GuiGraphicsComposition* composition, GuiMouseEvent GuiGraphicsEventReceiver::* eventReceiverEvent) - { - arguments.compositionSource=composition; - arguments.eventSource=0; - vint x=arguments.x; - vint y=arguments.y; + auto element=Ptr(GuiImageFrameElement::Create()); + element->SetImage(run->image, run->frameIndex); + element->SetStretch(true); - while(composition) - { - if(composition->HasEventReceiver()) + IGuiGraphicsParagraph::InlineObjectProperties properties; + properties.size=run->size; + properties.baseline=run->baseline; + properties.breakCondition=IGuiGraphicsParagraph::Alone; + properties.backgroundImage = element; + + paragraph->SetInlineObject(start, length, properties); + + if(startGetStyle(DocumentModel::SelectionStyleName, style); + ApplyColor(start, length, selectionStyle); + } + start+=length; + } + + void Visit(DocumentEmbeddedObjectRun* run)override { - if(!arguments.eventSource) + length=run->GetRepresentationText().Length(); + + IGuiGraphicsParagraph::InlineObjectProperties properties; + properties.breakCondition=IGuiGraphicsParagraph::Alone; + + if (run->name != L"") { - arguments.eventSource=composition; + vint index = renderer->nameCallbackIdMap.Keys().IndexOf(run->name); + if (index != -1) + { + auto id = renderer->nameCallbackIdMap.Values()[index]; + index = cache->embeddedObjects.Keys().IndexOf(id); + if (index != -1) + { + auto eo = cache->embeddedObjects.Values()[index]; + if (eo->start == start) + { + properties.size = eo->size; + properties.callbackId = id; + } + } + } + else + { + auto eo = Ptr(new Renderer::EmbeddedObject); + eo->name = run->name; + eo->size = Size(0, 0); + eo->start = start; + + vint id = -1; + vint count = renderer->freeCallbackIds.Count(); + if (count > 0) + { + id = renderer->freeCallbackIds[count - 1]; + renderer->freeCallbackIds.RemoveAt(count - 1); + } + else + { + id = renderer->usedCallbackIds++; + } + + renderer->nameCallbackIdMap.Add(eo->name, id); + cache->embeddedObjects.Add(id, eo); + properties.callbackId = id; + } } - GuiGraphicsEventReceiver* eventReceiver=composition->GetEventReceiver(); - (eventReceiver->*eventReceiverEvent).Execute(arguments); - if(arguments.handled) + + paragraph->SetInlineObject(start, length, properties); + + if(startGetStyle(DocumentModel::SelectionStyleName, style); + ApplyColor(start, length, selectionStyle); } + start+=length; } - GuiGraphicsComposition* parent=composition->GetParent(); - if(parent) + void Visit(DocumentParagraphRun* run)override { - Rect parentBounds=parent->GetBounds(); - Rect clientArea=parent->GetClientArea(); - Rect childBounds=composition->GetBounds(); + VisitContainer(run); + } - x+=childBounds.x1+(clientArea.x1-parentBounds.x1); - y+=childBounds.y1+(clientArea.y1-parentBounds.y1); - arguments.x=x; - arguments.y=y; + static vint SetProperty(DocumentModel* model, Renderer* renderer, Ptr cache, Ptr run, vint selectionBegin, vint selectionEnd) + { + SetPropertiesVisitor visitor(model, renderer, cache, selectionBegin, selectionEnd); + run->Accept(&visitor); + return visitor.length; } - composition=parent; - } + }; } + using namespace visitors; - void GuiGraphicsHost::OnMouseInput(const NativeWindowMouseInfo& info, GuiMouseEvent GuiGraphicsEventReceiver::* eventReceiverEvent) +/*********************************************************************** +GuiDocumentElement::GuiDocumentElementRenderer +***********************************************************************/ + + Size GuiDocumentElement::GuiDocumentElementRenderer::OnRenderInlineObject(vint callbackId, Rect location) { - GuiGraphicsComposition* composition = 0; - if (mouseCaptureComposition) + if (element->callback) { - composition = mouseCaptureComposition; + auto cache = paragraphCaches[renderingParagraph]; + auto relativeLocation = Rect(Point(location.x1 + renderingParagraphOffset.x, location.y1 + renderingParagraphOffset.y), location.GetSize()); + auto eo = cache->embeddedObjects[callbackId]; + auto size = element->callback->OnRenderEmbeddedObject(eo->name, relativeLocation); + eo->resized = eo->size != size; + eo->size = size; + return eo->size; } else { - auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); - composition = windowComposition->FindComposition(point, true); - } - if (composition) - { - Rect bounds = composition->GetGlobalBounds(); - Point point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); - GuiMouseEventArgs arguments; - arguments.ctrl = info.ctrl; - arguments.shift = info.shift; - arguments.left = info.left; - arguments.middle = info.middle; - arguments.right = info.right; - arguments.wheel = info.wheel; - arguments.nonClient = info.nonClient; - arguments.x = point.x - bounds.x1; - arguments.y = point.y - bounds.y1; - RaiseMouseEvent(arguments, composition, eventReceiverEvent); + return Size(); } } - void GuiGraphicsHost::RecreateRenderTarget() + void GuiDocumentElement::GuiDocumentElementRenderer::InitializeInternal() { - windowComposition->UpdateRelatedHostRecord(nullptr); - GetGuiGraphicsResourceManager()->RecreateRenderTarget(hostRecord.nativeWindow); - RefreshRelatedHostRecord(hostRecord.nativeWindow); } - INativeWindowListener::HitTestResult GuiGraphicsHost::HitTest(NativePoint location) + void GuiDocumentElement::GuiDocumentElementRenderer::FinalizeInternal() { - NativeRect bounds = hostRecord.nativeWindow->GetBounds(); - NativeRect clientBounds = hostRecord.nativeWindow->GetClientBoundsInScreen(); - NativePoint clientLocation(location.x + bounds.x1 - clientBounds.x1, location.y + bounds.y1 - clientBounds.y1); - auto point = hostRecord.nativeWindow->Convert(clientLocation); - GuiGraphicsComposition* hitComposition = windowComposition->FindComposition(point, true); - while (hitComposition) + } + + void GuiDocumentElement::GuiDocumentElementRenderer::RenderTargetChangedInternal(IGuiGraphicsRenderTarget* oldRenderTarget, IGuiGraphicsRenderTarget* newRenderTarget) + { + for(vint i=0;iGetAssociatedHitTestResult(); - if (result == INativeWindowListener::NoDecision) - { - hitComposition = hitComposition->GetParent(); - } - else + ParagraphCache* cache=paragraphCaches[i].Obj(); + if(cache) { - return result; + cache->graphicsParagraph=0; } } - return INativeWindowListener::NoDecision; } - void GuiGraphicsHost::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) + Ptr GuiDocumentElement::GuiDocumentElementRenderer::EnsureAndGetCache(vint paragraphIndex, bool createParagraph) { - NativeRect oldBounds = hostRecord.nativeWindow->GetBounds(); - minSize = windowComposition->GetPreferredBounds().GetSize(); - NativeSize minWindowSize = hostRecord.nativeWindow->Convert(minSize) + (oldBounds.GetSize() - hostRecord.nativeWindow->GetClientSize()); - if (bounds.Width() < minWindowSize.x) - { - if (fixSizeOnly) - { - if (bounds.Width() < minWindowSize.x) - { - bounds.x2 = bounds.x1 + minWindowSize.x; - } - } - else if (oldBounds.x1 != bounds.x1) - { - bounds.x1 = oldBounds.x2 - minWindowSize.x; - } - else if (oldBounds.x2 != bounds.x2) - { - bounds.x2 = oldBounds.x1 + minWindowSize.x; - } + if(paragraphIndex<0 || paragraphIndex>=paragraphCaches.Count()) return 0; + Ptr paragraph=element->document->paragraphs[paragraphIndex]; + Ptr cache=paragraphCaches[paragraphIndex]; + if(!cache) + { + cache=Ptr(new ParagraphCache); + cache->fullText=paragraph->GetText(false); + paragraphCaches[paragraphIndex]=cache; } - if (bounds.Height() < minWindowSize.y) + + if(createParagraph) { - if (fixSizeOnly) + if(!cache->graphicsParagraph) { - if (bounds.Height() < minWindowSize.y) - { - bounds.y2 = bounds.y1 + minWindowSize.y; - } + cache->graphicsParagraph=layoutProvider->CreateParagraph(cache->fullText, renderTarget, this); + cache->graphicsParagraph->SetParagraphAlignment(paragraph->alignment ? paragraph->alignment.Value() : Alignment::Left); + SetPropertiesVisitor::SetProperty(element->document.Obj(), this, cache, paragraph, cache->selectionBegin, cache->selectionEnd); } - else if (oldBounds.y1 != bounds.y1) + if(cache->graphicsParagraph->GetMaxWidth()!=lastMaxWidth) { - bounds.y1 = oldBounds.y2 - minWindowSize.y; + cache->graphicsParagraph->SetMaxWidth(lastMaxWidth); } - else if (oldBounds.y2 != bounds.y2) + + vint paragraphHeight=paragraphHeights[paragraphIndex]; + vint height=cache->graphicsParagraph->GetHeight(); + if(paragraphHeight!=height) { - bounds.y2 = oldBounds.y1 + minWindowSize.y; + cachedTotalHeight+=height-paragraphHeight; + paragraphHeight=height; + paragraphHeights[paragraphIndex]=paragraphHeight; + minSize=Size(0, cachedTotalHeight); } } + + return cache; } - void GuiGraphicsHost::Moved() + bool GuiDocumentElement::GuiDocumentElementRenderer::GetParagraphIndexFromPoint(Point point, vint& top, vint& index) { - NativeSize size = hostRecord.nativeWindow->GetClientSize(); - if (previousClientSize != size) + vint y=0; + for(vint i=0;iGetPreferredBounds().GetSize(); - needRender = true; + vint paragraphHeight=paragraphHeights[i]; + vint nextY=y+paragraphHeight+paragraphDistance; + top=y; + index=i; + + if(nextY<=point.y) + { + y=nextY; + continue; + } + else + { + break; + } } + return true; } - void GuiGraphicsHost::DpiChanged() + GuiDocumentElement::GuiDocumentElementRenderer::GuiDocumentElementRenderer() + :paragraphDistance(0) + ,lastMaxWidth(-1) + ,cachedTotalHeight(0) + ,layoutProvider(GetGuiGraphicsResourceManager()->GetLayoutProvider()) + ,lastCaret(-1, -1) + ,lastCaretFrontSide(false) { - RecreateRenderTarget(); - needRender = true; } - void GuiGraphicsHost::Paint() + void GuiDocumentElement::GuiDocumentElementRenderer::Render(Rect bounds) { - if (!supressPaint) + if (element->callback) { - needRender = true; + element->callback->OnStartRender(); } - } - - void GuiGraphicsHost::LeftButtonDown(const NativeWindowMouseInfo& info) - { - altActionManager->CloseAltHost(); - MouseCapture(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::leftButtonDown); - } - - void GuiGraphicsHost::LeftButtonUp(const NativeWindowMouseInfo& info) - { - OnMouseInput(info, &GuiGraphicsEventReceiver::leftButtonUp); - MouseUncapture(info); - } - - void GuiGraphicsHost::LeftButtonDoubleClick(const NativeWindowMouseInfo& info) - { - LeftButtonDown(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::leftButtonDoubleClick); - } - - void GuiGraphicsHost::RightButtonDown(const NativeWindowMouseInfo& info) - { - altActionManager->CloseAltHost(); - MouseCapture(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::rightButtonDown); - } + renderTarget->PushClipper(bounds); + if(!renderTarget->IsClipperCoverWholeTarget()) + { + vint maxWidth=bounds.Width(); + Rect clipper=renderTarget->GetClipper(); + vint cx=bounds.Left(); + vint cy=bounds.Top(); + vint y1=clipper.Top()-bounds.Top(); + vint y2=y1+clipper.Height(); + vint y=0; - void GuiGraphicsHost::RightButtonUp(const NativeWindowMouseInfo& info) - { - OnMouseInput(info, &GuiGraphicsEventReceiver::rightButtonUp); - MouseUncapture(info); - } + lastMaxWidth=maxWidth; - void GuiGraphicsHost::RightButtonDoubleClick(const NativeWindowMouseInfo& info) - { - RightButtonDown(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::rightButtonDoubleClick); - } + for(vint i=0;i=y2) + { + break; + } + else + { + Ptr paragraph=element->document->paragraphs[i]; + Ptr cache=paragraphCaches[i]; + bool created=cache && cache->graphicsParagraph; + cache=EnsureAndGetCache(i, true); + if(!created && i==lastCaret.row && element->caretVisible) + { + cache->graphicsParagraph->OpenCaret(lastCaret.column, lastCaretColor, lastCaretFrontSide); + } - void GuiGraphicsHost::MiddleButtonDown(const NativeWindowMouseInfo& info) - { - altActionManager->CloseAltHost(); - MouseCapture(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::middleButtonDown); - } + paragraphHeight=cache->graphicsParagraph->GetHeight(); - void GuiGraphicsHost::MiddleButtonUp(const NativeWindowMouseInfo& info) - { - OnMouseInput(info, &GuiGraphicsEventReceiver::middleButtonUp); - MouseUncapture(info); - } + renderingParagraph = i; + renderingParagraphOffset = Point(cx - bounds.x1, cy + y - bounds.y1); + cache->graphicsParagraph->Render(Rect(Point(cx, cy+y), Size(maxWidth, paragraphHeight))); + renderingParagraph = -1; - void GuiGraphicsHost::MiddleButtonDoubleClick(const NativeWindowMouseInfo& info) - { - MiddleButtonDown(info); - OnMouseInput(info, &GuiGraphicsEventReceiver::middleButtonDoubleClick); - } + bool resized = false; + for (vint j = 0; j < cache->embeddedObjects.Count(); j++) + { + auto eo = cache->embeddedObjects.Values()[j]; + if (eo->resized) + { + eo->resized = false; + resized = true; + } + } - void GuiGraphicsHost::HorizontalWheel(const NativeWindowMouseInfo& info) - { - OnMouseInput(info, &GuiGraphicsEventReceiver::horizontalWheel); - } + if (resized) + { + cache->graphicsParagraph = 0; + } + } - void GuiGraphicsHost::VerticalWheel(const NativeWindowMouseInfo& info) - { - OnMouseInput(info, &GuiGraphicsEventReceiver::verticalWheel); + y+=paragraphHeight+paragraphDistance; + } + } + renderTarget->PopClipper(); + if (element->callback) + { + element->callback->OnFinishRender(); + } } - void GuiGraphicsHost::MouseMoving(const NativeWindowMouseInfo& info) + void GuiDocumentElement::GuiDocumentElementRenderer::OnElementStateChanged() { - CompositionList newCompositions; + if (element->document && element->document->paragraphs.Count() > 0) { - auto point = hostRecord.nativeWindow->Convert(NativePoint(info.x, info.y)); - GuiGraphicsComposition* composition = windowComposition->FindComposition(point, true); - while (composition) - { - newCompositions.Insert(0, composition); - composition = composition->GetParent(); - } - } + vint defaultSize = GetCurrentController()->ResourceService()->GetDefaultFont().size; + paragraphDistance = defaultSize; + vint defaultHeight = defaultSize; - vint firstDifferentIndex = mouseEnterCompositions.Count(); - for (vint i = 0; i < mouseEnterCompositions.Count(); i++) - { - if (i == newCompositions.Count()) - { - firstDifferentIndex = newCompositions.Count(); - break; - } - if (mouseEnterCompositions[i] != newCompositions[i]) + paragraphCaches.Resize(element->document->paragraphs.Count()); + paragraphHeights.Resize(element->document->paragraphs.Count()); + + for (vint i = 0; i < paragraphCaches.Count(); i++) { - firstDifferentIndex = i; - break; + paragraphCaches[i] = 0; } - } - - for (vint i = mouseEnterCompositions.Count() - 1; i >= firstDifferentIndex; i--) - { - GuiGraphicsComposition* composition = mouseEnterCompositions[i]; - if (composition->HasEventReceiver()) + for (vint i = 0; i < paragraphHeights.Count(); i++) { - composition->GetEventReceiver()->mouseLeave.Execute(GuiEventArgs(composition)); + paragraphHeights[i] = defaultHeight; } - } - CopyFrom(mouseEnterCompositions, newCompositions); - for (vint i = firstDifferentIndex; i < mouseEnterCompositions.Count(); i++) - { - GuiGraphicsComposition* composition = mouseEnterCompositions[i]; - if (composition->HasEventReceiver()) + cachedTotalHeight = paragraphHeights.Count() * (defaultHeight + paragraphDistance); + if (paragraphHeights.Count()>0) { - composition->GetEventReceiver()->mouseEnter.Execute(GuiEventArgs(composition)); + cachedTotalHeight -= paragraphDistance; } - } - - INativeCursor* cursor = 0; - if (newCompositions.Count() > 0) - { - cursor = newCompositions[newCompositions.Count() - 1]->GetRelatedCursor(); - } - if (cursor) - { - hostRecord.nativeWindow->SetWindowCursor(cursor); + minSize = Size(0, cachedTotalHeight); } else { - hostRecord.nativeWindow->SetWindowCursor(GetCurrentController()->ResourceService()->GetDefaultSystemCursor()); + paragraphCaches.Resize(0); + paragraphHeights.Resize(0); + cachedTotalHeight = 0; + minSize = Size(0, 0); } - OnMouseInput(info, &GuiGraphicsEventReceiver::mouseMove); - } - - void GuiGraphicsHost::MouseEntered() - { + nameCallbackIdMap.Clear(); + freeCallbackIds.Clear(); + usedCallbackIds = 0; } - void GuiGraphicsHost::MouseLeaved() + void GuiDocumentElement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) { - for(vint i=mouseEnterCompositions.Count()-1;i>=0;i--) + if (0 <= index && index < paragraphCaches.Count() && 0 <= oldCount && index + oldCount <= paragraphCaches.Count() && 0 <= newCount) { - GuiGraphicsComposition* composition=mouseEnterCompositions[i]; - if(composition->HasEventReceiver()) - { - composition->GetEventReceiver()->mouseLeave.Execute(GuiEventArgs(composition)); - } - } - mouseEnterCompositions.Clear(); - } - - void GuiGraphicsHost::KeyDown(const NativeWindowKeyInfo& info) - { - if (altActionManager->KeyDown(info)) { return; } - if (tabActionManager->KeyDown(info, focusedComposition)) { return; } - if(shortcutKeyManager && shortcutKeyManager->Execute(info)) { return; } + vint paragraphCount = element->document->paragraphs.Count(); + CHECK_ERROR(updatedText || oldCount == newCount, L"GuiDocumentlement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint, vint, vint, bool)#Illegal values of oldCount and newCount."); + CHECK_ERROR(paragraphCount - paragraphCaches.Count() == newCount - oldCount, L"GuiDocumentElement::GuiDocumentElementRenderer::NotifyParagraphUpdated(vint, vint, vint, bool)#Illegal values of oldCount and newCount."); - if (focusedComposition && focusedComposition->HasEventReceiver()) - { - OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::keyDown); - } - } + ParagraphCacheArray oldCaches; + CopyFrom(oldCaches, paragraphCaches); + paragraphCaches.Resize(paragraphCount); - void GuiGraphicsHost::KeyUp(const NativeWindowKeyInfo& info) - { - if (altActionManager->KeyUp(info)) { return; } + ParagraphHeightArray oldHeights; + CopyFrom(oldHeights, paragraphHeights); + paragraphHeights.Resize(paragraphCount); - if(focusedComposition && focusedComposition->HasEventReceiver()) - { - OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::keyUp); - } - } + vint defaultHeight = GetCurrentController()->ResourceService()->GetDefaultFont().size; + cachedTotalHeight = 0; - void GuiGraphicsHost::SysKeyDown(const NativeWindowKeyInfo& info) - { - if (altActionManager->SysKeyDown(info)) { return; } + for (vint i = 0; i < paragraphCount; i++) + { + if (i < index) + { + paragraphCaches[i] = oldCaches[i]; + paragraphHeights[i] = oldHeights[i]; + } + else if (i < index + newCount) + { + paragraphCaches[i] = 0; + paragraphHeights[i] = defaultHeight; + if (!updatedText && i < index + oldCount) + { + auto cache = oldCaches[i]; + if(cache) + { + cache->graphicsParagraph = 0; + } + paragraphCaches[i] = cache; + paragraphHeights[i] = oldHeights[i]; + } + } + else + { + paragraphCaches[i] = oldCaches[i - (newCount - oldCount)]; + paragraphHeights[i] = oldHeights[i - (newCount - oldCount)]; + } + cachedTotalHeight += paragraphHeights[i] + paragraphDistance; + } + if (paragraphCount > 0) + { + cachedTotalHeight -= paragraphDistance; + } - if(focusedComposition && focusedComposition->HasEventReceiver()) - { - OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::systemKeyDown); + if (updatedText) + { + vint count = oldCount < newCount ? oldCount : newCount; + for (vint i = 0; i < count; i++) + { + if (auto cache = oldCaches[index + i]) + { + for (vint j = 0; j < cache->embeddedObjects.Count(); j++) + { + auto id = cache->embeddedObjects.Keys()[j]; + auto name = cache->embeddedObjects.Values()[j]->name; + nameCallbackIdMap.Remove(name); + freeCallbackIds.Add(id); + } + } + } + } } } - void GuiGraphicsHost::SysKeyUp(const NativeWindowKeyInfo& info) + Ptr GuiDocumentElement::GuiDocumentElementRenderer::GetHyperlinkFromPoint(Point point) { - if (altActionManager->SysKeyUp(info)) { return; } - - if (!info.ctrl && !info.shift && info.code == VKEY::KEY_MENU && hostRecord.nativeWindow) + if (!renderTarget) return nullptr; + vint top=0; + vint index=-1; + if(GetParagraphIndexFromPoint(point, top, index)) { - if (hostRecord.nativeWindow) + Ptr cache=EnsureAndGetCache(index, true); + Point paragraphPoint(point.x, point.y-top); + + vint start=-1; + vint length=0; + if(cache->graphicsParagraph->GetInlineObjectFromPoint(paragraphPoint, start, length)) { - hostRecord.nativeWindow->SupressAlt(); + return element->document->GetHyperlink(index, start, start+length); } - } - if (focusedComposition && focusedComposition->HasEventReceiver()) - { - OnKeyInput(info, focusedComposition, &GuiGraphicsEventReceiver::systemKeyUp); + vint caret=cache->graphicsParagraph->GetCaretFromPoint(paragraphPoint); + return element->document->GetHyperlink(index, caret, caret); } + return nullptr; } - void GuiGraphicsHost::Char(const NativeWindowCharInfo& info) + void GuiDocumentElement::GuiDocumentElementRenderer::OpenCaret(TextPos caret, Color color, bool frontSide) { - if (altActionManager->Char(info)) { return; } - if (tabActionManager->Char(info)) { return; } + CloseCaret(caret); + lastCaret=caret; + lastCaretColor=color; + lastCaretFrontSide=frontSide; - if(focusedComposition && focusedComposition->HasEventReceiver()) + Ptr cache=paragraphCaches[lastCaret.row]; + if(cache && cache->graphicsParagraph) { - OnCharInput(info, focusedComposition, &GuiGraphicsEventReceiver::charInput); + cache->graphicsParagraph->OpenCaret(lastCaret.column, lastCaretColor, lastCaretFrontSide); } } - void GuiGraphicsHost::GlobalTimer() + void GuiDocumentElement::GuiDocumentElementRenderer::CloseCaret(TextPos caret) { - timerManager.Play(); - - DateTime now=DateTime::UtcTime(); - if(now.totalMilliseconds-lastCaretTime>=CaretInterval) + if(lastCaret!=TextPos(-1, -1)) { - lastCaretTime=now.totalMilliseconds; - if(focusedComposition && focusedComposition->HasEventReceiver()) + if(0<=lastCaret.row && lastCaret.rowGetEventReceiver()->caretNotify.Execute(GuiEventArgs(focusedComposition)); + Ptr cache=paragraphCaches[lastCaret.row]; + if(cache && cache->graphicsParagraph) + { + cache->graphicsParagraph->CloseCaret(); + } } } - - Render(false); - } - - GuiGraphicsHost::GuiGraphicsHost(controls::GuiControlHost* _controlHost, GuiGraphicsComposition* boundsComposition) - :controlHost(_controlHost) - { - altActionManager = new GuiAltActionManager(controlHost); - tabActionManager = new GuiTabActionManager(controlHost); - hostRecord.host = this; - windowComposition=new GuiWindowComposition; - windowComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); - windowComposition->AddChild(boundsComposition); - RefreshRelatedHostRecord(nullptr); + lastCaret=caret; } - GuiGraphicsHost::~GuiGraphicsHost() + void GuiDocumentElement::GuiDocumentElementRenderer::SetSelection(TextPos begin, TextPos end) { - windowComposition->RemoveChild(windowComposition->Children()[0]); - NotifyFinalizeInstance(windowComposition); - - delete altActionManager; - delete tabActionManager; - if (shortcutKeyManager) + if(begin>end) { - delete shortcutKeyManager; - shortcutKeyManager = nullptr; + TextPos t=begin; + begin=end; + end=t; + } + if(begin==end) + { + begin=TextPos(-1, -1); + end=TextPos(-1, -1); } - delete windowComposition; - } - - INativeWindow* GuiGraphicsHost::GetNativeWindow() - { - return hostRecord.nativeWindow; - } - - void GuiGraphicsHost::SetNativeWindow(INativeWindow* _nativeWindow) - { - if (hostRecord.nativeWindow != _nativeWindow) + if (!renderTarget) return; + for(vint i=0;iCallbackService()->UninstallListener(this); - hostRecord.nativeWindow->UninstallListener(this); - } + Ptr cache=EnsureAndGetCache(i, false); + vint newBegin=i==begin.row?begin.column:0; + vint newEnd=i==end.row?end.column:cache->fullText.Length(); - if (_nativeWindow) + if(cache->selectionBegin!=newBegin || cache->selectionEnd!=newEnd) + { + cache->selectionBegin=newBegin; + cache->selectionEnd=newEnd; + NotifyParagraphUpdated(i, 1, 1, false); + } + } + else { - _nativeWindow->InstallListener(this); - GetCurrentController()->CallbackService()->InstallListener(this); - previousClientSize = _nativeWindow->GetClientSize(); - minSize = windowComposition->GetPreferredBounds().GetSize(); - _nativeWindow->SetCaretPoint(_nativeWindow->Convert(caretPoint)); - needRender = true; + Ptr cache=paragraphCaches[i]; + if(cache) + { + if(cache->selectionBegin!=-1 || cache->selectionEnd!=-1) + { + cache->selectionBegin=-1; + cache->selectionEnd=-1; + NotifyParagraphUpdated(i, 1, 1, false); + } + } } - - RefreshRelatedHostRecord(_nativeWindow); } } - GuiGraphicsComposition* GuiGraphicsHost::GetMainComposition() - { - return windowComposition; - } - - void GuiGraphicsHost::Render(bool forceUpdate) + TextPos GuiDocumentElement::GuiDocumentElementRenderer::CalculateCaret(TextPos comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) { - if (!forceUpdate && !needRender) - { - return; - } - needRender = false; - - if(hostRecord.nativeWindow && hostRecord.nativeWindow->IsVisible()) + if (!renderTarget) return comparingCaret; + Ptr cache=EnsureAndGetCache(comparingCaret.row, true); + if(cache) { - supressPaint = true; - hostRecord.renderTarget->StartRendering(); - windowComposition->Render(Size()); - auto result = hostRecord.renderTarget->StopRendering(); - hostRecord.nativeWindow->RedrawContent(); - supressPaint = false; - - switch (result) + switch(position) { - case RenderTargetFailure::ResizeWhileRendering: + case IGuiGraphicsParagraph::CaretFirst: { - GetGuiGraphicsResourceManager()->ResizeRenderTarget(hostRecord.nativeWindow); - needRender = true; - } - break; - case RenderTargetFailure::LostDevice: + preferFrontSide=false; + vint caret=cache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretFirst, preferFrontSide); + return TextPos(comparingCaret.row, caret); + } + case IGuiGraphicsParagraph::CaretLast: { - RecreateRenderTarget(); - needRender = true; + preferFrontSide=true; + vint caret=cache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretLast, preferFrontSide); + return TextPos(comparingCaret.row, caret); } - break; - default: + case IGuiGraphicsParagraph::CaretLineFirst: { - supressPaint = true; - auto bounds = windowComposition->GetBounds(); - auto preferred = windowComposition->GetPreferredBounds(); - auto width = bounds.Width() > preferred.Width() ? bounds.Width() : preferred.Width(); - auto height = bounds.Height() > preferred.Height() ? bounds.Height() : preferred.Height(); - controlHost->UpdateClientSizeAfterRendering(preferred.GetSize(), Size(width, height)); - supressPaint = false; + preferFrontSide=false; + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretLineFirst, preferFrontSide); + return TextPos(comparingCaret.row, caret); } - } - } - - if (!needRender) - { - { - ProcList procs; - CopyFrom(procs, afterRenderProcs); - afterRenderProcs.Clear(); - for (vint i = 0; i < procs.Count(); i++) + case IGuiGraphicsParagraph::CaretLineLast: { - procs[i](); + preferFrontSide=true; + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretLineLast, preferFrontSide); + return TextPos(comparingCaret.row, caret); } - } - { - ProcMap procs; - CopyFrom(procs, afterRenderKeyedProcs); - afterRenderKeyedProcs.Clear(); - for (vint i = 0; i < procs.Count(); i++) + case IGuiGraphicsParagraph::CaretMoveUp: { - procs.Values()[i](); + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveUp, preferFrontSide); + if(caret==comparingCaret.column && comparingCaret.row>0) + { + Rect caretBounds=cache->graphicsParagraph->GetCaretBounds(comparingCaret.column, preferFrontSide); + Ptr anotherCache=EnsureAndGetCache(comparingCaret.row-1, true); + vint height=anotherCache->graphicsParagraph->GetHeight(); + caret=anotherCache->graphicsParagraph->GetCaretFromPoint(Point(caretBounds.x1, height)); + return TextPos(comparingCaret.row-1, caret); + } + else + { + return TextPos(comparingCaret.row, caret); + } + } + case IGuiGraphicsParagraph::CaretMoveDown: + { + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveDown, preferFrontSide); + if(caret==comparingCaret.column && comparingCaret.rowgraphicsParagraph->GetCaretBounds(comparingCaret.column, preferFrontSide); + Ptr anotherCache=EnsureAndGetCache(comparingCaret.row+1, true); + caret=anotherCache->graphicsParagraph->GetCaretFromPoint(Point(caretBounds.x1, 0)); + return TextPos(comparingCaret.row+1, caret); + } + else + { + return TextPos(comparingCaret.row, caret); + } + } + case IGuiGraphicsParagraph::CaretMoveLeft: + { + preferFrontSide=false; + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveLeft, preferFrontSide); + if(caret==comparingCaret.column && comparingCaret.row>0) + { + Ptr anotherCache=EnsureAndGetCache(comparingCaret.row-1, true); + caret=anotherCache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretLast, preferFrontSide); + return TextPos(comparingCaret.row-1, caret); + } + else + { + return TextPos(comparingCaret.row, caret); + } + } + case IGuiGraphicsParagraph::CaretMoveRight: + { + preferFrontSide=true; + vint caret=cache->graphicsParagraph->GetCaret(comparingCaret.column, IGuiGraphicsParagraph::CaretMoveRight, preferFrontSide); + if(caret==comparingCaret.column && comparingCaret.row anotherCache=EnsureAndGetCache(comparingCaret.row+1, true); + caret=anotherCache->graphicsParagraph->GetCaret(0, IGuiGraphicsParagraph::CaretFirst, preferFrontSide); + return TextPos(comparingCaret.row+1, caret); + } + else + { + return TextPos(comparingCaret.row, caret); + } } } } + return comparingCaret; } - void GuiGraphicsHost::RequestRender() + TextPos GuiDocumentElement::GuiDocumentElementRenderer::CalculateCaretFromPoint(Point point) { - needRender = true; + if (!renderTarget) return TextPos(-1, -1); + vint top=0; + vint index=-1; + if(GetParagraphIndexFromPoint(point, top, index)) + { + Ptr cache=EnsureAndGetCache(index, true); + Point paragraphPoint(point.x, point.y-top); + vint caret=cache->graphicsParagraph->GetCaretFromPoint(paragraphPoint); + return TextPos(index, caret); + } + return TextPos(-1, -1); } - void GuiGraphicsHost::InvokeAfterRendering(const Func& proc, ProcKey key) + Rect GuiDocumentElement::GuiDocumentElementRenderer::GetCaretBounds(TextPos caret, bool frontSide) { - if (key.key == nullptr) - { - afterRenderProcs.Add(proc); - } - else + if (!renderTarget) return Rect(); + Ptr cache=EnsureAndGetCache(caret.row, true); + if(cache) { - afterRenderKeyedProcs.Set(key, proc); + Rect bounds=cache->graphicsParagraph->GetCaretBounds(caret.column, frontSide); + if(bounds!=Rect()) + { + vint y=0; + for(vint i=0;iInvalidateTabOrderCache(); + auto elementRenderer = renderer.Cast(); + if (elementRenderer) + { + elementRenderer->SetSelection(caretBegin, caretEnd); + if (caretVisible) + { + elementRenderer->OpenCaret(caretEnd, caretColor, caretFrontSide); + } + else + { + elementRenderer->CloseCaret(caretEnd); + } + InvokeOnCompositionStateChanged(); + } } - IGuiShortcutKeyManager* GuiGraphicsHost::GetShortcutKeyManager() + GuiDocumentElement::GuiDocumentElement() + :caretVisible(false) + ,caretFrontSide(false) { - return shortcutKeyManager; } - void GuiGraphicsHost::SetShortcutKeyManager(IGuiShortcutKeyManager* value) + GuiDocumentElement::ICallback* GuiDocumentElement::GetCallback() { - shortcutKeyManager=value; + return callback; } - bool GuiGraphicsHost::SetFocus(GuiGraphicsComposition* composition) + void GuiDocumentElement::SetCallback(ICallback* value) { - if(!composition || composition->GetRelatedGraphicsHost()!=this) - { - return false; - } - if(focusedComposition && focusedComposition->HasEventReceiver()) - { - GuiEventArgs arguments; - arguments.compositionSource=focusedComposition; - arguments.eventSource=focusedComposition; - focusedComposition->GetEventReceiver()->lostFocus.Execute(arguments); - } - focusedComposition=composition; - SetCaretPoint(Point(0, 0)); - if(focusedComposition && focusedComposition->HasEventReceiver()) - { - GuiEventArgs arguments; - arguments.compositionSource=focusedComposition; - arguments.eventSource=focusedComposition; - focusedComposition->GetEventReceiver()->gotFocus.Execute(arguments); - } - return true; + callback = value; } - GuiGraphicsComposition* GuiGraphicsHost::GetFocusedComposition() + Ptr GuiDocumentElement::GetDocument() { - return focusedComposition; + return document; } - Point GuiGraphicsHost::GetCaretPoint() + void GuiDocumentElement::SetDocument(Ptr value) { - return caretPoint; + document=value; + InvokeOnElementStateChanged(); + SetCaret(TextPos(), TextPos(), false); } - void GuiGraphicsHost::SetCaretPoint(Point value, GuiGraphicsComposition* referenceComposition) + TextPos GuiDocumentElement::GetCaretBegin() { - if (referenceComposition) - { - Rect bounds = referenceComposition->GetGlobalBounds(); - value.x += bounds.x1; - value.y += bounds.y1; - } - caretPoint = value; - if (hostRecord.nativeWindow) - { - hostRecord.nativeWindow->SetCaretPoint(hostRecord.nativeWindow->Convert(caretPoint)); - } + return caretBegin; } - GuiGraphicsTimerManager* GuiGraphicsHost::GetTimerManager() + TextPos GuiDocumentElement::GetCaretEnd() { - return &timerManager; + return caretEnd; } - void GuiGraphicsHost::DisconnectComposition(GuiGraphicsComposition* composition) + bool GuiDocumentElement::IsCaretEndPreferFrontSide() { - DisconnectCompositionInternal(composition); + return caretFrontSide; } - } - } -} - -/*********************************************************************** -.\GRAPHICSHOST\GUIGRAPHICSHOST_ALT.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - namespace compositions - { - using namespace collections; - using namespace controls; - using namespace theme; - - const wchar_t* const IGuiAltAction::Identifier = L"vl::presentation::compositions::IGuiAltAction"; - const wchar_t* const IGuiAltActionContainer::Identifier = L"vl::presentation::compositions::IGuiAltActionContainer"; - const wchar_t* const IGuiAltActionHost::Identifier = L"vl::presentation::compositions::IGuiAltActionHost"; - -/*********************************************************************** -IGuiAltAction -***********************************************************************/ - bool IGuiAltAction::IsLegalAlt(const WString& alt) + void GuiDocumentElement::SetCaret(TextPos begin, TextPos end, bool frontSide) { - for (vint i = 0; i < alt.Length(); i++) + caretBegin=begin; + caretEnd=end; + if(caretBegin& actions) - { - List controls; - controls.Add(control); - vint index = 0; - - while (index < controls.Count()) + else if(caretBegin>caretEnd) { - auto current = controls[index++]; - - if (current != control || includeThisControl) - { - if (auto container = current->QueryTypedService()) - { - vint count = container->GetAltActionCount(); - for (vint i = 0; i < count; i++) - { - auto action = container->GetAltAction(i); - actions.Add(action->GetAlt(), action); - } - continue; - } - else if (auto action = current->QueryTypedService()) - { - if (action->IsAltAvailable()) - { - if (action->IsAltEnabled()) - { - actions.Add(action->GetAlt(), action); - continue; - } - } - } - } - - vint count = current->GetChildrenCount(); - for (vint i = 0; i < count; i++) - { - controls.Add(current->GetChild(i)); - } + caretFrontSide=false; + } + else + { + caretFrontSide=frontSide; } + UpdateCaret(); } -/*********************************************************************** -GuiAltActionHostBase -***********************************************************************/ - - void GuiAltActionHostBase::SetAltComposition(GuiGraphicsComposition* _composition) + bool GuiDocumentElement::GetCaretVisible() { - composition = _composition; + return caretVisible; } - void GuiAltActionHostBase::SetAltControl(controls::GuiControl* _control, bool _includeControl) + void GuiDocumentElement::SetCaretVisible(bool value) { - control = _control; - includeControl = _includeControl; + caretVisible=value; + UpdateCaret(); } - GuiGraphicsComposition* GuiAltActionHostBase::GetAltComposition() + Color GuiDocumentElement::GetCaretColor() { - CHECK_ERROR(composition, L"GuiAltActionHostBase::GetAltComposition()#Need to call SetAltComposition."); - return composition; + return caretColor; } - IGuiAltActionHost* GuiAltActionHostBase::GetPreviousAltHost() + void GuiDocumentElement::SetCaretColor(Color value) { - return previousHost; + caretColor=value; + UpdateCaret(); } - void GuiAltActionHostBase::OnActivatedAltHost(IGuiAltActionHost* _previousHost) + TextPos GuiDocumentElement::CalculateCaret(TextPos comparingCaret, IGuiGraphicsParagraph::CaretRelativePosition position, bool& preferFrontSide) { - previousHost = _previousHost; + if (auto elementRenderer = renderer.Cast()) + { + TextPos caret=elementRenderer->CalculateCaret(comparingCaret, position, preferFrontSide); + return caret.column==-1?comparingCaret:caret; + } + else + { + return comparingCaret; + } } - void GuiAltActionHostBase::OnDeactivatedAltHost() + TextPos GuiDocumentElement::CalculateCaretFromPoint(Point point) { - previousHost = nullptr; + if (auto elementRenderer = renderer.Cast()) + { + return elementRenderer->CalculateCaretFromPoint(point); + } + else + { + return TextPos(0, 0); + } } - void GuiAltActionHostBase::CollectAltActions(collections::Group& actions) + Rect GuiDocumentElement::GetCaretBounds(TextPos caret, bool frontSide) { - CHECK_ERROR(control, L"GuiAltActionHostBase::CollectAltActions(Group&)#Need to call SetAltControl."); - CollectAltActionsFromControl(control, includeControl, actions); + if (auto elementRenderer = renderer.Cast()) + { + return elementRenderer->GetCaretBounds(caret, frontSide); + } + else + { + return Rect(); + } } - -/*********************************************************************** -GuiAltActionManager -***********************************************************************/ - - void GuiAltActionManager::EnterAltHost(IGuiAltActionHost* host) + + void GuiDocumentElement::NotifyParagraphUpdated(vint index, vint oldCount, vint newCount, bool updatedText) { - ClearAltHost(); - - Group actions; - host->CollectAltActions(actions); - if (actions.Count() == 0) + if (auto elementRenderer = renderer.Cast()) { - CloseAltHost(); - return; + elementRenderer->NotifyParagraphUpdated(index, oldCount, newCount, updatedText); + InvokeOnCompositionStateChanged(); } + } - host->OnActivatedAltHost(currentAltHost); - currentAltHost = host; - CreateAltTitles(actions); + void GuiDocumentElement::EditRun(TextPos begin, TextPos end, Ptr model, bool copy) + { + if (auto elementRenderer = renderer.Cast()) + { + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + + vint newRows = document->EditRun(begin, end, model, copy); + if (newRows != -1) + { + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, newRows, true); + } + InvokeOnCompositionStateChanged(); + } } - void GuiAltActionManager::LeaveAltHost() + void GuiDocumentElement::EditText(TextPos begin, TextPos end, bool frontSide, const collections::Array& text) { - if (currentAltHost) + if (auto elementRenderer = renderer.Cast()) { - ClearAltHost(); - auto previousHost = currentAltHost->GetPreviousAltHost(); - currentAltHost->OnDeactivatedAltHost(); - currentAltHost = previousHost; + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } - if (currentAltHost) + vint newRows = document->EditText(begin, end, frontSide, text); + if (newRows != -1) { - Group actions; - currentAltHost->CollectAltActions(actions); - CreateAltTitles(actions); + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, newRows, true); } + InvokeOnCompositionStateChanged(); } } - bool GuiAltActionManager::EnterAltKey(wchar_t key) + void GuiDocumentElement::EditStyle(TextPos begin, TextPos end, Ptr style) { - currentAltPrefix += WString::FromChar(key); - vint index = currentActiveAltActions.Keys().IndexOf(currentAltPrefix); - if (index == -1) + if (auto elementRenderer = renderer.Cast()) { - if (FilterTitles() == 0) + if (begin > end) { - currentAltPrefix = currentAltPrefix.Left(currentAltPrefix.Length() - 1); - FilterTitles(); + TextPos temp = begin; + begin = end; + end = temp; + } + + if (document->EditStyle(begin, end, style)) + { + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); } + InvokeOnCompositionStateChanged(); } - else + } + + void GuiDocumentElement::EditImage(TextPos begin, TextPos end, Ptr image) + { + if (auto elementRenderer = renderer.Cast()) { - auto action = currentActiveAltActions.Values()[index]; - if (action->GetActivatingAltHost()) + if (begin > end) { - EnterAltHost(action->GetActivatingAltHost()); + TextPos temp = begin; + begin = end; + end = temp; } - else + + if (document->EditImage(begin, end, image)) { - CloseAltHost(); + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, 1, true); } - action->OnActiveAlt(); - return true; + InvokeOnCompositionStateChanged(); } - return false; } - void GuiAltActionManager::LeaveAltKey() + void GuiDocumentElement::EditHyperlink(vint paragraphIndex, vint begin, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) { - if (currentAltPrefix.Length() >= 1) + if (auto elementRenderer = renderer.Cast()) { - currentAltPrefix = currentAltPrefix.Left(currentAltPrefix.Length() - 1); + if (begin > end) + { + vint temp = begin; + begin = end; + end = temp; + } + + if (document->EditHyperlink(paragraphIndex, begin, end, reference, normalStyleName, activeStyleName)) + { + elementRenderer->NotifyParagraphUpdated(paragraphIndex, 1, 1, false); + } + InvokeOnCompositionStateChanged(); } - FilterTitles(); } - void GuiAltActionManager::CreateAltTitles(const collections::Group& actions) + void GuiDocumentElement::RemoveHyperlink(vint paragraphIndex, vint begin, vint end) { - if (currentAltHost) + if (auto elementRenderer = renderer.Cast()) { - vint count = actions.Count(); - for (vint i = 0; i < count; i++) + if (begin > end) { - WString key = actions.Keys()[i]; - const auto& values = actions.GetByIndex(i); - vint numberLength = 0; - if (values.Count() == 1 && key.Length() > 0) - { - numberLength = 0; - } - else if (values.Count() <= 10) - { - numberLength = 1; - } - else if (values.Count() <= 100) - { - numberLength = 2; - } - else if (values.Count() <= 1000) - { - numberLength = 3; - } - else - { - continue; - } - - for (auto [action, index] : indexed(values)) - { - WString key = actions.Keys()[i]; - if (numberLength > 0) - { - WString number = itow(index); - while (number.Length() < numberLength) - { - number = L"0" + number; - } - key += number; - } - currentActiveAltActions.Add(key, action); - } + vint temp = begin; + begin = end; + end = temp; } - count = currentActiveAltActions.Count(); - auto window = dynamic_cast(currentAltHost->GetAltComposition()->GetRelatedControlHost()); - for (vint i = 0; i < count; i++) + if (document->RemoveHyperlink(paragraphIndex, begin, end)) { - auto key = currentActiveAltActions.Keys()[i]; - auto composition = currentActiveAltActions.Values()[i]->GetAltComposition(); - - auto label = new GuiLabel(theme::ThemeName::ShortcutKey); - if (auto labelStyle = window->TypedControlTemplateObject(true)->GetShortcutKeyTemplate()) - { - label->SetControlTemplate(labelStyle); - } - label->SetText(key); - composition->AddChild(label->GetBoundsComposition()); - currentActiveAltTitles.Add(key, label); + elementRenderer->NotifyParagraphUpdated(paragraphIndex, 1, 1, false); } - - FilterTitles(); + InvokeOnCompositionStateChanged(); } } - vint GuiAltActionManager::FilterTitles() + void GuiDocumentElement::EditStyleName(TextPos begin, TextPos end, const WString& styleName) { - vint count = currentActiveAltTitles.Count(); - vint visibles = 0; - for (vint i = 0; i < count; i++) + if (auto elementRenderer = renderer.Cast()) { - auto key = currentActiveAltTitles.Keys()[i]; - auto value = currentActiveAltTitles.Values()[i]; - if (key.Length() >= currentAltPrefix.Length() && key.Left(currentAltPrefix.Length()) == currentAltPrefix) + if (begin > end) { - value->SetVisible(true); - if (currentAltPrefix.Length() <= key.Length()) - { - value->SetText( - key - .Insert(currentAltPrefix.Length(), L"[") - .Insert(currentAltPrefix.Length() + 2, L"]") - ); - } - else - { - value->SetText(key); - } - visibles++; + TextPos temp = begin; + begin = end; + end = temp; } - else + + if (document->EditStyleName(begin, end, styleName)) { - value->SetVisible(false); + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); } + InvokeOnCompositionStateChanged(); } - return visibles; } - void GuiAltActionManager::ClearAltHost() + void GuiDocumentElement::RemoveStyleName(TextPos begin, TextPos end) { - for (auto title : currentActiveAltTitles.Values()) + if (auto elementRenderer = renderer.Cast()) { - SafeDeleteControl(title); + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + + if (document->RemoveStyleName(begin, end)) + { + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); + } + InvokeOnCompositionStateChanged(); } - currentActiveAltActions.Clear(); - currentActiveAltTitles.Clear(); - currentAltPrefix = L""; } - void GuiAltActionManager::CloseAltHost() + void GuiDocumentElement::RenameStyle(const WString& oldStyleName, const WString& newStyleName) { - ClearAltHost(); - while (currentAltHost) + if (auto elementRenderer = renderer.Cast()) { - currentAltHost->OnDeactivatedAltHost(); - currentAltHost = currentAltHost->GetPreviousAltHost(); + document->RenameStyle(oldStyleName, newStyleName); } } - GuiAltActionManager::GuiAltActionManager(controls::GuiControlHost* _controlHost) - :controlHost(_controlHost) - { - } - - GuiAltActionManager::~GuiAltActionManager() - { - } - - bool GuiAltActionManager::KeyDown(const NativeWindowKeyInfo& info) + void GuiDocumentElement::ClearStyle(TextPos begin, TextPos end) { - if (!info.ctrl && !info.shift && currentAltHost) + if (auto elementRenderer = renderer.Cast()) { - if (info.code == VKEY::KEY_ESCAPE) - { - LeaveAltHost(); - return true; - } - else if (info.code == VKEY::KEY_BACK) - { - LeaveAltKey(); - } - else if (VKEY::KEY_NUMPAD0 <= info.code && info.code <= VKEY::KEY_NUMPAD9) + if (begin > end) { - if (EnterAltKey((wchar_t)(L'0' + ((vint)info.code - (vint)VKEY::KEY_NUMPAD0)))) - { - supressAltKey = info.code; - return true; - } + TextPos temp = begin; + begin = end; + end = temp; } - else if ((VKEY::KEY_0 <= info.code && info.code <= VKEY::KEY_9) || (VKEY::KEY_A <= info.code && info.code <= VKEY::KEY_Z)) + + if (document->ClearStyle(begin, end)) { - if (EnterAltKey((wchar_t)info.code)) - { - supressAltKey = info.code; - return true; - } + elementRenderer->NotifyParagraphUpdated(begin.row, end.row - begin.row + 1, end.row - begin.row + 1, false); } + InvokeOnCompositionStateChanged(); } + } - if (currentAltHost) + Ptr GuiDocumentElement::SummarizeStyle(TextPos begin, TextPos end) + { + if (auto elementRenderer = renderer.Cast()) { - return true; + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + + return document->SummarizeStyle(begin, end); } - return false; + return nullptr; } - bool GuiAltActionManager::KeyUp(const NativeWindowKeyInfo& info) + Nullable GuiDocumentElement::SummarizeStyleName(TextPos begin, TextPos end) { - if (!info.ctrl && !info.shift && info.code == supressAltKey) + if (auto elementRenderer = renderer.Cast()) { - supressAltKey = VKEY::KEY_UNKNOWN; - return true; + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + + return document->SummarizeStyleName(begin, end); } - return false; + return {}; } - bool GuiAltActionManager::SysKeyDown(const NativeWindowKeyInfo& info) + void GuiDocumentElement::SetParagraphAlignment(TextPos begin, TextPos end, const collections::Array>& alignments) { - if (!info.ctrl && !info.shift && info.code == VKEY::KEY_MENU && !currentAltHost) + if (auto elementRenderer = renderer.Cast()) { - if (auto altHost = controlHost->QueryTypedService()) + vint first = begin.row; + vint last = end.row; + if (first > last) + { + vint temp = first; + first = last; + last = temp; + } + + if (0 <= first && first < document->paragraphs.Count() && 0 <= last && last < document->paragraphs.Count() && last - first + 1 == alignments.Count()) { - if (!altHost->GetPreviousAltHost()) + for (vint i = first; i <= last; i++) { - EnterAltHost(altHost); + document->paragraphs[i]->alignment = alignments[i - first]; } + elementRenderer->NotifyParagraphUpdated(first, alignments.Count(), alignments.Count(), false); } + InvokeOnCompositionStateChanged(); } - - if (currentAltHost) - { - return true; - } - return false; } - bool GuiAltActionManager::SysKeyUp(const NativeWindowKeyInfo& info) + Nullable GuiDocumentElement::SummarizeParagraphAlignment(TextPos begin, TextPos end) { - return false; + if (auto elementRenderer = renderer.Cast()) + { + if (begin > end) + { + TextPos temp = begin; + begin = end; + end = temp; + } + + return document->SummarizeParagraphAlignment(begin, end); + } + return {}; } - bool GuiAltActionManager::Char(const NativeWindowCharInfo& info) + Ptr GuiDocumentElement::GetHyperlinkFromPoint(Point point) { - if (currentAltHost || supressAltKey != VKEY::KEY_UNKNOWN) + if (auto elementRenderer = renderer.Cast()) { - return true; + return elementRenderer->GetHyperlinkFromPoint(point); } - return false; + return nullptr; } } } } /*********************************************************************** -.\GRAPHICSHOST\GUIGRAPHICSHOST_SHORTCUTKEY.CPP +.\GRAPHICSELEMENT\GUIGRAPHICSELEMENT.CPP ***********************************************************************/ namespace vl { namespace presentation { - namespace compositions + namespace elements { + using namespace collections; /*********************************************************************** -GuiShortcutKeyItem +GuiFocusRectangleElement ***********************************************************************/ - GuiShortcutKeyItem::GuiShortcutKeyItem(GuiShortcutKeyManager* _shortcutKeyManager, bool _ctrl, bool _shift, bool _alt, VKEY _key) - :shortcutKeyManager(_shortcutKeyManager) - ,ctrl(_ctrl) - ,shift(_shift) - ,alt(_alt) - ,key(_key) + GuiFocusRectangleElement::GuiFocusRectangleElement() { } - GuiShortcutKeyItem::~GuiShortcutKeyItem() +/*********************************************************************** +GuiSolidBorderElement +***********************************************************************/ + + GuiSolidBorderElement::GuiSolidBorderElement() + :color(0, 0, 0) { } - IGuiShortcutKeyManager* GuiShortcutKeyItem::GetManager() + Color GuiSolidBorderElement::GetColor() { - return shortcutKeyManager; + return color; } - WString GuiShortcutKeyItem::GetName() + void GuiSolidBorderElement::SetColor(Color value) { - WString name; - if(ctrl) name+=L"Ctrl+"; - if(shift) name+=L"Shift+"; - if(alt) name+=L"Alt+"; - name+=GetCurrentController()->InputService()->GetKeyName(key); - return name; + if(color!=value) + { + color=value; + InvokeOnElementStateChanged(); + } } - - bool GuiShortcutKeyItem::CanActivate(const NativeWindowKeyInfo& info) + + ElementShape GuiSolidBorderElement::GetShape() { - return - info.ctrl==ctrl && - info.shift==shift && - info.alt==alt && - info.code==key; + return shape; } - bool GuiShortcutKeyItem::CanActivate(bool _ctrl, bool _shift, bool _alt, VKEY _key) + void GuiSolidBorderElement::SetShape(ElementShape value) { - return - _ctrl==ctrl && - _shift==shift && - _alt==alt && - _key==key; + shape=value; } /*********************************************************************** -GuiShortcutKeyManager +Gui3DBorderElement ***********************************************************************/ - GuiShortcutKeyManager::GuiShortcutKeyManager() + Gui3DBorderElement::Gui3DBorderElement() { } - GuiShortcutKeyManager::~GuiShortcutKeyManager() + Color Gui3DBorderElement::GetColor1() { + return color1; } - vint GuiShortcutKeyManager::GetItemCount() + void Gui3DBorderElement::SetColor1(Color value) { - return shortcutKeyItems.Count(); + SetColors(value, color2); } - IGuiShortcutKeyItem* GuiShortcutKeyManager::GetItem(vint index) + Color Gui3DBorderElement::GetColor2() { - return shortcutKeyItems[index].Obj(); + return color2; } - bool GuiShortcutKeyManager::Execute(const NativeWindowKeyInfo& info) + void Gui3DBorderElement::SetColor2(Color value) { - bool executed=false; - for (auto item : shortcutKeyItems) - { - if(item->CanActivate(info)) - { - GuiEventArgs arguments; - item->Executed.Execute(arguments); - executed=true; - } - } - return executed; + SetColors(color1, value); } - IGuiShortcutKeyItem* GuiShortcutKeyManager::CreateShortcut(bool ctrl, bool shift, bool alt, VKEY key) + void Gui3DBorderElement::SetColors(Color value1, Color value2) { - for (auto item : shortcutKeyItems) + if(color1!=value1 || color2!=value2) { - if(item->CanActivate(ctrl, shift, alt, key)) - { - return item.Obj(); - } + color1=value1; + color2=value2; + InvokeOnElementStateChanged(); } - Ptr item=new GuiShortcutKeyItem(this, ctrl, shift, alt, key); - shortcutKeyItems.Add(item); - return item.Obj(); } - bool GuiShortcutKeyManager::DestroyShortcut(bool ctrl, bool shift, bool alt, VKEY key) +/*********************************************************************** +Gui3DSplitterElement +***********************************************************************/ + + Gui3DSplitterElement::Gui3DSplitterElement() + :direction(Horizontal) { - for (auto item : shortcutKeyItems) - { - if(item->CanActivate(ctrl, shift, alt, key)) - { - shortcutKeyItems.Remove(item.Obj()); - return true; - } - } - return false; } - IGuiShortcutKeyItem* GuiShortcutKeyManager::TryGetShortcut(bool ctrl, bool shift, bool alt, VKEY key) + Color Gui3DSplitterElement::GetColor1() { - for (auto item : shortcutKeyItems) - { - if(item->CanActivate(ctrl, shift, alt, key)) - { - return item.Obj(); - } - } - return 0; + return color1; } - } - } -} - -/*********************************************************************** -.\GRAPHICSHOST\GUIGRAPHICSHOST_TAB.CPP -***********************************************************************/ -namespace vl -{ - namespace presentation - { - namespace compositions - { - using namespace collections; - using namespace controls; + void Gui3DSplitterElement::SetColor1(Color value) + { + SetColors(value, color2); + } - const wchar_t* const IGuiTabAction::Identifier = L"vl::presentation::compositions::IGuiTabAction"; + Color Gui3DSplitterElement::GetColor2() + { + return color2; + } -/*********************************************************************** -GuiTabActionManager -***********************************************************************/ + void Gui3DSplitterElement::SetColor2(Color value) + { + SetColors(color1, value); + } - namespace tab_focus + void Gui3DSplitterElement::SetColors(Color value1, Color value2) { - void CollectControls(GuiControl* current, bool includeCurrent, Group& prioritized) + if(color1!=value1 || color2!=value2) { - if (includeCurrent) - { - auto tabAction = current->QueryTypedService(); - if (tabAction && (tabAction->IsTabAvailable() || tabAction->GetTabPriority() != -1)) - { - vint priority = tabAction->GetTabPriority(); - vuint64_t normalized = priority < 0 ? ~(vuint64_t)0 : (vuint64_t)priority; - prioritized.Add(normalized, current); - return; - } - } - - vint count = current->GetChildrenCount(); - for (vint i = 0; i < count; i++) - { - CollectControls(current->GetChild(i), true, prioritized); - } + color1=value1; + color2=value2; + InvokeOnElementStateChanged(); } + } - void InsertPrioritized(List& controls, vint index, Group& prioritized) - { - vint count = prioritized.Count(); - for (vint i = 0; i < count; i++) - { - auto& values = prioritized.GetByIndex(i); - for (vint j = 0; j < values.Count(); j++) - { - controls.Insert(index++, values[j]); - } - } - } + Gui3DSplitterElement::Direction Gui3DSplitterElement::GetDirection() + { + return direction; } - using namespace tab_focus; - void GuiTabActionManager::BuildControlList() + void Gui3DSplitterElement::SetDirection(Direction value) { - controlsInOrder.Clear(); + if(direction!=value) { - Group prioritized; - CollectControls(controlHost, false, prioritized); - InsertPrioritized(controlsInOrder, 0, prioritized); + direction=value; + InvokeOnElementStateChanged(); } + } - for (vint i = 0; i < controlsInOrder.Count(); i++) - { - Group prioritized; - CollectControls(controlsInOrder[i], false, prioritized); - InsertPrioritized(controlsInOrder, i + 1, prioritized); - } +/*********************************************************************** +GuiSolidBackgroundElement +***********************************************************************/ + + GuiSolidBackgroundElement::GuiSolidBackgroundElement() + :color(255, 255, 255) + { } - controls::GuiControl* GuiTabActionManager::GetNextFocusControl(controls::GuiControl* focusedControl, vint offset) + Color GuiSolidBackgroundElement::GetColor() { - if (!available) + return color; + } + + void GuiSolidBackgroundElement::SetColor(Color value) + { + if(color!=value) { - BuildControlList(); - available = true; + color=value; + InvokeOnElementStateChanged(); } -#define STEP_AND_NORMALIZE(INDEX) (((INDEX) + offset + controlsInOrder.Count()) % controlsInOrder.Count()) - - if (controlsInOrder.Count() == 0) return nullptr; - vint startIndex = controlsInOrder.IndexOf(focusedControl); - startIndex = - startIndex == -1 ? 0 : - STEP_AND_NORMALIZE(startIndex); + } + + ElementShape GuiSolidBackgroundElement::GetShape() + { + return shape; + } - vint index = startIndex; - do - { - auto control = controlsInOrder[index]; - if (auto tabAction = control->QueryTypedService()) - { - if (tabAction->IsTabAvailable() && tabAction->IsTabEnabled()) - { - return control; - } - } + void GuiSolidBackgroundElement::SetShape(ElementShape value) + { + shape=value; + } - index = STEP_AND_NORMALIZE(index); - } while (index != startIndex); +/*********************************************************************** +GuiGradientBackgroundElement +***********************************************************************/ -#undef STEP_AND_NORMALIZE + GuiGradientBackgroundElement::GuiGradientBackgroundElement() + :direction(Horizontal) + { + } - return nullptr; + Color GuiGradientBackgroundElement::GetColor1() + { + return color1; } - GuiTabActionManager::GuiTabActionManager(controls::GuiControlHost* _controlHost) - :controlHost(_controlHost) + void GuiGradientBackgroundElement::SetColor1(Color value) { + SetColors(value, color2); } - GuiTabActionManager::~GuiTabActionManager() + Color GuiGradientBackgroundElement::GetColor2() { + return color2; } - void GuiTabActionManager::InvalidateTabOrderCache() + void GuiGradientBackgroundElement::SetColor2(Color value) { - available = false; - controlsInOrder.Clear(); + SetColors(color1, value); } - bool GuiTabActionManager::KeyDown(const NativeWindowKeyInfo& info, GuiGraphicsComposition* focusedComposition) + void GuiGradientBackgroundElement::SetColors(Color value1, Color value2) { - if (!info.ctrl && !info.alt && info.code == VKEY::KEY_TAB) + if(color1!=value1 || color2!=value2) { - GuiControl* focusedControl = nullptr; - if (focusedComposition) - { - focusedControl = focusedComposition->GetRelatedControl(); - if (focusedControl && focusedControl->GetAcceptTabInput()) - { - return false; - } - } - - if (auto next = GetNextFocusControl(focusedControl, (info.shift ? -1 : 1))) - { - next->SetFocus(); - supressTabOnce = true; - return true; - } + color1=value1; + color2=value2; + InvokeOnElementStateChanged(); } - return false; } - bool GuiTabActionManager::Char(const NativeWindowCharInfo& info) + GuiGradientBackgroundElement::Direction GuiGradientBackgroundElement::GetDirection() { - bool supress = supressTabOnce; - supressTabOnce = false; - return supress && info.code == L'\t'; + return direction; + } + + void GuiGradientBackgroundElement::SetDirection(Direction value) + { + if(direction!=value) + { + direction=value; + InvokeOnElementStateChanged(); + } + } + + ElementShape GuiGradientBackgroundElement::GetShape() + { + return shape; + } + + void GuiGradientBackgroundElement::SetShape(ElementShape value) + { + shape=value; } - } - } -} /*********************************************************************** -.\NATIVEWINDOW\GUINATIVEWINDOW.CPP +GuiInnerShadowElement ***********************************************************************/ -namespace vl -{ - namespace presentation - { + GuiInnerShadowElement::GuiInnerShadowElement() + { + } + + Color GuiInnerShadowElement::GetColor() + { + return color; + } + + void GuiInnerShadowElement::SetColor(Color value) + { + if (color != value) + { + color = value; + InvokeOnElementStateChanged(); + } + } + + vint GuiInnerShadowElement::GetThickness() + { + return thickness; + } + + void GuiInnerShadowElement::SetThickness(vint value) + { + if (thickness != value) + { + thickness = value; + InvokeOnElementStateChanged(); + } + } /*********************************************************************** -INativeWindowListener +GuiSolidLabelElement ***********************************************************************/ - INativeWindowListener::HitTestResult INativeWindowListener::HitTest(NativePoint location) - { - return INativeWindowListener::NoDecision; - } + GuiSolidLabelElement::GuiSolidLabelElement() + :color(0, 0, 0) + ,hAlignment(Alignment::Left) + ,vAlignment(Alignment::Top) + ,wrapLine(false) + ,ellipse(false) + ,multiline(false) + ,wrapLineHeightCalculation(false) + { + fontProperties.fontFamily=L"Lucida Console"; + fontProperties.size=12; + } - void INativeWindowListener::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) - { - } + Color GuiSolidLabelElement::GetColor() + { + return color; + } - void INativeWindowListener::Moved() - { - } + void GuiSolidLabelElement::SetColor(Color value) + { + if(color!=value) + { + color=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::DpiChanged() - { - } + const FontProperties& GuiSolidLabelElement::GetFont() + { + return fontProperties; + } - void INativeWindowListener::Enabled() - { - } + void GuiSolidLabelElement::SetFont(const FontProperties& value) + { + if(fontProperties!=value) + { + fontProperties=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::Disabled() - { - } + const WString& GuiSolidLabelElement::GetText() + { + return text; + } - void INativeWindowListener::GotFocus() - { - } + void GuiSolidLabelElement::SetText(const WString& value) + { + if(text!=value) + { + text=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::LostFocus() - { - } + Alignment GuiSolidLabelElement::GetHorizontalAlignment() + { + return hAlignment; + } - void INativeWindowListener::Activated() - { - } + Alignment GuiSolidLabelElement::GetVerticalAlignment() + { + return vAlignment; + } - void INativeWindowListener::Deactivated() - { - } + void GuiSolidLabelElement::SetHorizontalAlignment(Alignment value) + { + SetAlignments(value, vAlignment); + } - void INativeWindowListener::Opened() - { - } + void GuiSolidLabelElement::SetVerticalAlignment(Alignment value) + { + SetAlignments(hAlignment, value); + } - void INativeWindowListener::Closing(bool& cancel) - { - } + void GuiSolidLabelElement::SetAlignments(Alignment horizontal, Alignment vertical) + { + if(hAlignment!=horizontal || vAlignment!=vertical) + { + hAlignment=horizontal; + vAlignment=vertical; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::Closed() - { - } + bool GuiSolidLabelElement::GetWrapLine() + { + return wrapLine; + } - void INativeWindowListener::Paint() - { - } + void GuiSolidLabelElement::SetWrapLine(bool value) + { + if(wrapLine!=value) + { + wrapLine=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::Destroying() - { - } + bool GuiSolidLabelElement::GetEllipse() + { + return ellipse; + } - void INativeWindowListener::Destroyed() - { - } + void GuiSolidLabelElement::SetEllipse(bool value) + { + if(ellipse!=value) + { + ellipse=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::LeftButtonDown(const NativeWindowMouseInfo& info) - { - } + bool GuiSolidLabelElement::GetMultiline() + { + return multiline; + } - void INativeWindowListener::LeftButtonUp(const NativeWindowMouseInfo& info) - { - } + void GuiSolidLabelElement::SetMultiline(bool value) + { + if(multiline!=value) + { + multiline=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::LeftButtonDoubleClick(const NativeWindowMouseInfo& info) - { - } + bool GuiSolidLabelElement::GetWrapLineHeightCalculation() + { + return wrapLineHeightCalculation; + } - void INativeWindowListener::RightButtonDown(const NativeWindowMouseInfo& info) - { - } + void GuiSolidLabelElement::SetWrapLineHeightCalculation(bool value) + { + if(wrapLineHeightCalculation!=value) + { + wrapLineHeightCalculation=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::RightButtonUp(const NativeWindowMouseInfo& info) - { - } +/*********************************************************************** +GuiImageFrameElement +***********************************************************************/ - void INativeWindowListener::RightButtonDoubleClick(const NativeWindowMouseInfo& info) - { - } + GuiImageFrameElement::GuiImageFrameElement() + :frameIndex(0) + ,hAlignment(Alignment::Left) + ,vAlignment(Alignment::Top) + ,stretch(false) + ,enabled(true) + { + } - void INativeWindowListener::MiddleButtonDown(const NativeWindowMouseInfo& info) - { - } + Ptr GuiImageFrameElement::GetImage() + { + return image; + } - void INativeWindowListener::MiddleButtonUp(const NativeWindowMouseInfo& info) - { - } + vint GuiImageFrameElement::GetFrameIndex() + { + return frameIndex; + } - void INativeWindowListener::MiddleButtonDoubleClick(const NativeWindowMouseInfo& info) - { - } + void GuiImageFrameElement::SetImage(Ptr value) + { + SetImage(value, frameIndex); + } - void INativeWindowListener::HorizontalWheel(const NativeWindowMouseInfo& info) - { - } + void GuiImageFrameElement::SetFrameIndex(vint value) + { + SetImage(image, value); + } - void INativeWindowListener::VerticalWheel(const NativeWindowMouseInfo& info) - { - } + void GuiImageFrameElement::SetImage(Ptr _image, vint _frameIndex) + { + if(image!=_image || frameIndex!=_frameIndex) + { + if(!_image) + { + image=0; + frameIndex=0; + } + else if(0<=_frameIndex && _frameIndex<_image->GetFrameCount()) + { + image=_image; + frameIndex=_frameIndex; + } + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::MouseMoving(const NativeWindowMouseInfo& info) - { - } + Alignment GuiImageFrameElement::GetHorizontalAlignment() + { + return hAlignment; + } - void INativeWindowListener::MouseEntered() - { - } + Alignment GuiImageFrameElement::GetVerticalAlignment() + { + return vAlignment; + } - void INativeWindowListener::MouseLeaved() - { - } + void GuiImageFrameElement::SetHorizontalAlignment(Alignment value) + { + SetAlignments(value, vAlignment); + } - void INativeWindowListener::KeyDown(const NativeWindowKeyInfo& info) - { - } + void GuiImageFrameElement::SetVerticalAlignment(Alignment value) + { + SetAlignments(hAlignment, value); + } - void INativeWindowListener::KeyUp(const NativeWindowKeyInfo& info) - { - } + void GuiImageFrameElement::SetAlignments(Alignment horizontal, Alignment vertical) + { + if(hAlignment!=horizontal || vAlignment!=vertical) + { + hAlignment=horizontal; + vAlignment=vertical; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::SysKeyDown(const NativeWindowKeyInfo& info) - { - } + bool GuiImageFrameElement::GetStretch() + { + return stretch; + } - void INativeWindowListener::SysKeyUp(const NativeWindowKeyInfo& info) - { - } + void GuiImageFrameElement::SetStretch(bool value) + { + if(stretch!=value) + { + stretch=value; + InvokeOnElementStateChanged(); + } + } - void INativeWindowListener::Char(const NativeWindowCharInfo& info) - { - } + bool GuiImageFrameElement::GetEnabled() + { + return enabled; + } + + void GuiImageFrameElement::SetEnabled(bool value) + { + if(enabled!=value) + { + enabled=value; + InvokeOnElementStateChanged(); + } + } /*********************************************************************** -INativeControllerListener +GuiPolygonElement ***********************************************************************/ - void INativeControllerListener::GlobalTimer() - { - } + GuiPolygonElement::GuiPolygonElement() + { + } - void INativeControllerListener::ClipboardUpdated() - { - } + Size GuiPolygonElement::GetSize() + { + return size; + } - void INativeControllerListener::NativeWindowCreated(INativeWindow* window) - { - } + void GuiPolygonElement::SetSize(Size value) + { + if(size!=value) + { + size=value; + InvokeOnElementStateChanged(); + } + } - void INativeControllerListener::NativeWindowDestroying(INativeWindow* window) - { - } + const Point& GuiPolygonElement::GetPoint(vint index) + { + return points[index]; + } -/*********************************************************************** -Native Window Provider -***********************************************************************/ + vint GuiPolygonElement::GetPointCount() + { + return points.Count(); + } - INativeController* currentController=0; + void GuiPolygonElement::SetPoints(const Point* p, vint count) + { + points.Resize(count); + if(count>0) + { + memcpy(&points[0], p, sizeof(*p)*count); + } + InvokeOnElementStateChanged(); + } - INativeController* GetCurrentController() - { - return currentController; - } + const GuiPolygonElement::PointArray& GuiPolygonElement::GetPointsArray() + { + return points; + } - void SetCurrentController(INativeController* controller) - { - currentController=controller; + void GuiPolygonElement::SetPointsArray(const PointArray& value) + { + CopyFrom(points, value); + InvokeOnElementStateChanged(); + } + + Color GuiPolygonElement::GetBorderColor() + { + return borderColor; + } + + void GuiPolygonElement::SetBorderColor(Color value) + { + if(borderColor!=value) + { + borderColor=value; + InvokeOnElementStateChanged(); + } + } + + Color GuiPolygonElement::GetBackgroundColor() + { + return backgroundColor; + } + + void GuiPolygonElement::SetBackgroundColor(Color value) + { + if(backgroundColor!=value) + { + backgroundColor=value; + InvokeOnElementStateChanged(); + } + } } } } /*********************************************************************** -.\RESOURCES\GUIDOCUMENT.CPP +.\GRAPHICSELEMENT\GUIGRAPHICSELEMENTINTERFACES.CPP ***********************************************************************/ namespace vl { namespace presentation { - using namespace collections; - using namespace glr::xml; - using namespace regex; - using namespace stream; + namespace elements + { + using namespace collections; /*********************************************************************** -DocumentFontSize +GuiGraphicsRenderTarget ***********************************************************************/ - DocumentFontSize DocumentFontSize::Parse(const WString& value) - { - if (value.Length() > 0 && value[value.Length() - 1] == L'x') + bool GuiGraphicsRenderTarget::IsInHostedRendering() { - return DocumentFontSize(wtof(value.Left(value.Length() - 1)), true); + return hostedRendering; } - else + + void GuiGraphicsRenderTarget::StartHostedRendering() { - return DocumentFontSize(wtof(value), false); + CHECK_ERROR(!hostedRendering && !rendering, L"vl::presentation::elements::GuiGraphicsRenderTarget::StartHostedRendering()#Wrong timing to call this function."); + hostedRendering = true; + StartRenderingOnNativeWindow(); } - } - WString DocumentFontSize::ToString()const - { - return ftow(size) + (relative ? L"x" : L""); - } + RenderTargetFailure GuiGraphicsRenderTarget::StopHostedRendering() + { + CHECK_ERROR(hostedRendering && !rendering, L"vl::presentation::elements::GuiGraphicsRenderTarget::StopHostedRendering()#Wrong timing to call this function."); + hostedRendering = false; + return StopRenderingOnNativeWindow(); + } -/*********************************************************************** -DocumentImageRun -***********************************************************************/ + void GuiGraphicsRenderTarget::StartRendering() + { + CHECK_ERROR(!rendering, L"vl::presentation::elements::GuiGraphicsRenderTarget::StartRendering()#Wrong timing to call this function."); + rendering = true; + if (!hostedRendering) + { + StartRenderingOnNativeWindow(); + } + } - const wchar_t* DocumentImageRun::RepresentationText=L"[Image]"; - const wchar_t* DocumentEmbeddedObjectRun::RepresentationText=L"[EmbeddedObject]"; - -/*********************************************************************** -ExtractTextVisitor -***********************************************************************/ - - namespace document_operation_visitors - { - class ExtractTextVisitor : public Object, public DocumentRun::IVisitor + RenderTargetFailure GuiGraphicsRenderTarget::StopRendering() { - public: - stream::TextWriter& writer; - bool skipNonTextContent; - - ExtractTextVisitor(stream::TextWriter& _writer, bool _skipNonTextContent) - :writer(_writer) - ,skipNonTextContent(_skipNonTextContent) - { - } - - void VisitContainer(DocumentContainerRun* run) - { - for (auto subRun : run->runs) - { - subRun->Accept(this); - } - } - - void VisitContent(DocumentContentRun* run) - { - writer.WriteString(run->GetRepresentationText()); - } - - void Visit(DocumentTextRun* run)override + CHECK_ERROR(rendering, L"vl::presentation::elements::GuiGraphicsRenderTarget::StopRendering()#Wrong timing to call this function."); + rendering = false; + if (!hostedRendering) { - VisitContent(run); + return StopRenderingOnNativeWindow(); } + return RenderTargetFailure::None; + } - void Visit(DocumentStylePropertiesRun* run)override + void GuiGraphicsRenderTarget::PushClipper(Rect clipper) + { + if (clipperCoverWholeTargetCounter > 0) { - VisitContainer(run); + clipperCoverWholeTargetCounter++; } - - void Visit(DocumentStyleApplicationRun* run)override + else { - VisitContainer(run); - } + Rect previousClipper = GetClipper(); + Rect currentClipper; - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + currentClipper.x1 = (previousClipper.x1 > clipper.x1 ? previousClipper.x1 : clipper.x1); + currentClipper.y1 = (previousClipper.y1 > clipper.y1 ? previousClipper.y1 : clipper.y1); + currentClipper.x2 = (previousClipper.x2 < clipper.x2 ? previousClipper.x2 : clipper.x2); + currentClipper.y2 = (previousClipper.y2 < clipper.y2 ? previousClipper.y2 : clipper.y2); - void Visit(DocumentImageRun* run)override - { - if(!skipNonTextContent) + if (currentClipper.x1 < currentClipper.x2 && currentClipper.y1 < currentClipper.y2) { - VisitContent(run); + clippers.Add(currentClipper); + AfterPushedClipper(clipper, currentClipper); + } + else + { + clipperCoverWholeTargetCounter++; + AfterPushedClipperAndBecameInvalid(clipper); } } + } - void Visit(DocumentEmbeddedObjectRun* run)override + void GuiGraphicsRenderTarget::PopClipper() + { + if (clipperCoverWholeTargetCounter > 0) { - if(!skipNonTextContent) + clipperCoverWholeTargetCounter--; + if (clipperCoverWholeTargetCounter == 0) { - VisitContent(run); + AfterPoppedClipperAndBecameValid(GetClipper(), clippers.Count() > 0); } } - - void Visit(DocumentParagraphRun* run)override + else if (clippers.Count() > 0) { - VisitContainer(run); + clippers.RemoveAt(clippers.Count() - 1); + AfterPoppedClipper(GetClipper(), clippers.Count() > 0); } - }; - } - using namespace document_operation_visitors; - -/*********************************************************************** -DocumentParagraphRun -***********************************************************************/ - - WString DocumentParagraphRun::GetText(bool skipNonTextContent) - { - return GenerateToStream([&](StreamWriter& writer) - { - GetText(writer, skipNonTextContent); - }); - } - - void DocumentParagraphRun::GetText(stream::TextWriter& writer, bool skipNonTextContent) - { - ExtractTextVisitor visitor(writer, skipNonTextContent); - Accept(&visitor); - } - -/*********************************************************************** -DocumentModel -***********************************************************************/ - - const wchar_t* DocumentModel::DefaultStyleName = L"#Default"; - const wchar_t* DocumentModel::SelectionStyleName = L"#Selection"; - const wchar_t* DocumentModel::ContextStyleName = L"#Context"; - const wchar_t* DocumentModel::NormalLinkStyleName = L"#NormalLink"; - const wchar_t* DocumentModel::ActiveLinkStyleName = L"#ActiveLink"; - - DocumentModel::DocumentModel() - { - { - FontProperties font=GetCurrentController()->ResourceService()->GetDefaultFont(); - Ptr sp=new DocumentStyleProperties; - sp->face=font.fontFamily; - sp->size=DocumentFontSize((double)font.size, false); - sp->color=Color(); - sp->backgroundColor=Color(0, 0, 0, 0); - sp->bold=font.bold; - sp->italic=font.italic; - sp->underline=font.underline; - sp->strikeline=font.strikeline; - sp->antialias=font.antialias; - sp->verticalAntialias=font.verticalAntialias; - - Ptr style=new DocumentStyle; - style->styles=sp; - styles.Add(L"#Default", style); } - { - Ptr sp=new DocumentStyleProperties; - sp->color=Color(255, 255, 255); - sp->backgroundColor=Color(51, 153, 255); - Ptr style=new DocumentStyle; - style->styles=sp; - styles.Add(L"#Selection", style); - } + Rect GuiGraphicsRenderTarget::GetClipper() { - Ptr sp=new DocumentStyleProperties; - - Ptr style=new DocumentStyle; - style->styles=sp; - styles.Add(L"#Context", style); + if (clipperCoverWholeTargetCounter > 0) + { + return { {-1,-1},{0,0} }; + } + else if (clippers.Count() == 0) + { + return Rect(Point(0, 0), GetCanvasSize()); + } + else + { + return clippers[clippers.Count() - 1]; + } } - { - Ptr sp=new DocumentStyleProperties; - sp->color=Color(0, 0, 255); - sp->underline=true; - Ptr style=new DocumentStyle; - style->parentStyleName=L"#Context"; - style->styles=sp; - styles.Add(L"#NormalLink", style); - } + bool GuiGraphicsRenderTarget::IsClipperCoverWholeTarget() { - Ptr sp=new DocumentStyleProperties; - sp->color=Color(255, 128, 0); - sp->underline=true; - - Ptr style=new DocumentStyle; - style->parentStyleName=L"#Context"; - style->styles=sp; - styles.Add(L"#ActiveLink", style); + return clipperCoverWholeTargetCounter > 0; } } + } +} - void DocumentModel::MergeStyle(Ptr style, Ptr parent) - { - if(!style->face && parent->face) style->face =parent->face; - if(!style->size && parent->size) style->size =parent->size; - if(!style->color && parent->color) style->color =parent->color; - if(!style->backgroundColor && parent->backgroundColor) style->backgroundColor =parent->backgroundColor; - if(!style->bold && parent->bold) style->bold =parent->bold; - if(!style->italic && parent->italic) style->italic =parent->italic; - if(!style->underline && parent->underline) style->underline =parent->underline; - if(!style->strikeline && parent->strikeline) style->strikeline =parent->strikeline; - if(!style->antialias && parent->antialias) style->antialias =parent->antialias; - if(!style->verticalAntialias && parent->verticalAntialias) style->verticalAntialias =parent->verticalAntialias; - } +/*********************************************************************** +.\GRAPHICSELEMENT\GUIGRAPHICSRESOURCEMANAGER.CPP +***********************************************************************/ - void DocumentModel::MergeBaselineStyle(Ptr style, const WString& styleName) +namespace vl +{ + namespace presentation + { + namespace elements { - auto indexDst = styles.Keys().IndexOf(styleName); - Ptr sp = new DocumentStyleProperties; - MergeStyle(sp, style); - if (indexDst != -1) - { - MergeStyle(sp, styles.Values()[indexDst]->styles); - } + using namespace collections; - if (indexDst == -1) - { - auto style = new DocumentStyle; - style->styles = sp; - styles.Add(styleName, style); - } - else - { - styles.Values()[indexDst]->styles = sp; - } +/*********************************************************************** +GuiGraphicsResourceManager +***********************************************************************/ - for (auto style : styles.Values()) + GuiGraphicsResourceManager::GuiGraphicsResourceManager() { - style->resolvedStyles = nullptr; } - } - void DocumentModel::MergeBaselineStyle(Ptr baselineDocument, const WString& styleName) - { - auto indexSrc = baselineDocument->styles.Keys().IndexOf(styleName + L"-Override"); - if (indexSrc == -1) + GuiGraphicsResourceManager::~GuiGraphicsResourceManager() { - return; } - auto csp = baselineDocument->styles.Values()[indexSrc]->styles; - MergeBaselineStyle(csp, styleName); - } - - void DocumentModel::MergeBaselineStyles(Ptr baselineDocument) - { - MergeBaselineStyle(baselineDocument, DefaultStyleName); - MergeBaselineStyle(baselineDocument, SelectionStyleName); - MergeBaselineStyle(baselineDocument, ContextStyleName); - MergeBaselineStyle(baselineDocument, NormalLinkStyleName); - MergeBaselineStyle(baselineDocument, ActiveLinkStyleName); - } - - void DocumentModel::MergeDefaultFont(const FontProperties& defaultFont) - { - Ptr style = new DocumentStyleProperties; - - style->face =defaultFont.fontFamily; - style->size =DocumentFontSize((double)defaultFont.size, false); - style->bold =defaultFont.bold; - style->italic =defaultFont.italic; - style->underline =defaultFont.underline; - style->strikeline =defaultFont.strikeline; - style->antialias =defaultFont.antialias; - style->verticalAntialias =defaultFont.verticalAntialias; - - MergeBaselineStyle(style, DefaultStyleName); - } - - DocumentModel::ResolvedStyle DocumentModel::GetStyle(Ptr sp, const ResolvedStyle& context) - { - FontProperties font; - font.fontFamily =sp->face ?sp->face.Value() :context.style.fontFamily; - font.bold =sp->bold ?sp->bold.Value() :context.style.bold; - font.italic =sp->italic ?sp->italic.Value() :context.style.italic; - font.underline =sp->underline ?sp->underline.Value() :context.style.underline; - font.strikeline =sp->strikeline ?sp->strikeline.Value() :context.style.strikeline; - font.antialias =sp->antialias ?sp->antialias.Value() :context.style.antialias; - font.verticalAntialias =sp->verticalAntialias ?sp->verticalAntialias.Value() :context.style.verticalAntialias; - Color color =sp->color ?sp->color.Value() :context.color; - Color backgroundColor =sp->backgroundColor ?sp->backgroundColor.Value() :context.backgroundColor; - - if (sp->size) - { - font.size = (vint)(sp->size.Value().relative ? context.style.size * sp->size.Value().size : sp->size.Value().size); - } - else + vint GuiGraphicsResourceManager::RegisterElementType(const WString& elementTypeName) { - font.size = context.style.size; + CHECK_ERROR(!elementTypes.Contains(elementTypeName), L"GuiGraphicsResourceManager::RegisterElementType(const WString&)#This element type has already been registered."); + return elementTypes.Add(elementTypeName); } - return ResolvedStyle(font, color, backgroundColor); - } - DocumentModel::ResolvedStyle DocumentModel::GetStyle(const WString& styleName, const ResolvedStyle& context) - { - Ptr selectedStyle; + void GuiGraphicsResourceManager::RegisterRendererFactory(vint elementType, Ptr factory) { - vint index=styles.Keys().IndexOf(styleName); - if(index!=-1) + if (rendererFactories.Count() <= elementType) { - selectedStyle=styles.Values()[index]; + rendererFactories.Resize(elementType + 1); + rendererFactories[elementType] = factory; } else { - selectedStyle=styles[L"#Default"]; + CHECK_ERROR(!rendererFactories[elementType], L"GuiGraphicsResourceManager::RegisterRendererFactory(vint, Ptr)#This element type has already been binded a renderer factory."); + rendererFactories[elementType] = factory; } } - if(!selectedStyle->resolvedStyles) + IGuiGraphicsRendererFactory* GuiGraphicsResourceManager::GetRendererFactory(vint elementType) { - Ptr sp = new DocumentStyleProperties; - selectedStyle->resolvedStyles = sp; - - Ptr currentStyle; - WString currentName = styleName; - while(true) - { - vint index = styles.Keys().IndexOf(currentName); - if (index == -1) break; - currentStyle = styles.Values().Get(index); - currentName = currentStyle->parentStyleName; - MergeStyle(sp, currentStyle->styles); - } + return rendererFactories.Count() > elementType ? rendererFactories[elementType].Obj() : nullptr; } - Ptr sp=selectedStyle->resolvedStyles; - return GetStyle(sp, context); - } + IGuiGraphicsResourceManager* guiGraphicsResourceManager = nullptr; - WString DocumentModel::GetText(bool skipNonTextContent) - { - return GenerateToStream([&](StreamWriter& writer) + IGuiGraphicsResourceManager* GetGuiGraphicsResourceManager() { - GetText(writer, skipNonTextContent); - }); - } + return guiGraphicsResourceManager; + } - void DocumentModel::GetText(stream::TextWriter& writer, bool skipNonTextContent) - { - for(vint i=0;i paragraph=paragraphs[i]; - paragraph->GetText(writer, skipNonTextContent); - if(iruns) + } + + vint TextLine::CalculateBufferLength(vint dataLength) + { + if(dataLength<1)dataLength=1; + vint bufferLength=dataLength-dataLength%BlockSize; + if(bufferLengthAccept(this); + bufferLength+=BlockSize; } + return bufferLength; } - void Visit(DocumentTextRun* run)override + void TextLine::Initialize() { + Finalize(); + text=new wchar_t[BlockSize]; + att=new CharAtt[BlockSize]; + bufferLength=BlockSize; + + memset(text, 0, sizeof(wchar_t)*bufferLength); + memset(att, 0, sizeof(CharAtt)*bufferLength); } - void Visit(DocumentStylePropertiesRun* run)override + void TextLine::Finalize() { - VisitContainer(run); + if(text) + { + delete[] text; + text=0; + } + if(att) + { + delete[] att; + att=0; + } + availableOffsetCount=0; + bufferLength=0; + dataLength=0; } - void Visit(DocumentStyleApplicationRun* run)override + bool TextLine::IsReady() { - VisitContainer(run); + return text && att; } - void Visit(DocumentHyperlinkRun* run)override + bool TextLine::Modify(vint start, vint count, const wchar_t* input, vint inputCount) { - VisitContainer(run); + if(!text || !att || start<0 || count<0 || start+count>dataLength || inputCount<0) return false; + + vint newDataLength=dataLength-count+inputCount; + vint newBufferLength=CalculateBufferLength(newDataLength); + if(newBufferLength!=bufferLength) + { + wchar_t* newText=new wchar_t[newBufferLength]; + memcpy(newText, text, start*sizeof(wchar_t)); + memcpy(newText+start, input, inputCount*sizeof(wchar_t)); + memcpy(newText+start+inputCount, text+start+count, (dataLength-start-count)*sizeof(wchar_t)); + + CharAtt* newAtt=new CharAtt[newBufferLength]; + memcpy(newAtt, att, start*sizeof(CharAtt)); + memset(newAtt+start, 0, inputCount*sizeof(CharAtt)); + memcpy(newAtt+start+inputCount, att+start+count, (dataLength-start-count)*sizeof(CharAtt)); + + delete[] text; + delete[] att; + text=newText; + att=newAtt; + } + else + { + memmove(text+start+inputCount, text+start+count, (dataLength-start-count)*sizeof(wchar_t)); + memmove(att+start+inputCount, att+start+count, (dataLength-start-count)*sizeof(CharAtt)); + memcpy(text+start, input, inputCount*sizeof(wchar_t)); + memset(att+start, 0, inputCount*sizeof(CharAtt)); + } + dataLength=newDataLength; + bufferLength=newBufferLength; + if(availableOffsetCount>start) + { + availableOffsetCount=start; + } + + return true; } - void Visit(DocumentImageRun* run)override + TextLine TextLine::Split(vint index) { + if(index<0 || index>dataLength) return TextLine(); + vint count=dataLength-index; + TextLine line; + line.Initialize(); + line.Modify(0, 0, text+index, count); + memcpy(line.att, att+index, count*sizeof(CharAtt)); + Modify(index, count, L"", 0); + return line; } - void Visit(DocumentEmbeddedObjectRun* run)override + void TextLine::AppendAndFinalize(TextLine& line) { + vint oldDataLength=dataLength; + Modify(oldDataLength, 0, line.text, line.dataLength); + memcpy(att+oldDataLength, line.att, line.dataLength*sizeof(CharAtt)); + line.Finalize(); } - void Visit(DocumentParagraphRun* run)override +/*********************************************************************** +text::CharMeasurer +***********************************************************************/ + + CharMeasurer::CharMeasurer(vint _rowHeight) + :rowHeight(_rowHeight) { - VisitContainer(run); + memset(widths, 0, sizeof(widths)); } - }; - class ModifyDocumentForClipboardVisitor : public TraverseDocumentVisitor - { - public: - ModifyDocumentForClipboardVisitor() + CharMeasurer::~CharMeasurer() { } - void VisitContainer(DocumentContainerRun* run)override + void CharMeasurer::SetRenderTarget(IGuiGraphicsRenderTarget* value) { - for (vint i = run->runs.Count() - 1; i >= 0; i--) + if(oldRenderTarget!=value) { - auto childRun = run->runs[i]; - if (childRun.Cast()) + oldRenderTarget=value; + rowHeight=GetRowHeightInternal(oldRenderTarget); + memset(widths, 0, sizeof(widths)); + } + } + + vint CharMeasurer::MeasureWidth(UnicodeCodePoint codePoint) + { + vuint32_t index = codePoint.GetCodePoint(); + if (0 <= index && index < 65536) + { + vint w = widths[index]; + if (w == 0) { - run->runs.RemoveAt(i); + widths[index] = w = MeasureWidthInternal(codePoint, oldRenderTarget); } + return w; + } + else if (index < 0x110000) + { + return MeasureWidthInternal(codePoint, oldRenderTarget); + } + else + { + return 0; } - TraverseDocumentVisitor::VisitContainer(run); } - }; - class CollectImageRunsVisitor : public TraverseDocumentVisitor - { - public: - List> imageRuns; + vint CharMeasurer::GetRowHeight() + { + return rowHeight; + } - CollectImageRunsVisitor() +/*********************************************************************** +text::TextLines +***********************************************************************/ + + TextLines::TextLines(GuiColorizedTextElement* _ownerElement) + :ownerElement(_ownerElement) + ,charMeasurer(0) + ,renderTarget(0) + ,tabWidth(1) + ,tabSpaceCount(4) + ,passwordChar(L'\0') { + TextLine line; + line.Initialize(); + lines.Add(line); } - void Visit(DocumentImageRun* run)override + TextLines::~TextLines() { - run->source = L"res://Image_" + itow(imageRuns.Count()); - imageRuns.Add(run); + RemoveLines(0, lines.Count()); } - }; - } - using namespace document_clipboard_visitors; - void ModifyDocumentForClipboard(Ptr model) - { - ModifyDocumentForClipboardVisitor visitor; - for (auto paragraph : model->paragraphs) - { - paragraph->Accept(&visitor); - } - } + //-------------------------------------------------------- - Ptr LoadDocumentFromClipboardStream(stream::IStream& clipboardStream) - { - auto tempResource = MakePtr(); - auto tempResourceItem = MakePtr(); - tempResource->AddItem(L"Document", tempResourceItem); - auto tempResolver = MakePtr(tempResource, L""); + vint TextLines::GetCount() + { + return lines.Count(); + } - internal::ContextFreeReader reader(clipboardStream); - { - WString title; - vint32_t version = 0; - reader << title << version; - - if (title != L"WCF_Document" || version < 1) + TextLine& TextLines::GetLine(vint row) { - return nullptr; + return lines[row]; } - } - - WString xmlText; - reader << xmlText; - List errors; - auto parser = GetParserManager()->GetParser(L"XML"); - auto xml = parser->Parse({}, xmlText, errors); - if (errors.Count() > 0) return nullptr; - { - vint32_t count = 0; - reader << count; - for (vint i = 0; i < count; i++) + CharMeasurer* TextLines::GetCharMeasurer() { - MemoryStream memoryStream; - reader << (IStream&)memoryStream; - if (auto image = GetCurrentController()->ImageService()->CreateImageFromStream(memoryStream)) - { - auto imageItem = MakePtr(); - imageItem->SetContent(L"Image", MakePtr(image, 0)); - tempResource->AddItem(L"Image_" + itow(i), imageItem); - } + return charMeasurer; } - } - auto document = DocumentModel::LoadFromXml(tempResourceItem, xml, tempResolver, errors); - return document; - } + void TextLines::SetCharMeasurer(CharMeasurer* value) + { + charMeasurer=value; + if(charMeasurer) charMeasurer->SetRenderTarget(renderTarget); + ClearMeasurement(); + } - void SaveDocumentToClipboardStream(Ptr model, stream::IStream& clipboardStream) - { - CollectImageRunsVisitor visitor; - for (auto paragraph : model->paragraphs) - { - paragraph->Accept(&visitor); - } + IGuiGraphicsRenderTarget* TextLines::GetRenderTarget() + { + return renderTarget; + } - internal::ContextFreeWriter writer(clipboardStream); - { - WString title = L"WCF_Document"; - vint32_t version = 1; - writer << title << version; - } - { - auto xmlText = GenerateToStream([&](StreamWriter& streamWriter) + void TextLines::SetRenderTarget(IGuiGraphicsRenderTarget* value) { - auto xml = model->SaveToXml(); - XmlPrint(xml, streamWriter); - }); - writer << xmlText; - } - { - vint32_t count = (vint32_t)visitor.imageRuns.Count(); - writer << count; + renderTarget=value; + if(charMeasurer) charMeasurer->SetRenderTarget(renderTarget); + ClearMeasurement(); + } - for (auto imageRun : visitor.imageRuns) + WString TextLines::GetText(TextPos start, TextPos end) { - MemoryStream memoryStream; - if (imageRun->image) + if(!IsAvailable(start) || !IsAvailable(end) || start>end) return L""; + + if(start.row==end.row) { - auto format = imageRun->image->GetFormat(); - if (format == INativeImage::Gif) + return WString::CopyFrom(lines[start.row].text+start.column, end.column-start.column); + } + + vint count=0; + for(vint i=start.row+1;i buffer; + buffer.Resize(count+(end.row-start.row)*2); + wchar_t* writing=&buffer[0]; + + for(vint i=start.row;i<=end.row;i++) + { + wchar_t* text=lines[i].text; + vint chars=0; + if(i==start.row) { - format = INativeImage::Png; + text+=start.column; + chars=lines[i].dataLength-start.column; + } + else if(i==end.row) + { + chars=end.column; + } + else + { + chars=lines[i].dataLength; } - imageRun->image->SaveToStream(memoryStream, format); + if(i!=start.row) + { + *writing++=L'\r'; + *writing++=L'\n'; + } + memcpy(writing, text, chars*sizeof(wchar_t)); + writing+=chars; } - - writer << (stream::IStream&)memoryStream; + return WString::CopyFrom(&buffer[0], buffer.Count()); } - } - } - } -} - -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTCLIPBOARD_HTMLFORMAT.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - using namespace collections; - using namespace stream; - namespace document_clipboard_visitors - { - class GenerateHtmlVisitor : public Object, public DocumentRun::IVisitor - { - typedef DocumentModel::ResolvedStyle ResolvedStyle; - public: - List styles; - DocumentModel* model; - StreamWriter& writer; + WString TextLines::GetText() + { + return GetText(TextPos(0, 0), TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength)); + } - GenerateHtmlVisitor(DocumentModel* _model, StreamWriter& _writer) - :model(_model) - , writer(_writer) + void TextLines::SetText(const WString& value) { - ResolvedStyle style; - style.color = Color(0, 0, 0, 0); - style.backgroundColor = Color(0, 0, 0, 0); - style = model->GetStyle(DocumentModel::DefaultStyleName, style); - styles.Add(style); + Modify(TextPos(0, 0), TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength), value); } - void VisitContainer(DocumentContainerRun* run) + //-------------------------------------------------------- + + bool TextLines::RemoveLines(vint start, vint count) { - for (auto subRun : run->runs) + if(start<0 || count<0 || start+count>lines.Count()) return false; + for(vint i=start+count-1;i>=start;i--) { - subRun->Accept(this); + lines[i].Finalize(); } + lines.RemoveRange(start, count); + return true; } - WString ColorToString(Color c) + bool TextLines::IsAvailable(TextPos pos) { - auto result = c.ToString(); - if (result.Length() == 9) result = result.Left(7); - return result; + return 0<=pos.row && pos.rowGetRepresentationText(); - if (text.Length() > 0) + if(pos.row<0) { - ResolvedStyle style = styles[styles.Count() - 1]; + return TextPos(0, 0); + } + else if(pos.row>=lines.Count()) + { + return TextPos(lines.Count()-1, lines[lines.Count()-1].dataLength); + } + else + { + TextLine& line=lines[pos.row]; + if(pos.column<0) + { + return TextPos(pos.row, 0); + } + else if(pos.column>line.dataLength) + { + return TextPos(pos.row, line.dataLength); + } + else + { + return pos; + } + } + } - writer.WriteString(L""); + TextPos TextLines::Modify(TextPos start, TextPos end, const wchar_t** inputs, vint* inputCounts, vint rows) + { + if(!IsAvailable(start) || !IsAvailable(end) || start>end) return TextPos(-1, -1); + if (ownerElement) + { + ownerElement->InvokeOnElementStateChanged(); + } - for (vint i = 0; i < text.Length(); i++) + if(rows==1) + { + if(start.row==end.row) { - switch (wchar_t c = text[i]) + lines[start.row].Modify(start.column, end.column-start.column, inputs[0], inputCounts[0]); + } + else + { + if(end.row-start.row>1) { - case L'&': writer.WriteString(L"&"); break; - case L'<': writer.WriteString(L"<"); break; - case L'>': writer.WriteString(L">"); break; - case L'\r': break; - case L'\n': writer.WriteString(L"
"); break; - case L' ': writer.WriteString(L" "); break; - case L'\t': writer.WriteString(L"
\t
"); break; - default: writer.WriteChar(c); break; + RemoveLines(start.row+1, end.row-start.row-1); } + vint modifyCount=lines[start.row].dataLength-start.column+end.column; + lines[start.row].AppendAndFinalize(lines[start.row+1]); + lines.RemoveAt(start.row+1); + lines[start.row].Modify(start.column, modifyCount, inputs[0], inputCounts[0]); } - - writer.WriteString(L"
"); + return TextPos(start.row, start.column+inputCounts[0]); } - } - - void Visit(DocumentStylePropertiesRun* run)override - { - ResolvedStyle style = styles[styles.Count() - 1]; - style = model->GetStyle(run->style, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); - } - void Visit(DocumentStyleApplicationRun* run)override - { - ResolvedStyle style = styles[styles.Count() - 1]; - style = model->GetStyle(run->styleName, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); - } + if(start.row==end.row) + { + TextLine newLine=lines[start.row].Split(end.column); + lines.Insert(start.row+1, newLine); + end=TextPos(start.row+1, 0); + } - void Visit(DocumentHyperlinkRun* run)override - { - writer.WriteString(L"reference.Length(); i++) + vint oldMiddleLines=end.row-start.row-1; + vint newMiddleLines=rows-2; + if(oldMiddleLinesreference[i]) + for(vint i=oldMiddleLines;i': writer.WriteString(L">"); break; - case L'"': writer.WriteString(L"""); break; - case L'\'': writer.WriteString(L"'"); break; - default: writer.WriteChar(c); break; + TextLine line; + line.Initialize(); + lines.Insert(end.row, line); } } - writer.WriteString(L"\">"); - - ResolvedStyle style = styles[styles.Count() - 1]; - style = model->GetStyle((run->normalStyleName == L"" ? DocumentModel::NormalLinkStyleName : run->normalStyleName), style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); + else if(oldMiddleLines>newMiddleLines) + { + RemoveLines(start.row+newMiddleLines+1, oldMiddleLines-newMiddleLines); + } + end.row+=newMiddleLines-oldMiddleLines; - writer.WriteString(L""); + lines[start.row].Modify(start.column, lines[start.row].dataLength-start.column, inputs[0], inputCounts[0]); + lines[end.row].Modify(0, end.column, inputs[rows-1], inputCounts[rows-1]); + for(vint i=1;iimage) + List inputs; + List inputCounts; + const wchar_t* previous=input; + const wchar_t* current=input; + + while(true) { - writer.WriteString(L"size.x) + L"\" height=\"" + itow(run->size.y) + L"\" src=\"data:image/"); - auto format = run->image->GetFormat(); - if (format == INativeImage::Gif) + if(current==input+inputCount) { - format = INativeImage::Png; + inputs.Add(previous); + inputCounts.Add(current-previous); + break; } - - switch (format) + else if(*current==L'\r' || *current==L'\n') { - case INativeImage::Bmp: writer.WriteString(L"bmp;base64,"); break; - case INativeImage::Gif: writer.WriteString(L"gif;base64,"); break; - case INativeImage::Icon: writer.WriteString(L"icon;base64,"); break; - case INativeImage::Jpeg: writer.WriteString(L"jpeg;base64,"); break; - case INativeImage::Png: writer.WriteString(L"png;base64,"); break; - case INativeImage::Tiff: writer.WriteString(L"tiff;base64,"); break; - case INativeImage::Wmp: writer.WriteString(L"wmp;base64,"); break; - default: writer.WriteString(L"unsupported;base64,\"/>"); return; + inputs.Add(previous); + inputCounts.Add(current-previous); + previous=current+(current[1]==L'\n'?2:1); + current=previous; } - - MemoryStream memoryStream; - run->image->SaveToStream(memoryStream, format); - memoryStream.SeekFromBegin(0); - while (true) + else { - vuint8_t bytes[3] = { 0,0,0 }; - vint read = memoryStream.Read(&bytes, sizeof(bytes)); - if (read == 0) break; - - vuint8_t b1 = bytes[0] / (1 << 2); - vuint8_t b2 = ((bytes[0] % (1 << 2)) << 4) + bytes[1] / (1 << 4); - vuint8_t b3 = ((bytes[1] % (1 << 4)) << 2) + bytes[2] / (1 << 6); - vuint8_t b4 = bytes[2] % (1 << 6); - - const wchar_t* BASE64 = - L"ABCDEFG" - L"HIJKLMN" - L"OPQRST" - L"UVWXYZ" - L"abcdefg" - L"hijklmn" - L"opqrst" - L"uvwxyz" - L"0123456789" - L"+/"; -#define BASE64_CHAR(b) BASE64[b] - switch (read) - { - case 1: - writer.WriteChar(BASE64_CHAR(b1)); - writer.WriteChar(BASE64_CHAR(b2)); - writer.WriteChar(L'='); - writer.WriteChar(L'='); - break; - case 2: - writer.WriteChar(BASE64_CHAR(b1)); - writer.WriteChar(BASE64_CHAR(b2)); - writer.WriteChar(BASE64_CHAR(b3)); - writer.WriteChar(L'='); - break; - case 3: - writer.WriteChar(BASE64_CHAR(b1)); - writer.WriteChar(BASE64_CHAR(b2)); - writer.WriteChar(BASE64_CHAR(b3)); - writer.WriteChar(BASE64_CHAR(b4)); - break; - } -#undef BASE64_CHAR + current++; } - - writer.WriteString(L"\"/>"); } + + return Modify(start, end, &inputs[0], &inputCounts[0], inputs.Count()); } - void Visit(DocumentEmbeddedObjectRun* run)override + TextPos TextLines::Modify(TextPos start, TextPos end, const wchar_t* input) { + return Modify(start, end, input, wcslen(input)); } - void Visit(DocumentParagraphRun* run)override + TextPos TextLines::Modify(TextPos start, TextPos end, const WString& input) { - VisitContainer(run); + return Modify(start, end, input.Buffer(), input.Length()); } - }; - } - using namespace document_clipboard_visitors; - -#define HTML_LINE(LINE) LINE "\r\n" - void SaveDocumentToHtmlUtf8(Ptr model, AString& header, AString& content, AString& footer) - { - header = - HTML_LINE("") - HTML_LINE("") - HTML_LINE("
") - HTML_LINE("GacUI Document 1.0") - HTML_LINE("") - HTML_LINE("
") - HTML_LINE("") - ; + void TextLines::Clear() + { + RemoveLines(0, lines.Count()); + TextLine line; + line.Initialize(); + lines.Add(line); + if (ownerElement) + { + ownerElement->InvokeOnElementStateChanged(); + } + } - MemoryStream memoryStream; - { - Utf8Encoder encoder; - EncoderStream encoderStream(memoryStream, encoder); - StreamWriter writer(encoderStream); - GenerateHtmlVisitor visitor(model.Obj(), writer); + //-------------------------------------------------------- - for (auto paragraph : model->paragraphs) + void TextLines::ClearMeasurement() { - writer.WriteString(L"

alignment) + for (vint i = 0; i < lines.Count(); i++) { - switch (paragraph->alignment.Value()) - { - case Alignment::Left: writer.WriteString(L"left;"); break; - case Alignment::Center: writer.WriteString(L"center;"); break; - case Alignment::Right: writer.WriteString(L"right;"); break; - } + lines[i].availableOffsetCount = 0; } - else + + tabWidth = tabSpaceCount * (charMeasurer ? charMeasurer->MeasureWidth({ L' ' }) : 1); + if (tabWidth == 0) { - writer.WriteString(L"left;"); + tabWidth = 1; } - writer.WriteString(L"\">"); - paragraph->Accept(&visitor); - writer.WriteString(L"

\r\n"); - } - } - char zero = 0; - memoryStream.Write(&zero, sizeof(zero)); - content = (const char*)memoryStream.GetInternalBuffer(); - footer = - HTML_LINE("") - HTML_LINE("") - ; - } - - void SaveDocumentToHtmlClipboardStream(Ptr model, stream::IStream& clipboardStream) - { - AString header, content, footer; - SaveDocumentToHtmlUtf8(model, header, content, footer); + if (ownerElement) + { + ownerElement->InvokeOnElementStateChanged(); + } + } - char clipboardHeader[] = - HTML_LINE("StartHTML:-1") - HTML_LINE("EndHTML:-1") - HTML_LINE("StartFragment:0000000000") - HTML_LINE("EndFragment:0000000000") - ; - char commentStart[] = ""; - char commentEnd[] = ""; - vint offsetStart = sizeof(clipboardHeader) - 1 + header.Length() + sizeof(commentStart) - 1; - vint offsetEnd = offsetStart + content.Length(); + vint TextLines::GetTabSpaceCount() + { + return tabSpaceCount; + } - AString offsetStartString = itoa(offsetStart); - AString offsetEndString = itoa(offsetEnd); - memcpy(strstr(clipboardHeader, "EndFragment:") - offsetStartString.Length() - 2, offsetStartString.Buffer(), offsetStartString.Length()); - memcpy(clipboardHeader + sizeof(clipboardHeader) - 1 - offsetEndString.Length() - 2, offsetEndString.Buffer(), offsetEndString.Length()); + void TextLines::SetTabSpaceCount(vint value) + { + if(value<1) value=1; + if(tabSpaceCount!=value) + { + tabSpaceCount=value; + ClearMeasurement(); + } + } - clipboardStream.Write(clipboardHeader, sizeof(clipboardHeader) - 1); - if (header.Length() > 0) clipboardStream.Write((void*)header.Buffer(), header.Length()); - clipboardStream.Write(commentStart, sizeof(commentStart) - 1); - if (content.Length() > 0) clipboardStream.Write((void*)content.Buffer(), content.Length()); - clipboardStream.Write(commentEnd, sizeof(commentEnd) - 1); - if (footer.Length() > 0) clipboardStream.Write((void*)footer.Buffer(), footer.Length()); - } - -#undef HTML_LINE - } -} - -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTCLIPBOARD_RICHTEXTFORMAT.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - using namespace collections; - using namespace stream; - - namespace document_clipboard_visitors - { - class GenerateRtfVisitor : public Object, public DocumentRun::IVisitor - { - typedef DocumentModel::ResolvedStyle ResolvedStyle; - public: - List styles; - DocumentModel* model; - StreamWriter& writer; - - List& fontTable; - List& colorTable; - Dictionary fontIndex; - Dictionary colorIndex; - - vint GetFont(const WString& fontName) + void TextLines::MeasureRow(vint row) { - vint index = fontIndex.Keys().IndexOf(fontName); - if (index == -1) + TextLine& line = lines[row]; + vint offset = 0; + if (line.availableOffsetCount) { - index = fontTable.Add(fontName); - fontIndex.Add(fontName, index); - return index; + offset = line.att[line.availableOffsetCount - 1].rightOffset; } - return fontIndex.Values()[index]; - } - - vint GetColor(Color color) - { - if (color.a == 0) return 0; - vint index = colorIndex.Keys().IndexOf(color); - if (index == -1) + for (vint i = line.availableOffsetCount; i < line.dataLength; i++) { - index = colorTable.Add(color) + 1; - colorIndex.Add(color, index); - return index; + CharAtt& att = line.att[i]; + wchar_t c = line.text[i]; + vint width = 0; + vint passwordWidth = 0; + if (passwordChar) + { + passwordWidth = charMeasurer ? charMeasurer->MeasureWidth({ passwordChar }) : 1; + } + + if (c == L'\t') + { + width = tabWidth - offset % tabWidth; + } +#if defined VCZH_MSVC + else if (UTF16SPFirst(c) && (i + 1 < line.dataLength) && UTF16SPSecond(line.text[i + 1])) + { + width = passwordChar ? passwordWidth : (charMeasurer ? charMeasurer->MeasureWidth({ c, line.text[i + 1] }) : 1); + offset += width; + att.rightOffset = (int)offset; + line.att[i + 1].rightOffset = (int)offset; + i++; + continue; + } +#endif + else + { + width = passwordChar ? passwordWidth : (charMeasurer ? charMeasurer->MeasureWidth({ c }) : 1); + } + offset += width; + att.rightOffset = (int)offset; } - return colorIndex.Values()[index]; + line.availableOffsetCount = line.dataLength; } - GenerateRtfVisitor(DocumentModel* _model, List& _fontTable, List& _colorTable, StreamWriter& _writer) - :model(_model) - , writer(_writer) - , fontTable(_fontTable) - , colorTable(_colorTable) + vint TextLines::GetRowWidth(vint row) { - ResolvedStyle style; - style.color = Color(0, 0, 0, 0); - style.backgroundColor = Color(0, 0, 0, 0); - style = model->GetStyle(DocumentModel::DefaultStyleName, style); - styles.Add(style); + if(row<0 || row>=lines.Count()) return -1; + TextLine& line=lines[row]; + if(line.dataLength==0) + { + return 0; + } + else + { + MeasureRow(row); + return line.att[line.dataLength-1].rightOffset; + } } - void VisitContainer(DocumentContainerRun* run) + vint TextLines::GetRowHeight() { - for (auto subRun : run->runs) - { - subRun->Accept(this); - } + return charMeasurer ? charMeasurer->GetRowHeight() : 1; } - void Visit(DocumentTextRun* run)override + vint TextLines::GetMaxWidth() { - WString text = run->GetRepresentationText(); - if (text.Length() > 0) + vint width=0; + for(vint i=0;iGetStyle(run->style, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); - } - - void Visit(DocumentStyleApplicationRun* run)override + vint TextLines::GetMaxHeight() { - ResolvedStyle style = styles[styles.Count() - 1]; - style = model->GetStyle(run->styleName, style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); + return lines.Count() * GetRowHeight(); } - void Visit(DocumentHyperlinkRun* run)override + TextPos TextLines::GetTextPosFromPoint(Point point) { - ResolvedStyle style = styles[styles.Count() - 1]; - style = model->GetStyle((run->normalStyleName == L"" ? DocumentModel::NormalLinkStyleName : run->normalStyleName), style); - styles.Add(style); - VisitContainer(run); - styles.RemoveAt(styles.Count() - 1); - } + vint h = GetRowHeight(); + if(point.y<0) + { + point.y=0; + } + else if(point.y>=h*lines.Count()) + { + point.y=h*lines.Count()-1; + } - void Visit(DocumentImageRun* run)override - { - if (run->image) + vint row=point.y/h; + if(point.x<0) { - writer.WriteString(L"{\\pict\\pngblip"); - writer.WriteString(L"\\picw" + itow(run->size.x) + L"\\pich" + itow(run->size.y)); - writer.WriteString(L"\\picwgoal" + itow(run->size.x * 15) + L"\\pichgoal" + itow(run->size.y * 15) + L" "); + return TextPos(row, 0); + } + else if(point.x>=GetRowWidth(row)) + { + return TextPos(row, lines[row].dataLength); + } + TextLine& line=lines[row]; - MemoryStream memoryStream; - run->image->SaveToStream(memoryStream, INativeImage::Png); - vint count = (vint)memoryStream.Size(); - vuint8_t* buffer = (vuint8_t*)memoryStream.GetInternalBuffer(); - for (vint i = 0; i < count; i++) + vint i1=0, i2=line.dataLength; + vint p1=0, p2=line.att[line.dataLength-1].rightOffset; + while(i2-i1>1) + { + vint i=(i1+i2)/2; + vint p=i==0?0:line.att[i-1].rightOffset; + if(point.x 0 && UTF16SPFirst(line.text[i1 - 1])) + { + i1--; + } +#endif + return TextPos(row, i1); } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } - - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; - } - using namespace document_clipboard_visitors; - - void SaveDocumentToRtf(Ptr model, AString& rtf) - { - List fontTable; - List colorTable; - MemoryStream bodyStream; - { - StreamWriter writer(bodyStream); - GenerateRtfVisitor visitor(model.Obj(), fontTable, colorTable, writer); - - for (auto paragraph : model->paragraphs) + Point TextLines::GetPointFromTextPos(TextPos pos) { - if (paragraph->alignment) + if(IsAvailable(pos)) { - switch (paragraph->alignment.Value()) + vint y = pos.row * GetRowHeight(); + if(pos.column==0) { - case Alignment::Left: writer.WriteString(L"\\ql{"); break; - case Alignment::Center: writer.WriteString(L"\\qc{"); break; - case Alignment::Right: writer.WriteString(L"\\qr{"); break; + return Point(0, y); + } + else + { + MeasureRow(pos.row); + TextLine& line=lines[pos.row]; + return Point(line.att[pos.column-1].rightOffset, y); } } else { - writer.WriteString(L"\\ql{"); + return Point(-1, -1); } - paragraph->Accept(&visitor); - writer.WriteString(L"}\\par"); } - } - - MemoryStream rtfStream; - { - Utf8Encoder encoder; - EncoderStream encoderStream(rtfStream, encoder); - StreamWriter writer(encoderStream); - writer.WriteString(L"{\\rtf1\\ansi\\deff0{\\fonttbl"); - for (auto [fontName, index] : indexed(fontTable)) + Rect TextLines::GetRectFromTextPos(TextPos pos) { - writer.WriteString(L"{\\f"); - writer.WriteString(itow(index)); - writer.WriteString(L" "); - writer.WriteString(fontName); - writer.WriteString(L";}"); + Point point=GetPointFromTextPos(pos); + if(point==Point(-1, -1)) + { + return Rect(-1, -1, -1, -1); + } + else + { + vint h = GetRowHeight(); + TextLine& line=lines[pos.row]; + if(pos.column==line.dataLength) + { + return Rect(point, Size(h/2, h)); + } + else + { + return Rect(point, Size(line.att[pos.column].rightOffset-point.x, h)); + } + } } - writer.WriteString(L"}{\\colortbl"); - for (auto [color, index] : indexed(colorTable)) + //-------------------------------------------------------- + + wchar_t TextLines::GetPasswordChar() { - writer.WriteString(L";\\red"); - writer.WriteString(itow(color.r)); - writer.WriteString(L"\\green"); - writer.WriteString(itow(color.g)); - writer.WriteString(L"\\blue"); - writer.WriteString(itow(color.b)); + return passwordChar; } - writer.WriteString(L";}{\\*\\generator GacUI Document 1.0}\\uc0"); + void TextLines::SetPasswordChar(wchar_t value) { - bodyStream.SeekFromBegin(0); - StreamReader reader(bodyStream); - writer.WriteString(reader.ReadToEnd()); + passwordChar=value; + ClearMeasurement(); } - writer.WriteString(L"}"); } - char zero = 0; - rtfStream.Write(&zero, sizeof(zero)); - rtf = (const char*)rtfStream.GetInternalBuffer(); - } - void SaveDocumentToRtfStream(Ptr model, stream::IStream& rtfStream) - { - AString rtf; - SaveDocumentToRtf(model, rtf); - rtfStream.Write((void*)rtf.Buffer(), rtf.Length()); - } - } -} + using namespace text; /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_ADDCONTAINER.CPP +GuiColorizedTextElement ***********************************************************************/ -namespace vl -{ - namespace presentation - { - using namespace collections; - using namespace document_editor; - -/*********************************************************************** -Insert container runs on top of all text ranges that intersect with the specified range -AddStyleVisitor : Apply a style on the specified range -AddHyperlinkVisitor : Apply a hyperlink on the specified range -AddStyleNameVisitor : Apply a style name on the specified range -***********************************************************************/ + GuiColorizedTextElement::GuiColorizedTextElement() + :callback(0) + ,isVisuallyEnabled(true) + ,isFocused(false) + ,caretVisible(false) + ,lines(this) + { + } - namespace document_operation_visitors - { - class AddContainerVisitor : public Object, public DocumentRun::IVisitor + text::TextLines& GuiColorizedTextElement::GetLines() { - public: - RunRangeMap& runRanges; - vint start; - vint end; - bool insertStyle; + return lines; + } - virtual Ptr CreateContainer() = 0; + GuiColorizedTextElement::ICallback* GuiColorizedTextElement::GetCallback() + { + return callback; + } - AddContainerVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :runRanges(_runRanges) - , start(_start) - , end(_end) - , insertStyle(false) + void GuiColorizedTextElement::SetCallback(ICallback* value) + { + callback=value; + if(!callback) { + lines.SetCharMeasurer(0); } + } - void VisitContainer(DocumentContainerRun* run) + const GuiColorizedTextElement::ColorArray& GuiColorizedTextElement::GetColors() + { + return colors; + } + + void GuiColorizedTextElement::SetColors(const ColorArray& value) + { + CopyFrom(colors, value); + if(callback) callback->ColorChanged(); + InvokeOnElementStateChanged(); + } + + void GuiColorizedTextElement::ResetTextColorIndex(vint index) + { + vint lineCount = lines.GetCount(); + for (vint i = 0; i < lineCount; i++) { - for (vint i = run->runs.Count() - 1; i >= 0; i--) + auto& line = lines.GetLine(i); + line.lexerFinalState = -1; + line.contextFinalState = -1; + for (vint j = 0; j < line.dataLength; j++) { - Ptr subRun = run->runs[i]; - RunRange range = runRanges[subRun.Obj()]; - if (range.startAccept(this); - if (insertStyle) - { - Ptr containerRun = CreateContainer(); - run->runs.RemoveAt(i); - containerRun->runs.Add(subRun); - run->runs.Insert(i, containerRun); - } - } + line.att[j].colorIndex = (vuint32_t)index; } - insertStyle = false; - } - - void Visit(DocumentTextRun* run)override - { - insertStyle = true; } + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + const FontProperties& GuiColorizedTextElement::GetFont() + { + return font; + } - void Visit(DocumentStyleApplicationRun* run)override + void GuiColorizedTextElement::SetFont(const FontProperties& value) + { + if(font!=value) { - VisitContainer(run); + font=value; + if(callback) + { + callback->FontChanged(); + } + InvokeOnElementStateChanged(); } + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + wchar_t GuiColorizedTextElement::GetPasswordChar() + { + return lines.GetPasswordChar(); + } - void Visit(DocumentImageRun* run)override + void GuiColorizedTextElement::SetPasswordChar(wchar_t value) + { + if(lines.GetPasswordChar()!=value) { - insertStyle = false; + lines.SetPasswordChar(value); + InvokeOnElementStateChanged(); } + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - insertStyle = false; - } + Point GuiColorizedTextElement::GetViewPosition() + { + return viewPosition; + } - void Visit(DocumentParagraphRun* run)override + void GuiColorizedTextElement::SetViewPosition(Point value) + { + if(viewPosition!=value) { - VisitContainer(run); + viewPosition=value; + InvokeOnElementStateChanged(); } - }; + } - class AddStyleVisitor : public AddContainerVisitor + bool GuiColorizedTextElement::GetVisuallyEnabled() { - public: - Ptr style; + return isVisuallyEnabled; + } - Ptr CreateContainer()override + void GuiColorizedTextElement::SetVisuallyEnabled(bool value) + { + if(isVisuallyEnabled!=value) { - Ptr containerRun = new DocumentStylePropertiesRun; - containerRun->style = CopyStyle(style); - return containerRun; + isVisuallyEnabled=value; + InvokeOnElementStateChanged(); } + } - AddStyleVisitor(RunRangeMap& _runRanges, vint _start, vint _end, Ptr _style) - :AddContainerVisitor(_runRanges, _start, _end) - , style(_style) + bool GuiColorizedTextElement::GetFocused() + { + return isFocused; + } + + void GuiColorizedTextElement::SetFocused(bool value) + { + if(isFocused!=value) { + isFocused=value; + InvokeOnElementStateChanged(); } - }; + } - class AddHyperlinkVisitor : public AddContainerVisitor + TextPos GuiColorizedTextElement::GetCaretBegin() { - public: - WString reference; - WString normalStyleName; - WString activeStyleName; - - Ptr CreateContainer()override - { - Ptr containerRun = new DocumentHyperlinkRun; - containerRun->reference = reference; - containerRun->normalStyleName = normalStyleName; - containerRun->activeStyleName = activeStyleName; - containerRun->styleName = normalStyleName; - return containerRun; - } + return caretBegin; + } - AddHyperlinkVisitor(RunRangeMap& _runRanges, vint _start, vint _end, const WString& _reference, const WString& _normalStyleName, const WString& _activeStyleName) - :AddContainerVisitor(_runRanges, _start, _end) - , reference(_reference) - , normalStyleName(_normalStyleName) - , activeStyleName(_activeStyleName) - { - } - }; + void GuiColorizedTextElement::SetCaretBegin(TextPos value) + { + caretBegin=value; + InvokeOnElementStateChanged(); + } - class AddStyleNameVisitor : public AddContainerVisitor + TextPos GuiColorizedTextElement::GetCaretEnd() { - public: - WString styleName; + return caretEnd; + } - Ptr CreateContainer()override - { - Ptr containerRun = new DocumentStyleApplicationRun; - containerRun->styleName = styleName; - return containerRun; - } + void GuiColorizedTextElement::SetCaretEnd(TextPos value) + { + caretEnd=value; + InvokeOnElementStateChanged(); + } - AddStyleNameVisitor(RunRangeMap& _runRanges, vint _start, vint _end, const WString& _styleName) - :AddContainerVisitor(_runRanges, _start, _end) - , styleName(_styleName) - { - } - }; - } - using namespace document_operation_visitors; + bool GuiColorizedTextElement::GetCaretVisible() + { + return caretVisible; + } - namespace document_editor - { - void AddStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end, Ptr style) + void GuiColorizedTextElement::SetCaretVisible(bool value) { - AddStyleVisitor visitor(runRanges, start, end, style); - run->Accept(&visitor); + caretVisible=value; + InvokeOnElementStateChanged(); } - void AddHyperlink(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) + Color GuiColorizedTextElement::GetCaretColor() { - AddHyperlinkVisitor visitor(runRanges, start, end, reference, normalStyleName, activeStyleName); - run->Accept(&visitor); + return caretColor; } - void AddStyleName(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end, const WString& styleName) + void GuiColorizedTextElement::SetCaretColor(Color value) { - AddStyleNameVisitor visitor(runRanges, start, end, styleName); - run->Accept(&visitor); + if(caretColor!=value) + { + caretColor=value; + InvokeOnElementStateChanged(); + } } } } } + /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_CLEARUNNECESSARYRUN.CPP +.\NATIVEWINDOW\GUINATIVEWINDOW.CPP ***********************************************************************/ namespace vl { namespace presentation { - using namespace collections; - using namespace document_editor; + const NativeWindowFrameConfig NativeWindowFrameConfig::Default = {}; /*********************************************************************** -Clear all runs that have an empty length +INativeWindowListener ***********************************************************************/ - namespace document_operation_visitors + INativeWindowListener::HitTestResult INativeWindowListener::HitTest(NativePoint location) { - class ClearRunVisitor : public Object, public DocumentRun::IVisitor - { - public: - vint start; + return INativeWindowListener::NoDecision; + } - ClearRunVisitor() - :start(0) - { - } + void INativeWindowListener::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) + { + } - void VisitContainer(DocumentContainerRun* run) - { - for (vint i = run->runs.Count() - 1; i >= 0; i--) - { - vint oldStart = start; - run->runs[i]->Accept(this); - if (oldStart == start) - { - run->runs.RemoveAt(i); - } - } - } + void INativeWindowListener::Moved() + { + } - void VisitContent(DocumentContentRun* run) - { - start += run->GetRepresentationText().Length(); - } + void INativeWindowListener::DpiChanged(bool preparing) + { + } - void Visit(DocumentTextRun* run)override - { - VisitContent(run); - } + void INativeWindowListener::Enabled() + { + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + void INativeWindowListener::Disabled() + { + } - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + void INativeWindowListener::GotFocus() + { + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + void INativeWindowListener::LostFocus() + { + } - void Visit(DocumentImageRun* run)override - { - VisitContent(run); - } + void INativeWindowListener::RenderingAsActivated() + { + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - VisitContent(run); - } + void INativeWindowListener::RenderingAsDeactivated() + { + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + void INativeWindowListener::Opened() + { } - using namespace document_operation_visitors; -/*********************************************************************** -Ensure DocumentStylePropertiesRun doesn't have a child which is another DocumentStylePropertiesRun -Remove DocumentStylePropertiesRun's property if it set a value but doesn't change the output -Remove DocumentStylePropertiesRun if it is empty or contains no text run -***********************************************************************/ + void INativeWindowListener::BeforeClosing(bool& cancel) + { + } - namespace document_operation_visitors + void INativeWindowListener::AfterClosing() { - class CompressStyleRunVisitor : public Object, public DocumentRun::IVisitor - { - public: - DocumentModel* model; - List resolvedStyles; - List> replacedRuns; + } - CompressStyleRunVisitor(DocumentModel* _model) - :model(_model) - { - DocumentModel::ResolvedStyle resolvedStyle; - resolvedStyle = model->GetStyle(DocumentModel::DefaultStyleName, resolvedStyle); - resolvedStyles.Add(resolvedStyle); - } + void INativeWindowListener::Closed() + { + } - const DocumentModel::ResolvedStyle& GetCurrentResolvedStyle() - { - return resolvedStyles[resolvedStyles.Count() - 1]; - } + void INativeWindowListener::Paint() + { + } - void VisitContainer(DocumentContainerRun* run) - { - for (vint i = 0; i < run->runs.Count(); i++) - { - Ptr subRun = run->runs[i]; - replacedRuns.Clear(); - subRun->Accept(this); - if (replacedRuns.Count() > 0) - { - run->runs.RemoveAt(i); - for (vint j = 0; j < replacedRuns.Count(); j++) - { - run->runs.Insert(i + j, replacedRuns[j]); - } - i--; - } - } - } + void INativeWindowListener::Destroying() + { + } - void Visit(DocumentTextRun* run)override - { - } + void INativeWindowListener::Destroyed() + { + } - bool OnlyImageOrObject(DocumentContainerRun* run) - { - bool onlyImageOrObject = true; - for (auto subRun : run->runs) - { - if (!subRun.Cast() && !subRun.Cast()) - { - onlyImageOrObject = false; - break; - } - } - return onlyImageOrObject; - } + void INativeWindowListener::LeftButtonDown(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentStylePropertiesRun* run)override - { - if (OnlyImageOrObject(run)) - { - CopyFrom(replacedRuns, run->runs); - return; - } + void INativeWindowListener::LeftButtonUp(const NativeWindowMouseInfo& info) + { + } - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->style, currentResolvedStyle); + void INativeWindowListener::LeftButtonDoubleClick(const NativeWindowMouseInfo& info) + { + } - if (currentResolvedStyle.style.fontFamily == resolvedStyle.style.fontFamily) run->style->face = Nullable(); - if (currentResolvedStyle.style.size == resolvedStyle.style.size) run->style->size = Nullable(); - if (currentResolvedStyle.color == resolvedStyle.color) run->style->color = Nullable(); - if (currentResolvedStyle.backgroundColor == resolvedStyle.backgroundColor) run->style->backgroundColor = Nullable(); - if (currentResolvedStyle.style.bold == resolvedStyle.style.bold) run->style->bold = Nullable(); - if (currentResolvedStyle.style.italic == resolvedStyle.style.italic) run->style->italic = Nullable(); - if (currentResolvedStyle.style.underline == resolvedStyle.style.underline) run->style->underline = Nullable(); - if (currentResolvedStyle.style.strikeline == resolvedStyle.style.strikeline) run->style->strikeline = Nullable(); - if (currentResolvedStyle.style.antialias == resolvedStyle.style.antialias) run->style->antialias = Nullable(); - if (currentResolvedStyle.style.verticalAntialias == resolvedStyle.style.verticalAntialias) run->style->verticalAntialias = Nullable(); + void INativeWindowListener::RightButtonDown(const NativeWindowMouseInfo& info) + { + } - if (run->style->face) goto CONTINUE_PROCESSING; - if (run->style->size) goto CONTINUE_PROCESSING; - if (run->style->color) goto CONTINUE_PROCESSING; - if (run->style->backgroundColor) goto CONTINUE_PROCESSING; - if (run->style->bold) goto CONTINUE_PROCESSING; - if (run->style->italic) goto CONTINUE_PROCESSING; - if (run->style->underline) goto CONTINUE_PROCESSING; - if (run->style->strikeline) goto CONTINUE_PROCESSING; - if (run->style->antialias) goto CONTINUE_PROCESSING; - if (run->style->verticalAntialias) goto CONTINUE_PROCESSING; - CopyFrom(replacedRuns, run->runs); - return; + void INativeWindowListener::RightButtonUp(const NativeWindowMouseInfo& info) + { + } - CONTINUE_PROCESSING: - if (From(run->runs).Cast().First(nullptr) != nullptr) - { - for (auto subRun : run->runs) - { - if (auto styleRun = subRun.Cast()) - { - DocumentModel::MergeStyle(styleRun->style, run->style); - replacedRuns.Add(styleRun); - } - else - { - auto parentRun = CopyRun(run).Cast(); - parentRun->runs.Add(subRun); - replacedRuns.Add(parentRun); - } - } - return; - } + void INativeWindowListener::RightButtonDoubleClick(const NativeWindowMouseInfo& info) + { + } - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + void INativeWindowListener::MiddleButtonDown(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentStyleApplicationRun* run)override - { - if (OnlyImageOrObject(run)) - { - CopyFrom(replacedRuns, run->runs); - return; - } + void INativeWindowListener::MiddleButtonUp(const NativeWindowMouseInfo& info) + { + } - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->styleName, currentResolvedStyle); - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + void INativeWindowListener::MiddleButtonDoubleClick(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentHyperlinkRun* run)override - { - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->styleName, currentResolvedStyle); - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + void INativeWindowListener::HorizontalWheel(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentImageRun* run)override - { - } + void INativeWindowListener::VerticalWheel(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + void INativeWindowListener::MouseMoving(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + void INativeWindowListener::MouseEntered() + { + } + + void INativeWindowListener::MouseLeaved() + { + } + + void INativeWindowListener::KeyDown(const NativeWindowKeyInfo& info) + { + } + + void INativeWindowListener::KeyUp(const NativeWindowKeyInfo& info) + { + } + + void INativeWindowListener::Char(const NativeWindowCharInfo& info) + { + } + + bool INativeWindowListener::NeedRefresh() + { + return false; + } + + void INativeWindowListener::ForceRefresh(bool handleFailure, bool& updated, bool& failureByResized, bool& failureByLostDevice) + { + } + + void INativeWindowListener::AssignFrameConfig(const NativeWindowFrameConfig& config) + { } - using namespace document_operation_visitors; /*********************************************************************** -Merge sibling runs if they are exactly the same +INativeControllerListener ***********************************************************************/ - namespace document_operation_visitors + void INativeControllerListener::GlobalTimer() { - class MergeSiblingRunVisitor : public Object, public DocumentRun::IVisitor + } + + void INativeControllerListener::ClipboardUpdated() + { + } + + void INativeControllerListener::GlobalShortcutKeyActivated(vint id) + { + } + + void INativeControllerListener::NativeWindowCreated(INativeWindow* window) + { + } + + void INativeControllerListener::NativeWindowDestroying(INativeWindow* window) + { + } + +/*********************************************************************** +Native Window Provider +***********************************************************************/ + + class SubstitutableController; + INativeController* nativeController = nullptr; + SubstitutableController* substitutableController = nullptr; + + class SubstitutableController + : public Object + , public INativeController + , public INativeServiceSubstitution + { + public: + WString GetExecutablePath() override { - public: - Ptr nextRun; - Ptr replacedRun; + return nativeController->GetExecutablePath(); + } - void Visit(DocumentTextRun* run)override - { - if (auto sibilingRun = nextRun.Cast()) - { - run->text += sibilingRun->text; - replacedRun = run; - } - } + // Substitutable Service - void Visit(DocumentStylePropertiesRun* run)override - { - if (auto sibilingRun = nextRun.Cast()) - { - if (run->style->face != sibilingRun->style->face) return; - if (run->style->size != sibilingRun->style->size) return; - if (run->style->color != sibilingRun->style->color) return; - if (run->style->backgroundColor != sibilingRun->style->backgroundColor) return; - if (run->style->bold != sibilingRun->style->bold) return; - if (run->style->italic != sibilingRun->style->italic) return; - if (run->style->underline != sibilingRun->style->underline) return; - if (run->style->strikeline != sibilingRun->style->strikeline) return; - if (run->style->antialias != sibilingRun->style->antialias) return; - if (run->style->verticalAntialias != sibilingRun->style->verticalAntialias) return; + template + struct Substitution + { + T* service = nullptr; + bool optional = false; + bool requested = false; + bool unsubstituted = false; - CopyFrom(run->runs, sibilingRun->runs, true); - replacedRun = run; - } + void Substitute(T* _service, bool _optional) + { + CHECK_ERROR( + !requested, + L"The service cannot be substituted because it has been used." + ); + service = _service; + optional = _optional; } - void Visit(DocumentStyleApplicationRun* run)override + void Unsubstitute(T* _service) { - if (auto sibilingRun = nextRun.Cast()) + if (service == _service) { - if (run->styleName == sibilingRun->styleName) + if (requested) { - CopyFrom(run->runs, sibilingRun->runs, true); - replacedRun = run; + unsubstituted = true; } + service = nullptr; } } - void Visit(DocumentHyperlinkRun* run)override + T* GetService() { - if (auto sibilingRun = nextRun.Cast()) + CHECK_ERROR( + !unsubstituted, + L"The service cannot be used because it has been unsubstituted." + ); + requested = true; + + auto nativeService = (nativeController->*Getter)(); + if (service && (!nativeService || !optional)) { - if (run->styleName == sibilingRun->styleName && - run->normalStyleName == sibilingRun->normalStyleName && - run->activeStyleName == sibilingRun->activeStyleName && - run->reference == sibilingRun->reference) - { - CopyFrom(run->runs, sibilingRun->runs, true); - replacedRun = run; - } + return service; } - } - void Visit(DocumentImageRun* run)override - { + CHECK_ERROR( + nativeService != nullptr, + L"Required service does not exist." + ); + return nativeService; } + }; - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + // Unsubstitutable Service - void Visit(DocumentParagraphRun* run)override + template + T* GetUnsubstitutableService() + { + auto nativeService = (nativeController->*Getter)(); + CHECK_ERROR( + nativeService != nullptr, + L"Required service does not exist." + ); + return nativeService; + } + + // INativeServiceSubstitution and INativeController + +#define GET_SUBSTITUTABLE_SERVICE(NAME) \ + Substitution< \ + INative##NAME##Service, \ + &INativeController::NAME##Service \ + > substituted##NAME; \ + \ + void Substitute(INative##NAME##Service* service, bool optional) override \ + { \ + substituted##NAME.Substitute(service, optional); \ + } \ + \ + void Unsubstitute(INative##NAME##Service* service) override \ + { \ + substituted##NAME.Unsubstitute(service); \ + } \ + \ + INative##NAME##Service* NAME##Service() override \ + { \ + return substituted##NAME.GetService(); \ + } \ + + GUI_SUBSTITUTABLE_SERVICES(GET_SUBSTITUTABLE_SERVICE) +#undef GET_SUBSTITUTABLE_SERVICE + +#define GET_UNSUBSTITUTABLE_SERVICE(NAME) \ + INative##NAME##Service* NAME##Service() override \ + { \ + return GetUnsubstitutableService< \ + INative##NAME##Service, \ + &INativeController::NAME##Service \ + >(); \ + } \ + + GUI_UNSUBSTITUTABLE_SERVICES(GET_UNSUBSTITUTABLE_SERVICE) +#undef GET_UNSUBSTITUTABLE_SERVICE + }; + + INativeServiceSubstitution* GetNativeServiceSubstitution() + { + return substitutableController; + } + + INativeController* GetCurrentController() + { + return substitutableController; + } + + void SetNativeController(INativeController* controller) + { + nativeController = controller; + + if (nativeController) + { + if (!substitutableController) { + substitutableController = new SubstitutableController(); } - }; - - class MergeSiblingRunRecursivelyVisitor : public Object, public DocumentRun::IVisitor + } + else { - public: - Ptr replacedRun; - Ptr nextRun; - - void VisitContainer(DocumentContainerRun* run) + if (substitutableController) { - for (vint i = 0; i < run->runs.Count() - 1; i++) - { - auto currentRun = run->runs[i]; - auto nextRun = run->runs[i + 1]; + delete substitutableController; + substitutableController = 0; + } + } + } - MergeSiblingRunVisitor visitor; - visitor.nextRun = nextRun; - currentRun->Accept(&visitor); +/*********************************************************************** +Helper Functions +***********************************************************************/ - if (visitor.replacedRun) - { - run->runs.RemoveAt(i + 1); - run->runs[i] = visitor.replacedRun; - i--; - } - } + INativeCursor* GetCursorFromHitTest(INativeWindowListener::HitTestResult hitTestResult, INativeResourceService* resourceService) + { + switch (hitTestResult) + { + case INativeWindowListener::BorderLeft: + case INativeWindowListener::BorderRight: + return resourceService->GetSystemCursor(INativeCursor::SizeWE); + case INativeWindowListener::BorderTop: + case INativeWindowListener::BorderBottom: + return resourceService->GetSystemCursor(INativeCursor::SizeNS); + case INativeWindowListener::BorderLeftTop: + case INativeWindowListener::BorderRightBottom: + return resourceService->GetSystemCursor(INativeCursor::SizeNWSE); + case INativeWindowListener::BorderRightTop: + case INativeWindowListener::BorderLeftBottom: + return resourceService->GetSystemCursor(INativeCursor::SizeNESW); + default: + return nullptr; + } + } + } +} - for (vint i = 0; i < run->runs.Count() - 1; i++) - { - run->runs[i]->Accept(this); - } - } +/*********************************************************************** +.\PLATFORMPROVIDERS\GACGEN\GACGENCONTROLLER.CPP +***********************************************************************/ - void Visit(DocumentTextRun* run)override - { - } +using namespace vl; +using namespace vl::stream; +using namespace vl::reflection::description; +using namespace vl::presentation; - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } +class GacGenNativeController + : public Object + , public INativeController + , protected INativeCallbackService + , protected INativeResourceService + , protected INativeImageService + , protected INativeInputService +{ +public: + INativeCallbackService* CallbackService() override + { + return this; + } - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + INativeResourceService* ResourceService() override + { + return this; + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + INativeAsyncService* AsyncService() override + { + CHECK_FAIL(L"Not implemented!"); + } - void Visit(DocumentImageRun* run)override - { - } + INativeClipboardService* ClipboardService() override + { + CHECK_FAIL(L"Not implemented!"); + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + INativeImageService* ImageService() override + { + return this; + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + INativeScreenService* ScreenService() override + { + CHECK_FAIL(L"Not implemented!"); + } + + INativeWindowService* WindowService() override + { + CHECK_FAIL(L"Not implemented!"); + } + + INativeInputService* InputService() override + { + return this; + } + + INativeDialogService* DialogService() override + { + CHECK_FAIL(L"Not implemented!"); + } + + WString GetExecutablePath() override + { + CHECK_FAIL(L"Not implemented!"); + } + + //////////////////////////////////////////////////////////////////// + // INativeCallbackService + //////////////////////////////////////////////////////////////////// + + bool InstallListener(INativeControllerListener* listener) override + { + return true; + } + + bool UninstallListener(INativeControllerListener* listener) override + { + return true; + } + + INativeCallbackInvoker* Invoker() override + { + CHECK_FAIL(L"Not implemented!"); + } + + //////////////////////////////////////////////////////////////////// + // INativeResourceService + //////////////////////////////////////////////////////////////////// + + INativeCursor* GetSystemCursor(INativeCursor::SystemCursorType type) override + { + CHECK_FAIL(L"Not implemented!"); + } + + INativeCursor* GetDefaultSystemCursor() override + { + CHECK_FAIL(L"Not implemented!"); + } + + FontProperties GetDefaultFont() override + { + FontProperties font; + font.fontFamily = L"GacGen"; + font.size = 12; + font.bold = false; + font.italic = false; + font.underline = false; + font.strikeline = false; + font.antialias = false; + font.verticalAntialias = false; + return font; + } + + void SetDefaultFont(const FontProperties& value) override + { + CHECK_FAIL(L"Not implemented!"); + } + + void EnumerateFonts(collections::List& fonts) override + { + CHECK_FAIL(L"Not implemented!"); + } + + //////////////////////////////////////////////////////////////////// + // INativeImageService + //////////////////////////////////////////////////////////////////// + + class NativeImage : public Object, public INativeImage + { + protected: + INativeImageService* imageService; + MemoryStream memoryStream; + + public: + NativeImage(INativeImageService* _imageService, IStream& inputStream) + : imageService(_imageService) + { + CopyStream(inputStream, memoryStream); } - using namespace document_operation_visitors; - namespace document_editor + INativeImageService* GetImageService() override { - void ClearUnnecessaryRun(DocumentParagraphRun* run, DocumentModel* model) - { - { - ClearRunVisitor visitor; - run->Accept(&visitor); - } - { - CompressStyleRunVisitor visitor(model); - run->Accept(&visitor); - } - { - MergeSiblingRunRecursivelyVisitor visitor; - run->Accept(&visitor); - } - } + return imageService; + } + + FormatType GetFormat() override + { + CHECK_FAIL(L"Not implemented!"); + } + + vint GetFrameCount() override + { + return 0; + } + + INativeImageFrame* GetFrame(vint index) override + { + CHECK_FAIL(L"Not implemented!"); + } + + void SaveToStream(stream::IStream& imageStream, FormatType formatType) override + { + CHECK_ERROR(formatType == FormatType::Unknown, L"Not Implemented!"); + CopyStream(imageStream, memoryStream); } + }; + + Ptr CreateImageFromFile(const WString& path) override + { + FileStream imageStream(path, FileStream::ReadOnly); + if (!imageStream.IsAvailable()) return nullptr; + return Ptr(new NativeImage(this, imageStream)); + } + + Ptr CreateImageFromMemory(void* buffer, vint length) override + { + MemoryWrapperStream imageStream(buffer, length); + return Ptr(new NativeImage(this, imageStream)); + } + + Ptr CreateImageFromStream(stream::IStream& imageStream) override + { + return Ptr(new NativeImage(this, imageStream)); + } + + //////////////////////////////////////////////////////////////////// + // INativeInputService + //////////////////////////////////////////////////////////////////// + + void StartTimer() override + { + } + + void StopTimer() override + { + } + + bool IsTimerEnabled() override + { + CHECK_FAIL(L"Not implemented!"); + } + + bool IsKeyPressing(VKEY code) override + { + CHECK_FAIL(L"Not implemented!"); + } + + bool IsKeyToggled(VKEY code) override + { + CHECK_FAIL(L"Not implemented!"); + } + + WString GetKeyName(VKEY code) override + { + CHECK_FAIL(L"Not implemented!"); } + + VKEY GetKey(const WString& name) override + { + CHECK_FAIL(L"Not implemented!"); + } + + vint RegisterGlobalShortcutKey(bool ctrl, bool shift, bool alt, VKEY key) override + { + CHECK_FAIL(L"Not Implemented!"); + } + + bool UnregisterGlobalShortcutKey(vint id) override + { + CHECK_FAIL(L"Not Implemented!"); + } +}; + +extern void GuiApplicationMain(); + +int SetupGacGenNativeController() +{ + GacGenNativeController controller; + SetNativeController(&controller); + GuiApplicationMain(); + SetNativeController(nullptr); + return 0; } /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_CLONERUN.CPP +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDCONTROLLER.CPP ***********************************************************************/ namespace vl @@ -35105,2306 +34353,2272 @@ namespace vl namespace presentation { using namespace collections; - using namespace document_editor; /*********************************************************************** -Clone the current run without its children -If clonedRun field is assigned then it will be added to the cloned container run +GuiHostedController ***********************************************************************/ - namespace document_operation_visitors + NativePoint GuiHostedController::GetPointInClientSpace(NativePoint location) { - class CloneRunVisitor : public Object, public DocumentRun::IVisitor - { - public: - Ptr clonedRun; + auto windowBounds = nativeWindow->GetBounds(); + auto clientBounds = nativeWindow->GetClientBoundsInScreen(); + location.x.value += windowBounds.x1.value - clientBounds.x1.value; + location.y.value += windowBounds.y1.value - clientBounds.y1.value; + return location; + } - CloneRunVisitor(Ptr subRun) - :clonedRun(subRun) - { - } + GuiHostedWindow* GuiHostedController::HitTestInClientSpace(NativePoint location) + { + auto window = wmManager->HitTest(location); + return window ? window->id : nullptr; + } - void VisitContainer(Ptr cloned) + void GuiHostedController::UpdateHoveringWindow(Nullable location) + { + if (location) + { + hoveringLocation = location.Value(); + } + hoveringWindow = HitTestInClientSpace(hoveringLocation); + } + + void GuiHostedController::UpdateEnteringWindow(GuiHostedWindow* window) + { + if (enteringWindow != window) + { + if (enteringWindow) { - if (clonedRun) + for (auto listener : enteringWindow->listeners) { - cloned->runs.Add(clonedRun); + listener->MouseLeaved(); } - clonedRun = cloned; } - - void Visit(DocumentTextRun* run)override + enteringWindow = window; + if (enteringWindow) { - Ptr cloned = new DocumentTextRun; - cloned->text = run->text; - clonedRun = cloned; + for (auto listener : enteringWindow->listeners) + { + listener->MouseEntered(); + } } + } + } - void Visit(DocumentStylePropertiesRun* run)override - { - Ptr cloned = new DocumentStylePropertiesRun; - cloned->style = CopyStyle(run->style); - VisitContainer(cloned); - } +/*********************************************************************** +GuiHostedController::WindowManager +***********************************************************************/ - void Visit(DocumentStyleApplicationRun* run)override - { - Ptr cloned = new DocumentStyleApplicationRun; - cloned->styleName = run->styleName; + void GuiHostedController::OnOpened(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->Opened(); + } + } - VisitContainer(cloned); - } + void GuiHostedController::OnClosed(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->Closed(); + } + } - void Visit(DocumentHyperlinkRun* run)override - { - Ptr cloned = new DocumentHyperlinkRun; - cloned->styleName = run->styleName; - cloned->normalStyleName = run->normalStyleName; - cloned->activeStyleName = run->activeStyleName; - cloned->reference = run->reference; + void GuiHostedController::OnEnabled(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->Enabled(); + } + } - VisitContainer(cloned); - } + void GuiHostedController::OnDisabled(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->Disabled(); + } + } - void Visit(DocumentImageRun* run)override - { - Ptr cloned = new DocumentImageRun; - cloned->size = run->size; - cloned->baseline = run->baseline; - cloned->image = run->image; - cloned->frameIndex = run->frameIndex; - cloned->source = run->source; - clonedRun = cloned; - } + void GuiHostedController::OnGotFocus(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->GotFocus(); + } + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - Ptr cloned = new DocumentEmbeddedObjectRun; - cloned->name = run->name; - clonedRun = cloned; - } + void GuiHostedController::OnLostFocus(hosted_window_manager::Window* window) + { + window->id->BecomeFocusedWindow(); + for (auto listener : window->id->listeners) + { + listener->LostFocus(); + } + } - void Visit(DocumentParagraphRun* run)override - { - Ptr cloned = new DocumentParagraphRun; - cloned->alignment = run->alignment; + void GuiHostedController::OnActivated(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->RenderingAsActivated(); + } + } - VisitContainer(cloned); - } - }; + void GuiHostedController::OnDeactivated(hosted_window_manager::Window* window) + { + for (auto listener : window->id->listeners) + { + listener->RenderingAsDeactivated(); + } } - using namespace document_operation_visitors; /*********************************************************************** -Clone the current run with its children +GuiHostedController::INativeWindowListener ***********************************************************************/ - namespace document_operation_visitors + INativeWindowListener::HitTestResult GuiHostedController::HitTest(NativePoint location) { - class CloneRunRecursivelyVisitor : public Object, public DocumentRun::IVisitor + if (mainWindow && mainWindow->IsEnabled()) { - public: - Ptr clonedRun; - RunRangeMap& runRanges; - vint start; - vint end; - bool deepCopy; - - CloneRunRecursivelyVisitor(RunRangeMap& _runRanges, vint _start, vint _end, bool _deepCopy) - :runRanges(_runRanges) - , start(_start) - , end(_end) - , deepCopy(_deepCopy) - { - } - - void VisitContainer(DocumentContainerRun* run) + auto point = GetPointInClientSpace(location); + auto window = HitTestInClientSpace(point); + if (window == mainWindow) { - clonedRun = 0; - RunRange range = runRanges[run]; - if (range.start <= end && start <= range.end) - { - if (start <= range.start && range.end <= end && !deepCopy) - { - clonedRun = run; - } - else - { - Ptr containerRun = CopyRun(run).Cast(); - for (auto subRun : run->runs) - { - subRun->Accept(this); - if (clonedRun) - { - containerRun->runs.Add(clonedRun); - } - } - clonedRun = containerRun; - } - } + return PerformHitTest(From(mainWindow->listeners), point); } + } + return INativeWindowListener::HitTestResult::NoDecision; + } - void Visit(DocumentTextRun* run)override - { - clonedRun = 0; - RunRange range = runRanges[run]; - if (range.start textRun = new DocumentTextRun; - vint copyStart = start>range.start ? start : range.start; - vint copyEnd = endtext = run->text.Sub(copyStart - range.start, copyEnd - copyStart); - } - clonedRun = textRun; - } - } - } + void GuiHostedController::Moving(NativeRect& bounds, bool fixSizeOnly, bool draggingBorder) + { + if (mainWindow) + { + auto windowBounds = nativeWindow->GetBounds(); + auto clientBounds = nativeWindow->GetClientBoundsInScreen(); + auto w = clientBounds.Width().value - windowBounds.Width().value; + auto h = clientBounds.Height().value - windowBounds.Height().value; - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + NativeRect mainBounds; + mainBounds.x2 = bounds.Width().value - w; + mainBounds.y2 = bounds.Height().value - h; - void Visit(DocumentStyleApplicationRun* run)override + for (auto listener : mainWindow->listeners) { - VisitContainer(run); + listener->Moving(mainBounds, fixSizeOnly, draggingBorder); } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + bounds.x1.value += mainBounds.x1.value; + bounds.y1.value += mainBounds.y1.value; + bounds.x2.value = bounds.x1.value + mainBounds.Width().value + w; + bounds.y2.value = bounds.y1.value + mainBounds.Height().value + h; + } + } - void Visit(DocumentImageRun* run)override + void GuiHostedController::Moved() + { + if (mainWindow) + { + auto size = mainWindow->GetBounds().GetSize(); + auto clientSize = nativeWindow->GetClientSize(); + if (size != clientSize) { - clonedRun = 0; - RunRange range = runRanges[run]; - if (range.startSetBounds({ {},clientSize }); } + } + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - clonedRun = 0; - RunRange range = runRanges[run]; - if (range.startnativeManager->RecreateRenderTarget(nativeWindow); + wmManager->needRefresh = true; + } - void Visit(DocumentParagraphRun* run)override + for (auto hostedWindow : createdWindows) + { + for (auto listener : hostedWindow->listeners) { - VisitContainer(run); + listener->DpiChanged(preparing); } - }; + } } - using namespace document_operation_visitors; - namespace document_editor + void GuiHostedController::GotFocus() { - Ptr CopyStyle(Ptr style) + if (lastFocusedWindow) { - if (!style) return nullptr; - Ptr newStyle = new DocumentStyleProperties; - - newStyle->face = style->face; - newStyle->size = style->size; - newStyle->color = style->color; - newStyle->backgroundColor = style->backgroundColor; - newStyle->bold = style->bold; - newStyle->italic = style->italic; - newStyle->underline = style->underline; - newStyle->strikeline = style->strikeline; - newStyle->antialias = style->antialias; - newStyle->verticalAntialias = style->verticalAntialias; - - return newStyle; + lastFocusedWindow->wmWindow.Activate(); + lastFocusedWindow = nullptr; } - - Ptr CopyRun(DocumentRun* run) + else if (mainWindow) { - CloneRunVisitor visitor(0); - run->Accept(&visitor); - return visitor.clonedRun; + mainWindow->wmWindow.Activate(); } + } - Ptr CopyStyledText(List& styleRuns, const WString& text) + void GuiHostedController::LostFocus() + { + lastFocusedWindow = wmManager->activeWindow ? wmManager->activeWindow->id : nullptr; + while (wmManager->activeWindow) { - Ptr textRun = new DocumentTextRun; - textRun->text = text; + wmManager->activeWindow->Deactivate(); + } + } - CloneRunVisitor visitor(textRun); - for (vint i = styleRuns.Count() - 1; i >= 0; i--) + void GuiHostedController::BeforeClosing(bool& cancel) + { + if (mainWindow) + { + for (auto listener : mainWindow->listeners) { - styleRuns[i]->Accept(&visitor); + listener->BeforeClosing(cancel); + if (cancel) return; } - - return visitor.clonedRun; } + } - Ptr CopyRunRecursively(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end, bool deepCopy) + void GuiHostedController::AfterClosing() + { + if (mainWindow) { - CloneRunRecursivelyVisitor visitor(runRanges, start, end, deepCopy); - run->Accept(&visitor); - return visitor.clonedRun; + for (auto listener : mainWindow->listeners) + { + listener->AfterClosing(); + } } } - } -} - -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_COLLECTSTYLE.CPP -***********************************************************************/ -namespace vl -{ - namespace presentation - { - using namespace collections; + void GuiHostedController::Paint() + { + } /*********************************************************************** -Search all used style names +GuiHostedController::INativeWindowListener (GetSelectedWindow) ***********************************************************************/ - namespace document_operation_visitors + GuiHostedWindow* GuiHostedController::GetSelectedWindow_MouseDown(const NativeWindowMouseInfo& info) { - class CollectStyleNameVisitor : public Object, public DocumentRun::IVisitor + if (!capturingWindow) { - public: - List& styleNames; - - CollectStyleNameVisitor(List& _styleNames) - :styleNames(_styleNames) - { - } - - void VisitContainer(DocumentContainerRun* run) + SortedList survivedPopups; + auto current = hoveringWindow; + while (current) { - for (auto subRun : run->runs) + if (current->IsVisible() && current->GetWindowMode() != INativeWindow::Normal) { - subRun->Accept(this); + survivedPopups.Add(current); } + current = current->wmWindow.parent ? current->wmWindow.parent->id : nullptr; } - void Visit(DocumentTextRun* run)override + List closingPopups; + CopyFrom( + closingPopups, + From(wmManager->ordinaryWindowsInOrder) + .Concat(wmManager->topMostedWindowsInOrder) + .Select([](auto window) { return window->id; }) + .Where([&](auto window) { return window->GetWindowMode() != INativeWindow::Normal && !survivedPopups.Contains(window); }) + ); + for (auto popupWindow : closingPopups) { + popupWindow->Hide(false); } + } - void Visit(DocumentStylePropertiesRun* run)override + auto selectedWindow = capturingWindow ? capturingWindow : hoveringWindow; + return selectedWindow; + } + + GuiHostedWindow* GuiHostedController::GetSelectedWindow_MouseMoving(const NativeWindowMouseInfo& info) + { + UpdateHoveringWindow({ { info.x,info.y } }); + auto selectedWindow = capturingWindow ? capturingWindow : hoveringWindow; + UpdateEnteringWindow(selectedWindow); + return selectedWindow; + } + + GuiHostedWindow* GuiHostedController::GetSelectedWindow_Other(const NativeWindowMouseInfo& info) + { + auto selectedWindow = capturingWindow ? capturingWindow : hoveringWindow; + return selectedWindow; + } + +/*********************************************************************** +GuiHostedController::INativeWindowListener (PreAction) +***********************************************************************/ + + void GuiHostedController::PreAction_LeftButtonDown(const NativeWindowMouseInfo& info) + { + PreAction_MouseDown(info); + + if (!capturingWindow && !wmWindow && hoveringWindow && hoveringWindow != mainWindow && hoveringWindow->IsEnabled()) + { + auto x = info.x.value - hoveringWindow->wmWindow.bounds.x1.value; + auto y = info.y.value - hoveringWindow->wmWindow.bounds.y1.value; + auto hitTestResult = PerformHitTest(From(hoveringWindow->listeners), { {x},{y} }); + + switch (hitTestResult) { - VisitContainer(run); +#define HANDLE_HIT_TEST_RESULT(NAME)\ + case INativeWindowListener::NAME: \ + wmOperation = WindowManagerOperation::NAME; \ + break; \ + + HANDLE_HIT_TEST_RESULT(Title) + HANDLE_HIT_TEST_RESULT(BorderLeft) + HANDLE_HIT_TEST_RESULT(BorderRight) + HANDLE_HIT_TEST_RESULT(BorderTop) + HANDLE_HIT_TEST_RESULT(BorderBottom) + HANDLE_HIT_TEST_RESULT(BorderLeftTop) + HANDLE_HIT_TEST_RESULT(BorderRightBottom) + HANDLE_HIT_TEST_RESULT(BorderRightTop) + HANDLE_HIT_TEST_RESULT(BorderLeftBottom) + default:; + +#undef HANDLE_HIT_TEST_RESULT } - void Visit(DocumentStyleApplicationRun* run)override + switch (wmOperation) { - if (!styleNames.Contains(run->styleName)) + case WindowManagerOperation::None: + return; + case WindowManagerOperation::Title: + if (!hoveringWindow->GetTitleBar()) { - styleNames.Add(run->styleName); + wmOperation = WindowManagerOperation::None; + return; + } + break; + default: + if (!hoveringWindow->GetSizeBox()) + { + wmOperation = WindowManagerOperation::None; + return; } - VisitContainer(run); } - void Visit(DocumentHyperlinkRun* run)override - { - if (!styleNames.Contains(run->normalStyleName)) - { - styleNames.Add(run->normalStyleName); - } - if (!styleNames.Contains(run->activeStyleName)) - { - styleNames.Add(run->activeStyleName); - } - VisitContainer(run); - } - - void Visit(DocumentImageRun* run)override - { - } - - void Visit(DocumentEmbeddedObjectRun* run)override + wmWindow = hoveringWindow; + nativeWindow->RequireCapture(); + + switch (wmOperation) { + case WindowManagerOperation::Title: + case WindowManagerOperation::BorderLeft: + case WindowManagerOperation::BorderLeftTop: + case WindowManagerOperation::BorderLeftBottom: + wmRelative.x.value = x; + break; + case WindowManagerOperation::BorderTop: + case WindowManagerOperation::BorderBottom: + wmRelative.x.value = wmWindow->wmWindow.bounds.Width().value / 2; + break; + case WindowManagerOperation::BorderRight: + case WindowManagerOperation::BorderRightTop: + case WindowManagerOperation::BorderRightBottom: + wmRelative.x.value = wmWindow->wmWindow.bounds.Width().value - x; + break; + default:; } - void Visit(DocumentParagraphRun* run)override + switch (wmOperation) { - VisitContainer(run); + case WindowManagerOperation::Title: + case WindowManagerOperation::BorderTop: + case WindowManagerOperation::BorderLeftTop: + case WindowManagerOperation::BorderRightTop: + wmRelative.y.value = y; + break; + case WindowManagerOperation::BorderLeft: + case WindowManagerOperation::BorderRight: + wmRelative.y.value = wmWindow->wmWindow.bounds.Height().value / 2; + break; + case WindowManagerOperation::BorderBottom: + case WindowManagerOperation::BorderLeftBottom: + case WindowManagerOperation::BorderRightBottom: + wmRelative.y.value = wmWindow->wmWindow.bounds.Height().value - y; + break; + default:; } - }; + } } - using namespace document_operation_visitors; - namespace document_editor + void GuiHostedController::PreAction_MouseDown(const NativeWindowMouseInfo& info) { - void CollectStyleName(DocumentParagraphRun* run, List& styleNames) + if (!capturingWindow && !wmWindow && hoveringWindow && hoveringWindow->IsEnabled() && hoveringWindow->IsEnabledActivate()) { - CollectStyleNameVisitor visitor(styleNames); - run->Accept(&visitor); + hoveringWindow->SetActivate(); } } - } -} - -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_CUTRUN.CPP -***********************************************************************/ - -namespace vl -{ - namespace presentation - { - using namespace collections; - using namespace document_editor; - -/*********************************************************************** -Cut all runs into pieces so that a run either completely outside or inside the specified range -If a run decides that itself should be cut, then leftRun and rightRun contains new run that will be inserted before and after it -***********************************************************************/ - namespace document_operation_visitors + void GuiHostedController::PreAction_MouseMoving(const NativeWindowMouseInfo& info) { - class CutRunVisitor : public Object, public DocumentRun::IVisitor + if (!capturingWindow && !wmWindow && hoveringWindow && hoveringWindow != mainWindow && hoveringWindow->IsEnabled() && hoveringWindow->GetSizeBox()) { - public: - RunRangeMap& runRanges; - vint position; - Ptr leftRun; - Ptr rightRun; + auto x = info.x.value - hoveringWindow->wmWindow.bounds.x1.value; + auto y = info.y.value - hoveringWindow->wmWindow.bounds.y1.value; + auto hitTestResult = PerformHitTest(From(hoveringWindow->listeners), { {x},{y} }); + auto cursor = GetCursorFromHitTest(hitTestResult, ResourceService()); + if (cursor == nullptr) + { + cursor = hoveringWindow->GetWindowCursor(); + } + nativeWindow->SetWindowCursor(cursor); + } - CutRunVisitor(RunRangeMap& _runRanges, vint _position) - :runRanges(_runRanges) - , position(_position) + if (wmWindow) + { + auto oldBounds = wmWindow->wmWindow.bounds; + auto newBounds = oldBounds; + vint mouseX = info.x.value; + vint mouseY = info.y.value; + vint displayX = mainWindow->wmWindow.bounds.Width().value; + vint displayY = mainWindow->wmWindow.bounds.Height().value; + + if (mouseX < 0) + { + mouseX = 0; + } + else if (mouseX >= displayX) { + mouseX = displayX - 1; } - void VisitContainer(DocumentContainerRun* run) + if (mouseY < 0) { - vint leftCount = 0; - Ptr selectedRun; + mouseY = 0; + } + else if (mouseY >= displayY) + { + mouseY = displayY - 1; + } - for (auto subRun : run->runs) - { - RunRange range = runRanges[subRun.Obj()]; - if (range.startAccept(this); - if (leftRun && rightRun) - { - run->runs.RemoveAt(leftCount - 1); - run->runs.Insert(leftCount - 1, leftRun); - run->runs.Insert(leftCount, rightRun); - } + case WindowManagerOperation::BorderLeft: + case WindowManagerOperation::BorderLeftTop: + case WindowManagerOperation::BorderLeftBottom: + newBounds.x1.value = mouseX - wmRelative.x.value; + break; + case WindowManagerOperation::BorderRight: + case WindowManagerOperation::BorderRightTop: + case WindowManagerOperation::BorderRightBottom: + newBounds.x2.value = mouseX + wmRelative.x.value; + break; + default:; } - Ptr leftContainer = CopyRun(run).Cast(); - Ptr rightContainer = CopyRun(run).Cast(); - for (vint i = 0; iruns.Count(); i++) + switch (wmOperation) { - (iruns.Add(run->runs[i]); + case WindowManagerOperation::BorderTop: + case WindowManagerOperation::BorderLeftTop: + case WindowManagerOperation::BorderRightTop: + newBounds.y1.value = mouseY - wmRelative.y.value; + break; + case WindowManagerOperation::BorderBottom: + case WindowManagerOperation::BorderLeftBottom: + case WindowManagerOperation::BorderRightBottom: + newBounds.y2.value = mouseY + wmRelative.y.value; + break; + default:; } - leftRun = leftContainer; - rightRun = rightContainer; } - void Visit(DocumentTextRun* run)override + for (auto listener : wmWindow->listeners) { - RunRange range = runRanges[run]; - - Ptr leftText = new DocumentTextRun; - leftText->text = run->text.Sub(0, position - range.start); - - Ptr rightText = new DocumentTextRun; - rightText->text = run->text.Sub(position - range.start, range.end - position); - - leftRun = leftText; - rightRun = rightText; + listener->Moving(newBounds, false, wmOperation != WindowManagerOperation::Title); } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + wmWindow->wmWindow.SetBounds(newBounds); - void Visit(DocumentStyleApplicationRun* run)override + for (auto listener : wmWindow->listeners) { - VisitContainer(run); + listener->Moved(); } + } + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + void GuiHostedController::PreAction_Other(const NativeWindowMouseInfo& info) + { + } - void Visit(DocumentImageRun* run)override - { - leftRun = 0; - rightRun = 0; - } +/*********************************************************************** +GuiHostedController::INativeWindowListener (PostAction) +***********************************************************************/ - void Visit(DocumentEmbeddedObjectRun* run)override + void GuiHostedController::PostAction_LeftButtonUp(GuiHostedWindow* selectedWindow, const NativeWindowMouseInfo& info) + { + if (!capturingWindow && !wmWindow && selectedWindow && selectedWindow != mainWindow && selectedWindow->IsEnabled()) + { + auto x = info.x.value - hoveringWindow->wmWindow.bounds.x1.value; + auto y = info.y.value - hoveringWindow->wmWindow.bounds.y1.value; + auto hitTestResult = PerformHitTest(From(hoveringWindow->listeners), { {x},{y} }); + if (hitTestResult == INativeWindowListener::ButtonClose) { - leftRun = 0; - rightRun = 0; + hoveringWindow->Hide(true); } + } - void Visit(DocumentParagraphRun* run)override + if (wmWindow) + { + wmWindow = nullptr; + wmOperation = WindowManagerOperation::None; + nativeWindow->ReleaseCapture(); + } + } + + void GuiHostedController::PostAction_Other(GuiHostedWindow* selectedWindow, const NativeWindowMouseInfo& info) + { + } + +/*********************************************************************** +GuiHostedController::INativeWindowListener (Template) +***********************************************************************/ + + + template< + void (GuiHostedController::* PreAction)(const NativeWindowMouseInfo&), + GuiHostedWindow*(GuiHostedController::* GetSelectedWindow)(const NativeWindowMouseInfo&), + void (GuiHostedController::* PostAction)(GuiHostedWindow*, const NativeWindowMouseInfo&), + void (INativeWindowListener::* Callback)(const NativeWindowMouseInfo&) + > + void GuiHostedController::HandleMouseCallback(const NativeWindowMouseInfo& info) + { + (this->*PreAction)(info); + auto postActionWindow = hoveringWindow; + if (!wmWindow) + { + if (auto selectedWindow = (this->*GetSelectedWindow)(info)) { - VisitContainer(run); + postActionWindow = selectedWindow; + if (!selectedWindow->IsEnabled()) return; + auto adjustedInfo = info; + adjustedInfo.x.value -= selectedWindow->wmWindow.bounds.x1.value; + adjustedInfo.y.value -= selectedWindow->wmWindow.bounds.y1.value; + for (auto listener : selectedWindow->listeners) + { + (listener->*Callback)(adjustedInfo); + } } - }; + } + (this->*PostAction)(postActionWindow, info); } - using namespace document_operation_visitors; - namespace document_editor + template< + typename TInfo, + void (INativeWindowListener::* Callback)(const TInfo&) + > + void GuiHostedController::HandleKeyboardCallback(const TInfo& info) { - void CutRun(DocumentParagraphRun* run, RunRangeMap& runRanges, vint position, Ptr& leftRun, Ptr& rightRun) + if (wmManager->activeWindow && !wmWindow) { - CutRunVisitor visitor(runRanges, position); - run->Accept(&visitor); - leftRun = visitor.leftRun; - rightRun = visitor.rightRun; + auto hostedWindow = wmManager->activeWindow->id; + for (auto listener : hostedWindow->listeners) + { + (listener->*Callback)(info); + } } } - } -} /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_GETRUNRANGE.CPP +GuiHostedController::INativeWindowListener (IO Event Handling) ***********************************************************************/ -namespace vl -{ - namespace presentation - { - using namespace collections; +#define IMPLEMENT_MOUSE_CALLBACK(NAME, PREACTION, POLICY, POSTACTION) \ + void GuiHostedController::NAME(const NativeWindowMouseInfo& info) \ + { \ + HandleMouseCallback< \ + &GuiHostedController::PreAction_##PREACTION, \ + &GuiHostedController::GetSelectedWindow_##POLICY, \ + &GuiHostedController::PostAction_##POSTACTION, \ + &INativeWindowListener::NAME \ + >(info); \ + } \ + + IMPLEMENT_MOUSE_CALLBACK(LeftButtonDown, LeftButtonDown, MouseDown, Other ) + IMPLEMENT_MOUSE_CALLBACK(LeftButtonUp, Other, Other, LeftButtonUp ) + IMPLEMENT_MOUSE_CALLBACK(LeftButtonDoubleClick, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(RightButtonDown, MouseDown, MouseDown, Other ) + IMPLEMENT_MOUSE_CALLBACK(RightButtonUp, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(RightButtonDoubleClick, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(MiddleButtonDown, MouseDown, MouseDown, Other ) + IMPLEMENT_MOUSE_CALLBACK(MiddleButtonUp, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(MiddleButtonDoubleClick, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(HorizontalWheel, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(VerticalWheel, Other, Other, Other ) + IMPLEMENT_MOUSE_CALLBACK(MouseMoving, MouseMoving, MouseMoving, Other ) + +#undef IMPLEMENT_MOUSE_CALLBACK + + void GuiHostedController::MouseEntered() + { + } + + void GuiHostedController::MouseLeaved() + { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::GuiHostedController::MouseLeaved()#" + UpdateEnteringWindow(nullptr); +#undef ERROR_MESSAGE_PREFIX + } + +#define IMPLEMENT_KEY_CALLBACK(NAME, TYPE) \ + void GuiHostedController::NAME(const NativeWindow##TYPE##Info& info) \ + { \ + HandleKeyboardCallback< \ + NativeWindow##TYPE##Info, \ + &INativeWindowListener::NAME \ + >(info); \ + } \ + + IMPLEMENT_KEY_CALLBACK(KeyDown, Key) + IMPLEMENT_KEY_CALLBACK(KeyUp, Key) + IMPLEMENT_KEY_CALLBACK(Char, Char) + +#undef IMPLEMENT_KEY_CALLBACK /*********************************************************************** -Calculate range informations for each run object +GuiHostedController::INativeControllerListener ***********************************************************************/ - namespace document_operation_visitors + void GuiHostedController::GlobalTimer() { - class GetRunRangeVisitor : public Object, public DocumentRun::IVisitor - { - public: - RunRangeMap& runRanges; - vint start; + callbackService.InvokeGlobalTimer(); - GetRunRangeVisitor(RunRangeMap& _runRanges) - :runRanges(_runRanges) - , start(0) + if (hostedResourceManager && nativeWindow && nativeWindow->IsVisible()) + { + auto renderTarget = hostedResourceManager->nativeManager->GetRenderTarget(nativeWindow); + if (renderTarget->IsInHostedRendering()) { + return; } - void VisitContainer(DocumentContainerRun* run) + for (auto hostedWindow : createdWindows) { - RunRange range; - range.start = start; - for (auto subRun : run->runs) + for (auto listener : hostedWindow->listeners) { - subRun->Accept(this); + if (listener->NeedRefresh()) + { + wmManager->needRefresh = true; + goto NEED_REFRESH; + } } - range.end = start; - runRanges.Add(run, range); } - void VisitContent(DocumentContentRun* run) + if (!wmManager->needRefresh && !windowsUpdatedInLastFrame) { - RunRange range; - range.start = start; - start += run->GetRepresentationText().Length(); - range.end = start; - runRanges.Add(run, range); + return; } - void Visit(DocumentTextRun* run)override - { - VisitContent(run); - } + NEED_REFRESH: + wmManager->needRefresh = false; + windowsUpdatedInLastFrame = false; - void Visit(DocumentStylePropertiesRun* run)override + while (true) { - VisitContainer(run); - } + renderTarget->StartHostedRendering(); + bool failureByResized = false; + bool failureByLostDevice = false; - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + for (vint i = wmManager->ordinaryWindowsInOrder.Count() - 1; i >= 0; i--) + { + auto hostedWindow = wmManager->ordinaryWindowsInOrder[i]->id; + for (auto listener : hostedWindow->listeners) + { + bool updated = false; + listener->ForceRefresh(false, updated, failureByResized, failureByLostDevice); + windowsUpdatedInLastFrame |= updated; + if (failureByResized || failureByLostDevice) + { + goto STOP_RENDERING; + } + } + } + for (vint i = wmManager->topMostedWindowsInOrder.Count() - 1; i >= 0; i--) + { + auto hostedWindow = wmManager->topMostedWindowsInOrder[i]->id; + for (auto listener : hostedWindow->listeners) + { + bool updated = false; + listener->ForceRefresh(false, updated, failureByResized, failureByLostDevice); + windowsUpdatedInLastFrame |= updated; + if (failureByResized || failureByLostDevice) + { + goto STOP_RENDERING; + } + } + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + STOP_RENDERING: + switch (renderTarget->StopHostedRendering()) + { + case elements::RenderTargetFailure::LostDevice: + failureByLostDevice = true; + break; + case elements::RenderTargetFailure::ResizeWhileRendering: + failureByResized = true; + break; + default:; + } - void Visit(DocumentImageRun* run)override - { - VisitContent(run); + if (failureByLostDevice) + { + hostedResourceManager->nativeManager->RecreateRenderTarget(nativeWindow); + wmManager->needRefresh = true; + } + else if (failureByResized) + { + hostedResourceManager->nativeManager->ResizeRenderTarget(nativeWindow); + wmManager->needRefresh = true; + } + else + { + nativeWindow->RedrawContent(); + break; + } } + } + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - VisitContent(run); - } + void GuiHostedController::ClipboardUpdated() + { + callbackService.InvokeClipboardUpdated(); + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + void GuiHostedController::GlobalShortcutKeyActivated(vint id) + { + callbackService.InvokeGlobalShortcutKeyActivated(id); } - using namespace document_operation_visitors; - namespace document_editor + void GuiHostedController::NativeWindowDestroying(INativeWindow* window) { - void GetRunRange(DocumentParagraphRun* run, RunRangeMap& runRanges) + if (nativeWindow == window) { - GetRunRangeVisitor visitor(runRanges); - run->Accept(&visitor); + DestroyHostedWindowsAfterRunning(); + nativeWindow->UninstallListener(this); + nativeWindow = nullptr; } } - } -} /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_LOCALEHYPERLINK.CPP +GuiHostedController::INativeAsyncService ***********************************************************************/ -namespace vl -{ - namespace presentation - { - using namespace collections; + bool GuiHostedController::IsInMainThread(INativeWindow* window) + { + return nativeController->AsyncService()->IsInMainThread(nativeWindow); + } + + void GuiHostedController::InvokeAsync(const Func& proc) + { + return nativeController->AsyncService()->InvokeAsync(proc); + } + + void GuiHostedController::InvokeInMainThread(INativeWindow* window, const Func& proc) + { + return nativeController->AsyncService()->InvokeInMainThread(nativeWindow, proc); + } + + bool GuiHostedController::InvokeInMainThreadAndWait(INativeWindow* window, const Func& proc, vint milliseconds) + { + return nativeController->AsyncService()->InvokeInMainThreadAndWait(nativeWindow, proc, milliseconds); + } + + Ptr GuiHostedController::DelayExecute(const Func& proc, vint milliseconds) + { + return nativeController->AsyncService()->DelayExecute(proc, milliseconds); + } + + Ptr GuiHostedController::DelayExecuteInMainThread(const Func& proc, vint milliseconds) + { + return nativeController->AsyncService()->DelayExecuteInMainThread(proc, milliseconds); + } /*********************************************************************** -Get the hyperlink run that contains the specified position +GuiHostedController::INativeScreenService ***********************************************************************/ - namespace document_operation_visitors + vint GuiHostedController::GetScreenCount() { - class LocateHyperlinkVisitor : public Object, public DocumentRun::IVisitor - { - public: - Ptr package; - RunRangeMap& runRanges; - vint start; - vint end; + return 1; + } - LocateHyperlinkVisitor(RunRangeMap& _runRanges, Ptr _package, vint _start, vint _end) - :runRanges(_runRanges) - , package(_package) - , start(_start) - , end(_end) - { - } + INativeScreen* GuiHostedController::GetScreen(vint index) + { + CHECK_ERROR(index == 0, L"vl::presentation::GuiHostedController::GetScreen(vint)#Index out of range."); + return this; + } - void VisitContainer(DocumentContainerRun* run) - { - Ptr selectedRun; - for (auto subRun : run->runs) - { - RunRange range = runRanges[subRun.Obj()]; - if (range.start <= start && end <= range.end) - { - subRun->Accept(this); - break; - } - } - } + INativeScreen* GuiHostedController::GetScreen(INativeWindow* window) + { + return this; + } - void Visit(DocumentTextRun* run)override - { - } +/*********************************************************************** +GuiHostedController::INativeScreen +***********************************************************************/ - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + NativeRect GuiHostedController::GetBounds() + { + if (nativeWindow->IsCustomFrameModeEnabled()) + { + return { {},nativeWindow->GetBounds().GetSize() }; + } + else + { + return { {},nativeWindow->GetClientSize() }; + } + } - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + NativeRect GuiHostedController::GetClientBounds() + { + return { {},nativeWindow->GetClientSize() }; + } - void Visit(DocumentHyperlinkRun* run)override - { - package->hyperlinks.Add(run); - } + WString GuiHostedController::GetName() + { + return WString::Unmanaged(L"GacUI Virtual Screen"); + } - void Visit(DocumentImageRun* run)override - { - } + bool GuiHostedController::IsPrimary() + { + return true; + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + double GuiHostedController::GetScalingX() + { + return nativeController->ScreenService()->GetScreen(nativeWindow)->GetScalingX(); + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } + double GuiHostedController::GetScalingY() + { + return nativeController->ScreenService()->GetScreen(nativeWindow)->GetScalingY(); + } + +/*********************************************************************** +GuiHostedController::INativeWindowService +***********************************************************************/ + + const NativeWindowFrameConfig& GuiHostedController::GetMainWindowFrameConfig() + { + return nativeController->WindowService()->GetMainWindowFrameConfig(); + } + + const NativeWindowFrameConfig& GuiHostedController::GetNonMainWindowFrameConfig() + { + static const NativeWindowFrameConfig config = { + .MaximizedBoxOption = BoolOption::AlwaysFalse, + .MinimizedBoxOption = BoolOption::AlwaysFalse, + .CustomFrameEnabled = BoolOption::AlwaysTrue, }; + return config; } - using namespace document_operation_visitors; - namespace document_editor + INativeWindow* GuiHostedController::CreateNativeWindow(INativeWindow::WindowMode windowMode) { - Ptr LocateHyperlink(DocumentParagraphRun* run, RunRangeMap& runRanges, vint row, vint start, vint end) + auto hostedWindow = Ptr(new GuiHostedWindow(this, windowMode)); + createdWindows.Add(hostedWindow); + wmManager->RegisterWindow(&hostedWindow->wmWindow); + + callbackService.InvokeNativeWindowCreated(hostedWindow.Obj()); + if (mainWindow) { - auto package = MakePtr(); - package->row = row; - { - LocateHyperlinkVisitor visitor(runRanges, package, start, end); - run->Accept(&visitor); - } + hostedWindow->BecomeNonMainWindow(); + } + return hostedWindow.Obj(); + } - Ptr startRun, endRun; - for (auto run : package->hyperlinks) + void GuiHostedController::DestroyNativeWindow(INativeWindow* window) + { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::GuiHostedController::DestroyNativeWindow(INativeWindow*)#" + auto hostedWindow = dynamic_cast(window); + CHECK_ERROR(hostedWindow, ERROR_MESSAGE_PREFIX L"The window is not created by GuiHostedController."); + vint index = createdWindows.IndexOf(hostedWindow); + CHECK_ERROR(index != -1, ERROR_MESSAGE_PREFIX L"The window has been destroyed."); + + if (hostedWindow == enteringWindow) enteringWindow = nullptr; + if (hostedWindow == hoveringWindow) hoveringWindow = nullptr; + if (hostedWindow == lastFocusedWindow) enteringWindow = nullptr; + if (hostedWindow == capturingWindow) + { + capturingWindow->ReleaseCapture(); + } + if (hostedWindow == wmWindow) + { + wmOperation = WindowManagerOperation::None; + wmWindow = nullptr; + nativeWindow->ReleaseCapture(); + } + + for (auto listener : hostedWindow->listeners) + { + listener->Destroying(); + } + + callbackService.InvokeNativeWindowDestroying(hostedWindow); + wmManager->UnregisterWindow(&hostedWindow->wmWindow); + createdWindows.RemoveAt(index); + + UpdateHoveringWindow({}); +#undef ERROR_MESSAGE_PREFIX + } + + INativeWindow* GuiHostedController::GetMainWindow() + { + return mainWindow; + } + + INativeWindow* GuiHostedController::GetWindow(NativePoint location) + { + auto wmWindow = wmManager->HitTest(location); + return wmWindow ? wmWindow->id : nullptr; + } + + void GuiHostedController::SettingHostedWindowsBeforeRunning() + { + if (nativeWindow) + { + for (auto window : createdWindows) { - auto range = runRanges[run.Obj()]; - if (package->start == -1 || range.start < package->start) + if (window == mainWindow) { - package->start = range.start; - startRun = run; + window->BecomeMainWindow(); } - if (package->end == -1 || range.end > package->end) + else { - package->end = range.end; - endRun = run; + window->BecomeNonMainWindow(); } } - while (startRun) + if (auto screen = nativeController->ScreenService()->GetScreen(nativeWindow)) { - vint pos = runRanges[startRun.Obj()].start; - if (pos == 0) break; + auto screenBounds = screen->GetClientBounds(); + auto windowSize = nativeWindow->GetBounds().GetSize(); + nativeWindow->SetBounds({ + { + screenBounds.Left() + (screenBounds.Width() - windowSize.x) / 2, + screenBounds.Top() + (screenBounds.Height() - windowSize.y) / 2 + }, + windowSize + }); + } - auto newPackage = MakePtr(); - LocateHyperlinkVisitor visitor(runRanges, newPackage, pos - 1, pos); - run->Accept(&visitor); - if (newPackage->hyperlinks.Count() == 0) break; + wmManager->Start(&mainWindow->wmWindow); + } + } - auto newRun = newPackage->hyperlinks[0]; - if (startRun->reference != newRun->reference) break; + void GuiHostedController::DestroyHostedWindowsAfterRunning() + { + if (nativeWindow) + { + wmManager->Stop(); - auto range = runRanges[newRun.Obj()]; - package->hyperlinks.Add(newRun); - package->start = range.start; - startRun = newRun; + for (vint i = createdWindows.Count() - 1; i >= 0; i--) + { + auto hostedWindow = createdWindows[i]; + if (hostedWindow != mainWindow) + { + DestroyNativeWindow(hostedWindow.Obj()); + } } - vint length = runRanges[run].end; - while (endRun) + if (mainWindow) { - vint pos = runRanges[endRun.Obj()].end; - if (pos == length) break; - - auto newPackage = MakePtr(); - LocateHyperlinkVisitor visitor(runRanges, newPackage, pos, pos + 1); - run->Accept(&visitor); - if (newPackage->hyperlinks.Count() == 0) break; + DestroyNativeWindow(mainWindow); + mainWindow = nullptr; + } + } + } - auto newRun = newPackage->hyperlinks[0]; - if (endRun->reference != newRun->reference) break; + void GuiHostedController::Run(INativeWindow* window) + { +#define ERROR_MESSAGE_PREFIX L"vl::presentation::GuiHostedController::Run(INativeWindow*)#" + CHECK_ERROR(!mainWindow, ERROR_MESSAGE_PREFIX L"This function has been called."); + auto hostedWindow = dynamic_cast(window); + CHECK_ERROR(hostedWindow, ERROR_MESSAGE_PREFIX L"The window is not created by GuiHostedController."); + mainWindow = hostedWindow; - auto range = runRanges[newRun.Obj()]; - package->hyperlinks.Add(newRun); - package->end = range.end; - endRun = newRun; - } + SettingHostedWindowsBeforeRunning(); + wmManager->needRefresh = true; + nativeController->WindowService()->Run(nativeWindow); + CHECK_ERROR((nativeWindow == nullptr) == (mainWindow == nullptr), ERROR_MESSAGE_PREFIX L"Hosted windows should have been destroyed if the native windows is destroyed."); + DestroyHostedWindowsAfterRunning(); +#undef ERROR_MESSAGE_PREFIX + } - return package; - } + bool GuiHostedController::RunOneCycle() + { + return nativeController->WindowService()->RunOneCycle(); } - } -} /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_LOCALESTYLE.CPP +GuiHostedController ***********************************************************************/ -namespace vl -{ - namespace presentation - { - using namespace collections; + GuiHostedController::GuiHostedController(INativeController* _nativeController) + : nativeController(_nativeController) + { + wmManager = this; + nativeController->CallbackService()->InstallListener(this); + } -/*********************************************************************** -Get all container runs that contain the specified position from top to bottom -***********************************************************************/ + GuiHostedController::~GuiHostedController() + { + } - namespace document_operation_visitors + void GuiHostedController::Initialize() { - class LocateStyleVisitor : public Object, public DocumentRun::IVisitor - { - public: - List& locatedRuns; - RunRangeMap& runRanges; - vint position; - bool frontSide; +#define ERROR_MESSAGE_PREFIX L"vl::presentation::GuiHostedController()::Initialize()#" + CHECK_ERROR(!nativeWindow, ERROR_MESSAGE_PREFIX L"Initialize() has been called"); + CHECK_ERROR(!nativeWindowDestroyed, ERROR_MESSAGE_PREFIX L"Finalize() has been called."); - LocateStyleVisitor(List& _locatedRuns, RunRangeMap& _runRanges, vint _position, bool _frontSide) - :locatedRuns(_locatedRuns) - , runRanges(_runRanges) - , position(_position) - , frontSide(_frontSide) - { - } + nativeController->CallbackService()->InstallListener(this); + nativeWindow = nativeController->WindowService()->CreateNativeWindow(INativeWindow::WindowMode::Normal); + nativeWindow->InstallListener(this); +#undef ERROR_MESSAGE_PREFIX + } - void VisitContainer(DocumentContainerRun* run) - { - locatedRuns.Add(run); - Ptr selectedRun; - for (auto subRun : run->runs) - { - RunRange range = runRanges[subRun.Obj()]; - if (position == range.start) - { - if (!frontSide) - { - selectedRun = subRun; - break; - } - } - else if (position == range.end) - { - if (frontSide) - { - selectedRun = subRun; - break; - } - } - else if (range.startAccept(this); - } - } + if (nativeWindow) + { + nativeController->WindowService()->DestroyNativeWindow(nativeWindow); + } + nativeController->CallbackService()->UninstallListener(this); + nativeWindowDestroyed = true; - void Visit(DocumentTextRun* run)override - { - } +#undef ERROR_MESSAGE_PREFIX + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } +/*********************************************************************** +GuiHostedController::INativeController +***********************************************************************/ - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + INativeCallbackService* GuiHostedController::CallbackService() + { + return &callbackService; + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + INativeResourceService* GuiHostedController::ResourceService() + { + return nativeController->ResourceService(); + } - void Visit(DocumentImageRun* run)override - { - } + INativeAsyncService* GuiHostedController::AsyncService() + { + return this; + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + INativeClipboardService* GuiHostedController::ClipboardService() + { + return nativeController->ClipboardService(); + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + INativeImageService* GuiHostedController::ImageService() + { + return nativeController->ImageService(); } - using namespace document_operation_visitors; - namespace document_editor + INativeInputService* GuiHostedController::InputService() { - void LocateStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, vint position, bool frontSide, List& locatedRuns) - { - LocateStyleVisitor visitor(locatedRuns, runRanges, position, frontSide); - run->Accept(&visitor); - } + return nativeController->InputService(); + } + + INativeDialogService* GuiHostedController::DialogService() + { + // Use FakeDialogServiceBase + return nullptr; + } + + WString GuiHostedController::GetExecutablePath() + { + return nativeController->GetExecutablePath(); + } + + INativeScreenService* GuiHostedController::ScreenService() + { + return this; + } + + INativeWindowService* GuiHostedController::WindowService() + { + return this; } } } /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_REMOVECONTAINER.CPP +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDGRAPHICS.CPP ***********************************************************************/ namespace vl { namespace presentation { - using namespace collections; + namespace elements + { /*********************************************************************** -Remove some containers that intersect with the specified range -If a run decides that itself should be removed, then replacedRuns contains all runs to replace itself -RemoveHyperlinkVisitor : Remove all hyperlinks that intersect with the specified range -RemoveStyleNameVisitor : Remove all style names that intersect with the specified range -ClearStyleVisitor : Remove all styles that intersect with the specified range +GuiHostedGraphicsResourceManager ***********************************************************************/ - - namespace document_operation_visitors - { - class RemoveContainerVisitor : public Object, public DocumentRun::IVisitor + + GuiHostedGraphicsResourceManager::GuiHostedGraphicsResourceManager(GuiHostedController* _hostedController, IGuiGraphicsResourceManager* _nativeManager) + : hostedController(_hostedController) + , nativeManager(_nativeManager) { - public: - RunRangeMap& runRanges; - vint start; - vint end; - List> replacedRuns; - - RemoveContainerVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :runRanges(_runRanges) - , start(_start) - , end(_end) - { - } - - void VisitContainer(DocumentContainerRun* run) - { - for (vint i = run->runs.Count() - 1; i >= 0; i--) - { - Ptr subRun = run->runs[i]; - RunRange range = runRanges[subRun.Obj()]; - if (range.startAccept(this); - if (replacedRuns.Count() != 1 || replacedRuns[0] != subRun) - { - run->runs.RemoveAt(i); - for (vint j = 0; jruns.Insert(i + j, replacedRuns[j]); - } - i += replacedRuns.Count(); - } - } - } - replacedRuns.Clear(); - replacedRuns.Add(run); - } - - void VisitContent(DocumentContentRun* run) - { - replacedRuns.Add(run); - } - - void RemoveContainer(DocumentContainerRun* run) - { - CopyFrom(replacedRuns, run->runs); - } - - void Visit(DocumentTextRun* run)override - { - VisitContent(run); - } - - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } - - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } - - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } - - void Visit(DocumentImageRun* run)override - { - VisitContent(run); - } - - void Visit(DocumentEmbeddedObjectRun* run)override - { - VisitContent(run); - } - - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + CHECK_ERROR( + !hostedController->hostedResourceManager, + L"vl::presentation::elements::GuiHostedGraphicsResourceManager::GuiHostedGraphicsResourceManager(GuiHostedController*, IGuiGraphicsResourceManager*)#" + L"GuiHostedGraphicsResourceManager has been created for the same GuiHostedController"); + hostedController->hostedResourceManager = this; + } - class RemoveHyperlinkVisitor : public RemoveContainerVisitor + GuiHostedGraphicsResourceManager::~GuiHostedGraphicsResourceManager() { - public: - RemoveHyperlinkVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :RemoveContainerVisitor(_runRanges, _start, _end) - { - } - - void Visit(DocumentHyperlinkRun* run)override - { - RemoveContainer(run); - } - }; + hostedController->hostedResourceManager = nullptr; + } - class RemoveStyleNameVisitor : public RemoveContainerVisitor + vint GuiHostedGraphicsResourceManager::RegisterElementType(const WString& elementTypeName) { - public: - RemoveStyleNameVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :RemoveContainerVisitor(_runRanges, _start, _end) - { - } - - void Visit(DocumentStyleApplicationRun* run)override - { - RemoveContainer(run); - } - }; + return nativeManager->RegisterElementType(elementTypeName); + } - class ClearStyleVisitor : public RemoveContainerVisitor + void GuiHostedGraphicsResourceManager::RegisterRendererFactory(vint elementType, Ptr factory) { - public: - ClearStyleVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :RemoveContainerVisitor(_runRanges, _start, _end) - { - } + nativeManager->RegisterRendererFactory(elementType, factory); + } - void Visit(DocumentStylePropertiesRun* run)override - { - RemoveContainer(run); - } + IGuiGraphicsRendererFactory* GuiHostedGraphicsResourceManager::GetRendererFactory(vint elementType) + { + return nativeManager->GetRendererFactory(elementType); + } - void Visit(DocumentStyleApplicationRun* run)override - { - RemoveContainer(run); - } - }; - } - using namespace document_operation_visitors; + IGuiGraphicsRenderTarget* GuiHostedGraphicsResourceManager::GetRenderTarget(INativeWindow* window) + { + return nativeManager->GetRenderTarget(hostedController->nativeWindow); + } - namespace document_editor - { - void RemoveHyperlink(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end) + void GuiHostedGraphicsResourceManager::RecreateRenderTarget(INativeWindow* window) { - RemoveHyperlinkVisitor visitor(runRanges, start, end); - run->Accept(&visitor); } - void RemoveStyleName(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end) + void GuiHostedGraphicsResourceManager::ResizeRenderTarget(INativeWindow* window) { - RemoveStyleNameVisitor visitor(runRanges, start, end); - run->Accept(&visitor); } - void ClearStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end) + IGuiGraphicsLayoutProvider* GuiHostedGraphicsResourceManager::GetLayoutProvider() { - ClearStyleVisitor visitor(runRanges, start, end); - run->Accept(&visitor); + return nativeManager->GetLayoutProvider(); } } } } /*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_REMOVERUN.CPP +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDWINDOW.CPP ***********************************************************************/ namespace vl { namespace presentation { - using namespace collections; /*********************************************************************** -Remove text run contents with the specified range, or other content runs that intersect with the range -If a run decides that itself should be removed, then replacedRuns contains all runs to replace itself +GuiHostedWindow ***********************************************************************/ - namespace document_operation_visitors + void GuiHostedWindow::BecomeMainWindow() { - class RemoveRunVisitor : public Object, public DocumentRun::IVisitor - { - public: - RunRangeMap& runRanges; - vint start; - vint end; - List> replacedRuns; + proxy = CreateMainHostedWindowProxy(this, controller->nativeWindow); + proxy->CheckAndSyncProperties(); + } - RemoveRunVisitor(RunRangeMap& _runRanges, vint _start, vint _end) - :runRanges(_runRanges) - , start(_start) - , end(_end) - { - } + void GuiHostedWindow::BecomeNonMainWindow() + { + proxy = CreateNonMainHostedWindowProxy(this); + proxy->CheckAndSyncProperties(); + } - void VisitContainer(DocumentContainerRun* run) - { - if (start == end) return; - for (vint i = run->runs.Count() - 1; i >= 0; i--) - { - Ptr subRun = run->runs[i]; - RunRange range = runRanges[subRun.Obj()]; + void GuiHostedWindow::BecomeFocusedWindow() + { + CHECK_ERROR(&wmWindow == controller->wmManager->activeWindow, L"vl::presentation::GuiHostedWindow::BecomeFocusedWindow()#Wrong timing to call this function."); + controller->nativeWindow->SetCaretPoint(windowCaretPoint + GetRenderingOffset()); + } - vint maxStart = range.start > start ? range.start : start; - vint minEnd = range.end < end ? range.end : end; - if (maxStart < minEnd) - { - subRun->Accept(this); - if (replacedRuns.Count() == 0 || subRun != replacedRuns[0]) - { - run->runs.RemoveAt(i); - for (vint j = 0; jruns.Insert(i + j, replacedRuns[j]); - } - } - } - } - replacedRuns.Clear(); - replacedRuns.Add(run); - } + void GuiHostedWindow::BecomeHoveringWindow() + { + CHECK_ERROR(this == controller->hoveringWindow, L"vl::presentation::GuiHostedWindow::BecomeFocusedWindow()#Wrong timing to call this function."); + controller->nativeWindow->SetWindowCursor(windowCursor); + } - void Visit(DocumentTextRun* run)override - { - replacedRuns.Clear(); - RunRange range = runRanges[run]; + GuiHostedWindow::GuiHostedWindow(GuiHostedController* _controller, INativeWindow::WindowMode _windowMode) + : GuiHostedWindowData(_controller, this, _windowMode) + { + wmWindow.bounds = { {0,0},{1,1} }; + proxy = CreatePlaceholderHostedWindowProxy(this); + proxy->CheckAndSyncProperties(); + } - if (start <= range.start) - { - if (endtext = run->text.Sub(end - range.start, range.end - end); - replacedRuns.Add(run); - } - } - else - { - if (endDestroyed(); + } + } - firstRun->text = run->text.Sub(0, start - range.start); - secondRun->text = run->text.Sub(end - range.start, range.end - end); + bool GuiHostedWindow::IsActivelyRefreshing() + { + return false; + } - replacedRuns.Add(firstRun); - replacedRuns.Add(secondRun); - } - else - { - run->text = run->text.Sub(0, start - range.start); - replacedRuns.Add(run); - } - } - } + NativeSize GuiHostedWindow::GetRenderingOffset() + { + auto pos = wmWindow.bounds.LeftTop(); + return { pos.x,pos.y }; + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + Point GuiHostedWindow::Convert(NativePoint value) + { + return controller->nativeWindow->Convert(value); + } - void Visit(DocumentStyleApplicationRun* run)override - { - VisitContainer(run); - } + NativePoint GuiHostedWindow::Convert(Point value) + { + return controller->nativeWindow->Convert(value); + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + Size GuiHostedWindow::Convert(NativeSize value) + { + return controller->nativeWindow->Convert(value); + } - void Visit(DocumentImageRun* run)override - { - replacedRuns.Clear(); - } + NativeSize GuiHostedWindow::Convert(Size value) + { + return controller->nativeWindow->Convert(value); + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - replacedRuns.Clear(); - } + Margin GuiHostedWindow::Convert(NativeMargin value) + { + return controller->nativeWindow->Convert(value); + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + NativeMargin GuiHostedWindow::Convert(Margin value) + { + return controller->nativeWindow->Convert(value); } - using namespace document_operation_visitors; - namespace document_editor + NativeRect GuiHostedWindow::GetBounds() { - void RemoveRun(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end) - { - RemoveRunVisitor visitor(runRanges, start, end); - run->Accept(&visitor); - } + return wmWindow.bounds; } - } -} -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_REPLACESTYLENAME.CPP -***********************************************************************/ + void GuiHostedWindow::SetBounds(const NativeRect& bounds) + { + auto fixedBounds = proxy->FixBounds(bounds); + if (wmWindow.bounds == fixedBounds) return; + wmWindow.SetBounds(fixedBounds); + proxy->UpdateBounds(); + } -namespace vl -{ - namespace presentation - { - using namespace collections; + NativeSize GuiHostedWindow::GetClientSize() + { + return GetBounds().GetSize(); + } -/*********************************************************************** -Replace a style name with another one -***********************************************************************/ + void GuiHostedWindow::SetClientSize(NativeSize size) + { + SetBounds({ GetBounds().LeftTop(),size }); + } - namespace document_operation_visitors + NativeRect GuiHostedWindow::GetClientBoundsInScreen() { - class ReplaceStyleNameVisitor : public Object, public DocumentRun::IVisitor + return GetBounds(); + } + + WString GuiHostedWindow::GetTitle() + { + return windowTitle; + } + + void GuiHostedWindow::SetTitle(const WString& title) + { + if (windowTitle == title) return; + windowTitle = title; + proxy->UpdateTitle(); + } + + INativeCursor* GuiHostedWindow::GetWindowCursor() + { + return windowCursor; + } + + void GuiHostedWindow::SetWindowCursor(INativeCursor* cursor) + { + if (windowCursor == cursor) return; + windowCursor = cursor; + if (this == controller->hoveringWindow) { - public: - WString oldStyleName; - WString newStyleName; + controller->nativeWindow->SetWindowCursor(windowCursor); + } + } - ReplaceStyleNameVisitor(const WString& _oldStyleName, const WString& _newStyleName) - :oldStyleName(_oldStyleName) - , newStyleName(_newStyleName) - { - } + NativePoint GuiHostedWindow::GetCaretPoint() + { + return windowCaretPoint; + } - void VisitContainer(DocumentContainerRun* run) - { - for (auto subRun : run->runs) - { - subRun->Accept(this); - } - } + void GuiHostedWindow::SetCaretPoint(NativePoint point) + { + if (windowCaretPoint == point) return; + windowCaretPoint = point; + if (&wmWindow == controller->wmManager->activeWindow) + { + controller->nativeWindow->SetCaretPoint(windowCaretPoint + GetRenderingOffset()); + } + } - void Visit(DocumentTextRun* run)override - { - } + INativeWindow* GuiHostedWindow::GetParent() + { + return wmWindow.parent ? wmWindow.parent->id : nullptr; + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + void GuiHostedWindow::SetParent(INativeWindow* parent) + { + auto hostedWindow = dynamic_cast(parent); + CHECK_ERROR(!parent || hostedWindow, L"vl::presentation::GuiHostedWindow::SetParent(INativeWindow*)#The window is not created by GuiHostedController."); + auto parentWindow = hostedWindow ? &hostedWindow->wmWindow : nullptr; + if (wmWindow.parent == parentWindow) return; + wmWindow.SetParent(parentWindow); + } - void Visit(DocumentStyleApplicationRun* run)override - { - if (run->styleName == oldStyleName) run->styleName = newStyleName; - VisitContainer(run); - } + INativeWindow::WindowMode GuiHostedWindow::GetWindowMode() + { + return windowMode; + } - void Visit(DocumentHyperlinkRun* run)override - { - if (run->styleName == oldStyleName) run->styleName = newStyleName; - if (run->normalStyleName == oldStyleName) run->normalStyleName = newStyleName; - if (run->activeStyleName == oldStyleName) run->activeStyleName = newStyleName; - VisitContainer(run); - } + void GuiHostedWindow::EnableCustomFrameMode() + { + if (windowCustomFrameMode) return; + windowCustomFrameMode = true; + proxy->UpdateCustomFrameMode(); + } - void Visit(DocumentImageRun* run)override - { - } + void GuiHostedWindow::DisableCustomFrameMode() + { + if (!windowCustomFrameMode) return; + windowCustomFrameMode = false; + proxy->UpdateCustomFrameMode(); + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + bool GuiHostedWindow::IsCustomFrameModeEnabled() + { + return windowCustomFrameMode; + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + NativeMargin GuiHostedWindow::GetCustomFramePadding() + { + return controller->nativeWindow->GetCustomFramePadding(); } - using namespace document_operation_visitors; - namespace document_editor + Ptr GuiHostedWindow::GetIcon() { - void ReplaceStyleName(DocumentParagraphRun* run, const WString& oldStyleName, const WString& newStyleName) - { - ReplaceStyleNameVisitor visitor(oldStyleName, newStyleName); - run->Accept(&visitor); - } + if (windowIcon) return windowIcon; + if (controller->nativeWindow)return controller->nativeWindow->GetIcon(); + return nullptr; } - } -} -/*********************************************************************** -.\RESOURCES\GUIDOCUMENTEDITOR_SUMMERIZESTYLE.CPP -***********************************************************************/ + void GuiHostedWindow::SetIcon(Ptr icon) + { + if (windowIcon == icon) return; + windowIcon = icon; + proxy->UpdateIcon(); + } -namespace vl -{ - namespace presentation - { - using namespace collections; + INativeWindow::WindowSizeState GuiHostedWindow::GetSizeState() + { + return windowSizeState; + } - namespace document_operation_visitors + void GuiHostedWindow::Show() { + EnableActivate(); + proxy->Show(); + } -/*********************************************************************** -Calculate if all text in the specified range has some common styles -***********************************************************************/ + void GuiHostedWindow::ShowDeactivated() + { + proxy->ShowDeactivated(); + } - class SummarizeStyleVisitor : public Object, public DocumentRun::IVisitor + void GuiHostedWindow::ShowRestored() + { + proxy->ShowRestored(); + } + + void GuiHostedWindow::ShowMaximized() + { + proxy->ShowMaximized(); + } + + void GuiHostedWindow::ShowMinimized() + { + proxy->ShowMinimized(); + } + + void GuiHostedWindow::Hide(bool closeWindow) + { + bool cancel = false; + for (auto listener : listeners) { - public: - RunRangeMap& runRanges; - DocumentModel* model; - vint start; - vint end; - Ptr style; - List resolvedStyles; + listener->BeforeClosing(cancel); + if (cancel) return; + } + for (auto listener : listeners) + { + listener->AfterClosing(); + } - SummarizeStyleVisitor(RunRangeMap& _runRanges, DocumentModel* _model, vint _start, vint _end) - :runRanges(_runRanges) - , model(_model) - , start(_start) - , end(_end) - { - DocumentModel::ResolvedStyle resolvedStyle; - resolvedStyle = model->GetStyle(DocumentModel::DefaultStyleName, resolvedStyle); - resolvedStyles.Add(resolvedStyle); - } + if (closeWindow) + { + proxy->Close(); + } + else + { + proxy->Hide(); + } + } - const DocumentModel::ResolvedStyle& GetCurrentResolvedStyle() - { - return resolvedStyles[resolvedStyles.Count() - 1]; - } + bool GuiHostedWindow::IsVisible() + { + return wmWindow.visible; + } - // --------------------------------------------------------- + void GuiHostedWindow::Enable() + { + if (wmWindow.enabled) return; + wmWindow.SetEnabled(true); + proxy->UpdateEnabled(); + } - template - void SetStyleItem(Nullable DocumentStyleProperties::* dstField, T FontProperties::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - if (style.Obj()->*dstField && (style.Obj()->*dstField).Value() != src.style.*srcField) - { - style.Obj()->*dstField = Nullable(); - } - } + void GuiHostedWindow::Disable() + { + if (!wmWindow.enabled) return; + wmWindow.SetEnabled(false); + proxy->UpdateEnabled(); + } - template - void SetStyleItem(Nullable DocumentStyleProperties::* dstField, T DocumentModel::ResolvedStyle::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - if (style.Obj()->*dstField && (style.Obj()->*dstField).Value() != src.*srcField) - { - style.Obj()->*dstField = Nullable(); - } - } + bool GuiHostedWindow::IsEnabled() + { + return wmWindow.enabled; + } - void SetStyleItem(Nullable DocumentStyleProperties::* dstField, vint FontProperties::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - if (style.Obj()->*dstField) - { - auto dfs = (style.Obj()->*dstField).Value(); - if (dfs.relative || dfs.size != src.style.*srcField) - { - style.Obj()->*dstField = Nullable(); - } - } - } + void GuiHostedWindow::SetActivate() + { + EnableActivate(); + proxy->SetFocus(); + } - // --------------------------------------------------------- + bool GuiHostedWindow::IsActivated() + { + return wmWindow.active; + } - template - void OverrideStyleItem(Nullable DocumentStyleProperties::* dstField, T FontProperties::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - style.Obj()->*dstField = src.style.*srcField; - } + bool GuiHostedWindow::IsRenderingAsActivated() + { + return wmWindow.renderedAsActive; + } - template - void OverrideStyleItem(Nullable DocumentStyleProperties::* dstField, T DocumentModel::ResolvedStyle::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - style.Obj()->*dstField = src.*srcField; - } + void GuiHostedWindow::ShowInTaskBar() + { + if (windowShowInTaskBar) return; + windowShowInTaskBar = true; + proxy->UpdateShowInTaskBar(); + } - void OverrideStyleItem(Nullable DocumentStyleProperties::* dstField, vint FontProperties::* srcField) - { - const DocumentModel::ResolvedStyle& src = GetCurrentResolvedStyle(); - style.Obj()->*dstField = DocumentFontSize((double)(src.style.*srcField), false); - } + void GuiHostedWindow::HideInTaskBar() + { + if (!windowShowInTaskBar) return; + windowShowInTaskBar = false; + proxy->UpdateShowInTaskBar(); + } - // --------------------------------------------------------- + bool GuiHostedWindow::IsAppearedInTaskBar() + { + return windowShowInTaskBar; + } - void VisitContainer(DocumentContainerRun* run) - { - for (vint i = run->runs.Count() - 1; i >= 0; i--) - { - Ptr subRun = run->runs[i]; - RunRange range = runRanges[subRun.Obj()]; - if (range.startAccept(this); - } - } - } + void GuiHostedWindow::EnableActivate() + { + if (windowEnabledActivate) return; + windowEnabledActivate = true; + proxy->UpdateEnabledActivate(); + } - void Visit(DocumentTextRun* run)override - { - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - if (style) - { - SetStyleItem(&DocumentStyleProperties::face, &FontProperties::fontFamily); - SetStyleItem(&DocumentStyleProperties::size, &FontProperties::size); - SetStyleItem(&DocumentStyleProperties::color, &DocumentModel::ResolvedStyle::color); - SetStyleItem(&DocumentStyleProperties::backgroundColor, &DocumentModel::ResolvedStyle::backgroundColor); - SetStyleItem(&DocumentStyleProperties::bold, &FontProperties::bold); - SetStyleItem(&DocumentStyleProperties::italic, &FontProperties::italic); - SetStyleItem(&DocumentStyleProperties::underline, &FontProperties::underline); - SetStyleItem(&DocumentStyleProperties::strikeline, &FontProperties::strikeline); - SetStyleItem(&DocumentStyleProperties::antialias, &FontProperties::antialias); - SetStyleItem(&DocumentStyleProperties::verticalAntialias, &FontProperties::verticalAntialias); - } - else - { - style = new DocumentStyleProperties; - OverrideStyleItem(&DocumentStyleProperties::face, &FontProperties::fontFamily); - OverrideStyleItem(&DocumentStyleProperties::size, &FontProperties::size); - OverrideStyleItem(&DocumentStyleProperties::color, &DocumentModel::ResolvedStyle::color); - OverrideStyleItem(&DocumentStyleProperties::backgroundColor, &DocumentModel::ResolvedStyle::backgroundColor); - OverrideStyleItem(&DocumentStyleProperties::bold, &FontProperties::bold); - OverrideStyleItem(&DocumentStyleProperties::italic, &FontProperties::italic); - OverrideStyleItem(&DocumentStyleProperties::underline, &FontProperties::underline); - OverrideStyleItem(&DocumentStyleProperties::strikeline, &FontProperties::strikeline); - OverrideStyleItem(&DocumentStyleProperties::antialias, &FontProperties::antialias); - OverrideStyleItem(&DocumentStyleProperties::verticalAntialias, &FontProperties::verticalAntialias); - } - } + void GuiHostedWindow::DisableActivate() + { + if (!windowEnabledActivate) return; + windowEnabledActivate = false; + proxy->UpdateEnabledActivate(); + } - void Visit(DocumentStylePropertiesRun* run)override - { - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->style, currentResolvedStyle); - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + bool GuiHostedWindow::IsEnabledActivate() + { + return windowEnabledActivate; + } - void Visit(DocumentStyleApplicationRun* run)override - { - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->styleName, currentResolvedStyle); - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + bool GuiHostedWindow::RequireCapture() + { + if (controller->capturingWindow) return false; + controller->capturingWindow = this; + controller->nativeWindow->RequireCapture(); + return true; + } - void Visit(DocumentHyperlinkRun* run)override - { - const DocumentModel::ResolvedStyle& currentResolvedStyle = GetCurrentResolvedStyle(); - DocumentModel::ResolvedStyle resolvedStyle = model->GetStyle(run->styleName, currentResolvedStyle); - resolvedStyles.Add(resolvedStyle); - VisitContainer(run); - resolvedStyles.RemoveAt(resolvedStyles.Count() - 1); - } + bool GuiHostedWindow::ReleaseCapture() + { + if (controller->capturingWindow != this) return false; + controller->capturingWindow = nullptr; + controller->nativeWindow->ReleaseCapture(); + controller->UpdateEnteringWindow(controller->hoveringWindow); + return true; + } - void Visit(DocumentImageRun* run)override - { - } + bool GuiHostedWindow::IsCapturing() + { + return controller->capturingWindow == this; + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - } + bool GuiHostedWindow::GetMaximizedBox() + { + return windowMaximizedBox; + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + void GuiHostedWindow::SetMaximizedBox(bool visible) + { + if (windowMaximizedBox == visible) return; + windowMaximizedBox = visible; + proxy->UpdateMaximizedBox(); + } -/*********************************************************************** -Calculate if all text in the specified range has a common style name -***********************************************************************/ + bool GuiHostedWindow::GetMinimizedBox() + { + return windowMinimizedBox; + } - class SummarizeStyleNameVisitor : public Object, public DocumentRun::IVisitor - { - public: - RunRangeMap& runRanges; - DocumentModel* model; - vint start; - vint end; - Nullable currentStyleName; - Nullable styleName; - bool assignedStyleName = false; + void GuiHostedWindow::SetMinimizedBox(bool visible) + { + if (windowMinimizedBox == visible) return; + windowMinimizedBox = visible; + proxy->UpdateMinimizedBox(); + } - SummarizeStyleNameVisitor(RunRangeMap& _runRanges, DocumentModel* _model, vint _start, vint _end) - :runRanges(_runRanges) - , model(_model) - , start(_start) - , end(_end) - { - } + bool GuiHostedWindow::GetBorder() + { + return windowBorder; + } - void VisitContentRun(DocumentContentRun* run) - { - if (!assignedStyleName) - { - styleName = currentStyleName; - assignedStyleName = true; - } - else if (styleName && (!currentStyleName || styleName.Value() != currentStyleName.Value())) - { - styleName = Nullable(); - } - } + void GuiHostedWindow::SetBorder(bool visible) + { + if (windowBorder == visible) return; + windowBorder = visible; + proxy->UpdateBorderVisible(); + } - void VisitContainer(DocumentContainerRun* run) - { - for (vint i = run->runs.Count() - 1; i >= 0; i--) - { - Ptr subRun = run->runs[i]; - RunRange range = runRanges[subRun.Obj()]; - if (range.startAccept(this); - } - } - } + bool GuiHostedWindow::GetSizeBox() + { + return windowSizeBox; + } - void Visit(DocumentTextRun* run)override - { - VisitContentRun(run); - } + void GuiHostedWindow::SetSizeBox(bool visible) + { + if (windowSizeBox == visible) return; + windowSizeBox = visible; + proxy->UpdateSizeBox(); + } - void Visit(DocumentStylePropertiesRun* run)override - { - VisitContainer(run); - } + bool GuiHostedWindow::GetIconVisible() + { + return windowIconVisible; + } - void Visit(DocumentStyleApplicationRun* run)override - { - auto oldStyleName = currentStyleName; - currentStyleName = run->styleName; - VisitContainer(run); - currentStyleName = oldStyleName; - } + void GuiHostedWindow::SetIconVisible(bool visible) + { + if (windowIconVisible == visible) return; + windowIconVisible = visible; + proxy->UpdateIconVisible(); + } - void Visit(DocumentHyperlinkRun* run)override - { - VisitContainer(run); - } + bool GuiHostedWindow::GetTitleBar() + { + return windowTitleBar; + } - void Visit(DocumentImageRun* run)override - { - VisitContentRun(run); - } + void GuiHostedWindow::SetTitleBar(bool visible) + { + if (windowTitleBar == visible) return; + windowTitleBar = visible; + proxy->UpdateTitleBar(); + } - void Visit(DocumentEmbeddedObjectRun* run)override - { - VisitContentRun(run); - } + bool GuiHostedWindow::GetTopMost() + { + return wmWindow.topMost; + } - void Visit(DocumentParagraphRun* run)override - { - VisitContainer(run); - } - }; + void GuiHostedWindow::SetTopMost(bool topmost) + { + if (wmWindow.topMost == topmost) return; + wmWindow.SetTopMost(topmost); + proxy->UpdateTopMost(); } - using namespace document_operation_visitors; - namespace document_editor + void GuiHostedWindow::SupressAlt() { - Ptr SummarizeStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, DocumentModel* model, vint start, vint end) + controller->nativeWindow->SupressAlt(); + } + + bool GuiHostedWindow::InstallListener(INativeWindowListener* listener) + { + if (listeners.Contains(listener)) { - SummarizeStyleVisitor visitor(runRanges, model, start, end); - run->Accept(&visitor); - return visitor.style; + return false; } - - Nullable SummarizeStyleName(DocumentParagraphRun* run, RunRangeMap& runRanges, DocumentModel* model, vint start, vint end) + else { - SummarizeStyleNameVisitor visitor(runRanges, model, start, end); - run->Accept(&visitor); - return visitor.styleName; + listeners.Add(listener); + return true; } + } - template - void AggregateStyleItem(Ptr& dst, Ptr src, Nullable DocumentStyleProperties::* field) + bool GuiHostedWindow::UninstallListener(INativeWindowListener* listener) + { + if (listeners.Contains(listener)) { - if (dst.Obj()->*field && (!(src.Obj()->*field) || (dst.Obj()->*field).Value() != (src.Obj()->*field).Value())) - { - dst.Obj()->*field = Nullable(); - } + listeners.Remove(listener); + return true; } - - void AggregateStyle(Ptr& dst, Ptr src) + else { - AggregateStyleItem(dst, src, &DocumentStyleProperties::face); - AggregateStyleItem(dst, src, &DocumentStyleProperties::size); - AggregateStyleItem(dst, src, &DocumentStyleProperties::color); - AggregateStyleItem(dst, src, &DocumentStyleProperties::backgroundColor); - AggregateStyleItem(dst, src, &DocumentStyleProperties::bold); - AggregateStyleItem(dst, src, &DocumentStyleProperties::italic); - AggregateStyleItem(dst, src, &DocumentStyleProperties::underline); - AggregateStyleItem(dst, src, &DocumentStyleProperties::strikeline); - AggregateStyleItem(dst, src, &DocumentStyleProperties::antialias); - AggregateStyleItem(dst, src, &DocumentStyleProperties::verticalAntialias); + return false; } } + + void GuiHostedWindow::RedrawContent() + { + } } } - /*********************************************************************** -.\RESOURCES\GUIDOCUMENT_EDIT.CPP +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDWINDOWPROXY_MAIN.CPP ***********************************************************************/ namespace vl { namespace presentation { - using namespace collections; - using namespace document_editor; /*********************************************************************** -DocumentModel::EditRangeOperations +GuiMainHostedWindowProxy ***********************************************************************/ - bool DocumentModel::CheckEditRange(TextPos begin, TextPos end, RunRangeMap& relatedRanges) + class GuiMainHostedWindowProxy + : public Object + , public virtual IGuiHostedWindowProxy { - // check caret range - if(begin>end) return false; - if(begin.row<0 || begin.row>=paragraphs.Count()) return false; - if(end.row<0 || end.row>=paragraphs.Count()) return false; + protected: + GuiHostedWindowData* data = nullptr; + INativeWindow* nativeWindow = nullptr; - // determine run ranges - GetRunRange(paragraphs[begin.row].Obj(), relatedRanges); - if(begin.row!=end.row) + public: + + GuiMainHostedWindowProxy(GuiHostedWindowData* _data, INativeWindow* _nativeWindow) + : data(_data) + , nativeWindow(_nativeWindow) { - GetRunRange(paragraphs[end.row].Obj(), relatedRanges); } - - // check caret range - RunRange beginRange=relatedRanges[paragraphs[begin.row].Obj()]; - RunRange endRange=relatedRanges[paragraphs[end.row].Obj()]; - if(begin.column<0 || begin.column>beginRange.end) return false; - if(end.column<0 || end.column>endRange.end) return false; - return true; - } + void CheckAndSyncProperties() override + { + for (auto listener : data->listeners) + { + listener->AssignFrameConfig(data->controller->WindowService()->GetMainWindowFrameConfig()); + } - Ptr DocumentModel::CopyDocument(TextPos begin, TextPos end, bool deepCopy) - { - // check caret range - RunRangeMap runRanges; - if(!CheckEditRange(begin, end, runRanges)) return nullptr; + if (!data->wmWindow.visible) + { + data->wmWindow.Show(); + } + data->wmWindow.SetBounds(FixBounds(data->wmWindow.bounds)); - // get ranges - for(vint i=begin.row+1;i newDocument=new DocumentModel; + /*********************************************************************** + Visible Properties + ***********************************************************************/ - // copy paragraphs - if(begin.row==end.row) + NativeRect FixBounds(const NativeRect& bounds) override { - newDocument->paragraphs.Add(CopyRunRecursively(paragraphs[begin.row].Obj(), runRanges, begin.column, end.column, deepCopy).Cast()); + return { {},bounds.GetSize() }; } - else + + void UpdateBounds() override { - for(vint i=begin.row;i<=end.row;i++) - { - Ptr paragraph=paragraphs[i]; - RunRange range=runRanges[paragraph.Obj()]; - if(i==begin.row) - { - newDocument->paragraphs.Add(CopyRunRecursively(paragraph.Obj(), runRanges, begin.column, range.end, deepCopy).Cast()); - } - else if(i==end.row) - { - newDocument->paragraphs.Add(CopyRunRecursively(paragraph.Obj(), runRanges, range.start, end.column, deepCopy).Cast()); - } - else if(deepCopy) - { - newDocument->paragraphs.Add(CopyRunRecursively(paragraph.Obj(), runRanges, range.start, range.end, deepCopy).Cast()); - } - else - { - newDocument->paragraphs.Add(paragraph); - } - } + nativeWindow->SetClientSize(data->wmWindow.bounds.GetSize()); } - // copy styles - List styleNames; - for (auto paragraph : newDocument->paragraphs) + void UpdateTitle() override { - CollectStyleName(paragraph.Obj(), styleNames); + nativeWindow->SetTitle(data->windowTitle); } - for(vint i=0;istyles.Keys().Contains(styleName)) - { - Ptr style=styles[styleName]; - if(deepCopy) - { - Ptr newStyle=new DocumentStyle; - newStyle->parentStyleName=style->parentStyleName; - newStyle->styles=CopyStyle(style->styles); - newStyle->resolvedStyles=CopyStyle(style->resolvedStyles); - newDocument->styles.Add(styleName, newStyle); - } - else - { - newDocument->styles.Add(styleName, style); - } - - if(!styleNames.Contains(style->parentStyleName)) - { - styleNames.Add(style->parentStyleName); - } - } + nativeWindow->SetIcon(data->windowIcon); } - return newDocument; - } + void UpdateEnabled() override + { + // Disabling the main window will not disable the native window + // otherwise the whole application is disabled + } - Ptr DocumentModel::CopyDocument() - { - // determine run ranges - RunRangeMap runRanges; - vint lastParagraphIndex = paragraphs.Count() - 1; - GetRunRange(paragraphs[lastParagraphIndex].Obj(), runRanges); - - TextPos begin(0, 0); - TextPos end(lastParagraphIndex, runRanges[paragraphs[lastParagraphIndex].Obj()].end); - return CopyDocument(begin, end, true); - } + void UpdateTopMost() override + { + nativeWindow->SetTopMost(data->wmWindow.topMost); + } - bool DocumentModel::CutParagraph(TextPos position) - { - if(position.row<0 || position.row>=paragraphs.Count()) return false; + /*********************************************************************** + Border Properties + ***********************************************************************/ - Ptr paragraph=paragraphs[position.row]; - RunRangeMap runRanges; - Ptr leftRun, rightRun; + void UpdateMaximizedBox() override + { + nativeWindow->SetMaximizedBox(data->windowMaximizedBox); + } - GetRunRange(paragraph.Obj(), runRanges); - CutRun(paragraph.Obj(), runRanges, position.column, leftRun, rightRun); + void UpdateMinimizedBox() override + { + nativeWindow->SetMinimizedBox(data->windowMinimizedBox); + } - CopyFrom(paragraph->runs, leftRun.Cast()->runs); - CopyFrom(paragraph->runs, rightRun.Cast()->runs, true); - - return true; - } + void UpdateBorderVisible() override + { + nativeWindow->SetBorder(data->windowBorder); + } - bool DocumentModel::CutEditRange(TextPos begin, TextPos end) - { - // check caret range - if(begin>end) return false; - if(begin.row<0 || begin.row>=paragraphs.Count()) return false; - if(end.row<0 || end.row>=paragraphs.Count()) return false; + void UpdateSizeBox() override + { + nativeWindow->SetSizeBox(data->windowSizeBox); + } - // cut paragraphs - CutParagraph(begin); - if(begin!=end) + void UpdateIconVisible() override { - CutParagraph(end); + nativeWindow->SetIconVisible(data->windowIconVisible); } - return true; - } - bool DocumentModel::EditContainer(TextPos begin, TextPos end, const Func& editor) - { - if(begin==end) return false; + void UpdateTitleBar() override + { + nativeWindow->SetTitleBar(data->windowTitleBar); + } - // cut paragraphs - if(!CutEditRange(begin, end)) return false; + /*********************************************************************** + Behavior Properties + ***********************************************************************/ - // check caret range - RunRangeMap runRanges; - if(!CheckEditRange(begin, end, runRanges)) return false; + void UpdateShowInTaskBar() override + { + if (data->windowShowInTaskBar) + { + nativeWindow->ShowInTaskBar(); + } + else + { + nativeWindow->HideInTaskBar(); + } + } - // edit container - if(begin.row==end.row) + void UpdateEnabledActivate() override { - editor(paragraphs[begin.row].Obj(), runRanges, begin.column, end.column); + // In hosted mode, the native window is always activatable } - else + + void UpdateCustomFrameMode() override { - for(vint i=begin.row;i<=end.row;i++) + if (data->windowCustomFrameMode) { - Ptr paragraph=paragraphs[i]; - if(begin.rowEnableCustomFrameMode(); + } + else + { + nativeWindow->DisableCustomFrameMode(); } } - // clear paragraphs - for(vint i=begin.row;i<=end.row;i++) + /*********************************************************************** + Show/Hide/Focus + + In hosted mode, the main window is never closed. + Closing the main window causes the native window to be closed. + ***********************************************************************/ + + void Show() override { - ClearUnnecessaryRun(paragraphs[i].Obj(), this); + data->wmWindow.Activate(); + nativeWindow->Show(); } - return true; - } + void ShowDeactivated() override + { + data->wmWindow.Deactivate(); + nativeWindow->ShowDeactivated(); + } -/*********************************************************************** -DocumentModel::EditRun -***********************************************************************/ + void ShowRestored() override + { + nativeWindow->ShowRestored(); + } - vint DocumentModel::EditRun(TextPos begin, TextPos end, Ptr replaceToModel, bool copy) - { - // check caret range - RunRangeMap runRanges; - if(!CheckEditRange(begin, end, runRanges)) return -1; + void ShowMaximized() override + { + nativeWindow->ShowMaximized(); + } - auto model = replaceToModel; - if (copy) + void ShowMinimized() override { - model = replaceToModel->CopyDocument(); + nativeWindow->ShowMinimized(); } - // calculate new names for the model's styles to prevent conflicting - List oldNames, newNames; - CopyFrom(oldNames, model->styles.Keys()); - CopyFrom(newNames, model->styles.Keys()); - for(vint i=0;istyles.Keys().Contains(newName)) - { - newNames[i]=newName; - break; - } - } - } + nativeWindow->Hide(false); } - // rename model's styles - typedef Pair NamePair; - for (auto name : From(oldNames).Pairwise(newNames)) + void Close() override { - model->RenameStyle(name.key, name.value); + nativeWindow->Hide(true); } - for (auto name : newNames) + + void SetFocus() override { - if((name.Length()==0 || name[0]!=L'#') && !styles.Keys().Contains(name)) - { - styles.Add(name, model->styles[name]); - } + data->wmWindow.Activate(); + nativeWindow->SetActivate(); } + }; - // edit runs - Array> runs; - CopyFrom(runs, model->paragraphs); - return EditRunNoCopy(begin, end, runs); +/*********************************************************************** +Helper +***********************************************************************/ + + Ptr CreateMainHostedWindowProxy(GuiHostedWindowData* data, INativeWindow* nativeWindow) + { + return Ptr(new GuiMainHostedWindowProxy(data, nativeWindow)); } + } +} - vint DocumentModel::EditRunNoCopy(TextPos begin, TextPos end, const collections::Array>& runs) +/*********************************************************************** +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDWINDOWPROXY_NONMAIN.CPP +***********************************************************************/ + +namespace vl +{ + namespace presentation + { + +/*********************************************************************** +GuiNonMainHostedWindowProxy +***********************************************************************/ + + class GuiNonMainHostedWindowProxy + : public Object + , public virtual IGuiHostedWindowProxy { - // check caret range - RunRangeMap runRanges; - if(!CheckEditRange(begin, end, runRanges)) return -1; + protected: + GuiHostedWindowData* data = nullptr; + bool calledAssignFrameConfig = false; - // remove unnecessary paragraphs - if(begin.row!=end.row) + public: + + GuiNonMainHostedWindowProxy(GuiHostedWindowData* _data) + : data(_data) { - for(vint i=end.row-1;i>begin.row;i--) + } + + void EnsureNoSystemBorderWhenVisible() + { + if (!data->wmWindow.visible) return; + if (data->windowCustomFrameMode) return; + CHECK_ERROR( + !data->windowBorder && !data->windowSizeBox && !data->windowTitleBar, + L"vl::presentation::GuiNonMainHostedWindowProxy::EnsureNoSystemBorder()#" + L"For non main window in hosted mode, when custom frame mode is disabled" + L"the following window features should also be disabled: " + L"Border, SizeBox, TitleBar."); + } + + void CallAssignFrameConfigIfNever() + { + if (calledAssignFrameConfig) return; + for (auto listener : data->listeners) { - paragraphs.RemoveAt(i); + listener->AssignFrameConfig(data->controller->WindowService()->GetNonMainWindowFrameConfig()); + calledAssignFrameConfig = true; } - end.row=begin.row+1; } - // remove unnecessary runs and ensure begin.row!=end.row - if(begin.row==end.row) + void CheckAndSyncProperties() override { - RemoveRun(paragraphs[begin.row].Obj(), runRanges, begin.column, end.column); + data->windowMaximizedBox = false; + data->windowMinimizedBox = false; + CallAssignFrameConfigIfNever(); + EnsureNoSystemBorderWhenVisible(); + } - Ptr leftRun, rightRun; - runRanges.Clear(); - GetRunRange(paragraphs[begin.row].Obj(), runRanges); - CutRun(paragraphs[begin.row].Obj(), runRanges, begin.column, leftRun, rightRun); + /*********************************************************************** + Visible Properties + ***********************************************************************/ - paragraphs.RemoveAt(begin.row); - paragraphs.Insert(begin.row, leftRun.Cast()); - paragraphs.Insert(begin.row+1, rightRun.Cast()); - end.row=begin.row+1; - } - else + NativeRect FixBounds(const NativeRect& bounds) override { - RemoveRun(paragraphs[begin.row].Obj(), runRanges, begin.column, runRanges[paragraphs[begin.row].Obj()].end); - RemoveRun(paragraphs[end.row].Obj(), runRanges, 0, end.column); + auto w = bounds.Width().value; + auto h = bounds.Height().value; + if (w < 1) w = 1; + if (h < 1) h = 1; + return { bounds.LeftTop(),{{w},{h}} }; } - // insert new paragraphs - Ptr beginParagraph=paragraphs[begin.row]; - Ptr endParagraph=paragraphs[end.row]; - if(runs.Count()==0) + void UpdateBounds() override { - CopyFrom(beginParagraph->runs, endParagraph->runs, true); - paragraphs.RemoveAt(end.row); } - else if(runs.Count()==1) + + void UpdateTitle() override { - CopyFrom(beginParagraph->runs, runs[0]->runs, true); - CopyFrom(beginParagraph->runs, endParagraph->runs, true); - paragraphs.RemoveAt(end.row); } - else - { - Ptr newBeginRuns=runs[0]; - CopyFrom(beginParagraph->runs, newBeginRuns->runs, true); - - Ptr newEndRuns=runs[runs.Count()-1]; - if (newEndRuns->alignment) - { - endParagraph->alignment = newEndRuns->alignment; - } - for(vint i=0;iruns.Count();i++) - { - endParagraph->runs.Insert(i, newEndRuns->runs[i]); - } - for(vint i=1;i& text) - { - // check caret range - RunRangeMap runRanges; - if(!CheckEditRange(begin, end, runRanges)) return -1; + /*********************************************************************** + Border Properties + ***********************************************************************/ - // calcuate the position to get the text style - TextPos stylePosition; - if(frontSide) + void UpdateMaximizedBox() override { - stylePosition=begin; - if(stylePosition.column==0) + if (data->windowMaximizedBox) { - frontSide=false; + data->windowMaximizedBox = false; } } - else + + void UpdateMinimizedBox() override { - stylePosition=end; - if(stylePosition.column==runRanges[paragraphs[end.row].Obj()].end) + if (data->windowMinimizedBox) { - frontSide=true; + data->windowMinimizedBox = false; } } - // copy runs that contains the target style for new text - List styleRuns; - LocateStyle(paragraphs[stylePosition.row].Obj(), runRanges, stylePosition.column, frontSide, styleRuns); + void UpdateBorderVisible() override + { + EnsureNoSystemBorderWhenVisible(); + } - // create paragraphs - Array> runs(text.Count()); - for(vint i=0;i paragraph=CopyStyledText(styleRuns, text[i]); - runs[i]=paragraph.Cast(); + EnsureNoSystemBorderWhenVisible(); } - // replace the paragraphs - return EditRunNoCopy(begin, end, runs); - } + void UpdateIconVisible() override + { + } -/*********************************************************************** -DocumentModel::EditStyle -***********************************************************************/ + void UpdateTitleBar() override + { + EnsureNoSystemBorderWhenVisible(); + } - bool DocumentModel::EditStyle(TextPos begin, TextPos end, Ptr style) - { - return EditContainer(begin, end, [=](DocumentParagraphRun* paragraph, RunRangeMap& runRanges, vint start, vint end) + /*********************************************************************** + Behavior Properties + ***********************************************************************/ + + void UpdateShowInTaskBar() override { - AddStyle(paragraph, runRanges, start, end, style); - }); - } + } -/*********************************************************************** -DocumentModel::EditImage -***********************************************************************/ + void UpdateEnabledActivate() override + { + } - Ptr DocumentModel::EditImage(TextPos begin, TextPos end, Ptr image) - { - Ptr imageRun=new DocumentImageRun; - imageRun->size=image->GetImage()->GetFrame(image->GetFrameIndex())->GetSize(); - imageRun->baseline=imageRun->size.y; - imageRun->image=image->GetImage(); - imageRun->frameIndex=image->GetFrameIndex(); + void UpdateCustomFrameMode() override + { + EnsureNoSystemBorderWhenVisible(); + } - Ptr paragraph=new DocumentParagraphRun; - paragraph->runs.Add(imageRun); + /*********************************************************************** + Show/Hide/Focus - Array> runs(1); - runs[0]=paragraph; - if(EditRunNoCopy(begin, end, runs)) + Maximized and Minimized are not available + ***********************************************************************/ + + void Show() override { - return imageRun; + CallAssignFrameConfigIfNever(); + data->wmWindow.SetVisible(true); + data->wmWindow.Activate(); + EnsureNoSystemBorderWhenVisible(); } - else + + void ShowDeactivated() override { - return 0; + CallAssignFrameConfigIfNever(); + data->wmWindow.SetVisible(true); + EnsureNoSystemBorderWhenVisible(); } - } -/*********************************************************************** -DocumentModel::EditHyperlink -***********************************************************************/ + void ShowRestored() override + { + Show(); + } - bool DocumentModel::EditHyperlink(vint paragraphIndex, vint begin, vint end, const WString& reference, const WString& normalStyleName, const WString& activeStyleName) - { - auto package = GetHyperlink(paragraphIndex, begin, end); - if (package->hyperlinks.Count() > 0) + void ShowMaximized() override { - for (auto run : package->hyperlinks) - { - run->reference = reference; - run->normalStyleName = normalStyleName; - run->activeStyleName = activeStyleName; - run->styleName = normalStyleName; - } - return true; + Show(); } - else if (RemoveHyperlink(paragraphIndex, begin, end)) + + void ShowMinimized() override { - CutEditRange(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end)); + Show(); + } - RunRangeMap runRanges; - Ptr paragraph = paragraphs[paragraphIndex]; - GetRunRange(paragraph.Obj(), runRanges); - AddHyperlink(paragraph.Obj(), runRanges, begin, end, reference, normalStyleName, activeStyleName); + void Hide() override + { + data->wmWindow.SetVisible(false); + } - ClearUnnecessaryRun(paragraph.Obj(), this); - return true; + void Close() override + { + Hide(); } - return false; - } - bool DocumentModel::RemoveHyperlink(vint paragraphIndex, vint begin, vint end) - { - RunRangeMap runRanges; - if (!CheckEditRange(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), runRanges)) return 0; + void SetFocus() override + { + data->wmWindow.Activate(); + } + }; - auto paragraph = paragraphs[paragraphIndex]; - auto package = LocateHyperlink(paragraph.Obj(), runRanges, paragraphIndex, begin, end); - document_editor::RemoveHyperlink(paragraph.Obj(), runRanges, package->start, package->end); - ClearUnnecessaryRun(paragraph.Obj(), this); - return true; - } +/*********************************************************************** +Helper +***********************************************************************/ - Ptr DocumentModel::GetHyperlink(vint paragraphIndex, vint begin, vint end) + Ptr CreateNonMainHostedWindowProxy(GuiHostedWindowData* data) { - RunRangeMap runRanges; - if (!CheckEditRange(TextPos(paragraphIndex, begin), TextPos(paragraphIndex, end), runRanges)) return 0; - - auto paragraph = paragraphs[paragraphIndex]; - return LocateHyperlink(paragraph.Obj(), runRanges, paragraphIndex, begin, end); + return Ptr(new GuiNonMainHostedWindowProxy(data)); } + } +} /*********************************************************************** -DocumentModel::EditStyleName +.\PLATFORMPROVIDERS\HOSTED\GUIHOSTEDWINDOWPROXY_PLACEHOLDER.CPP ***********************************************************************/ - bool DocumentModel::EditStyleName(TextPos begin, TextPos end, const WString& styleName) +namespace vl +{ + namespace presentation + { + +/*********************************************************************** +GuiPlaceholderHostedWindowProxy +***********************************************************************/ + + class GuiPlaceholderHostedWindowProxy + : public Object + , public virtual IGuiHostedWindowProxy { - return EditContainer(begin, end, [=](DocumentParagraphRun* paragraph, RunRangeMap& runRanges, vint start, vint end) + protected: + GuiHostedWindowData* data = nullptr; + + public: + + GuiPlaceholderHostedWindowProxy(GuiHostedWindowData* _data) + : data(_data) { - AddStyleName(paragraph, runRanges, start, end, styleName); - }); - } + } - bool DocumentModel::RemoveStyleName(TextPos begin, TextPos end) - { - return EditContainer(begin, end, [=](DocumentParagraphRun* paragraph, RunRangeMap& runRanges, vint start, vint end) + void CheckAndSyncProperties() override { - document_editor::RemoveStyleName(paragraph, runRanges, start, end); - }); - } + } - bool DocumentModel::RenameStyle(const WString& oldStyleName, const WString& newStyleName) - { - vint index=styles.Keys().IndexOf(oldStyleName); - if(index==-1) return false; - if(styles.Keys().Contains(newStyleName)) return false; + /*********************************************************************** + Visible Properties + ***********************************************************************/ - Ptr style=styles.Values()[index]; - styles.Remove(oldStyleName); - styles.Add(newStyleName, style); + NativeRect FixBounds(const NativeRect& bounds) override + { + return bounds; + } - for (auto subStyle : styles.Values()) + void UpdateBounds() override { - if(subStyle->parentStyleName==oldStyleName) - { - subStyle->parentStyleName=newStyleName; - } } - for (auto paragraph : paragraphs) + void UpdateTitle() override { - ReplaceStyleName(paragraph.Obj(), oldStyleName, newStyleName); } - return true; - } -/*********************************************************************** -DocumentModel::ClearStyle -***********************************************************************/ + void UpdateIcon() override + { + } - bool DocumentModel::ClearStyle(TextPos begin, TextPos end) - { - return EditContainer(begin, end, [=](DocumentParagraphRun* paragraph, RunRangeMap& runRanges, vint start, vint end) + void UpdateEnabled() override { - document_editor::ClearStyle(paragraph, runRanges, start, end); - }); - } + } -/*********************************************************************** -DocumentModel::ClearStyle -***********************************************************************/ + void UpdateTopMost() override + { + } - Ptr DocumentModel::SummarizeStyle(TextPos begin, TextPos end) - { - Ptr style; - RunRangeMap runRanges; + /*********************************************************************** + Border Properties + ***********************************************************************/ - if (begin == end) goto END_OF_SUMMERIZING; + void UpdateMaximizedBox() override + { + } - // check caret range - if (!CheckEditRange(begin, end, runRanges)) return nullptr; + void UpdateMinimizedBox() override + { + } - // Summarize container - if (begin.row == end.row) + void UpdateBorderVisible() override { - style = document_editor::SummarizeStyle(paragraphs[begin.row].Obj(), runRanges, this, begin.column, end.column); } - else + + void UpdateSizeBox() override { - for (vint i = begin.row; i <= end.row; i++) - { - Ptr paragraph = paragraphs[i]; - if (begin.row < i && i < end.row) - { - GetRunRange(paragraph.Obj(), runRanges); - } - RunRange range = runRanges[paragraph.Obj()]; - Ptr paragraphStyle; - if (i == begin.row) - { - paragraphStyle = document_editor::SummarizeStyle(paragraph.Obj(), runRanges, this, begin.column, range.end); - } - else if (i == end.row) - { - paragraphStyle = document_editor::SummarizeStyle(paragraph.Obj(), runRanges, this, range.start, end.column); - } - else - { - paragraphStyle = document_editor::SummarizeStyle(paragraph.Obj(), runRanges, this, range.start, range.end); - } + } - if (!style) - { - style = paragraphStyle; - } - else if (paragraphStyle) - { - AggregateStyle(style, paragraphStyle); - } - } + void UpdateIconVisible() override + { } - END_OF_SUMMERIZING: - if (!style) + void UpdateTitleBar() override { - style = new DocumentStyleProperties; } - return style; - } - Nullable DocumentModel::SummarizeStyleName(TextPos begin, TextPos end) - { - if (begin == end) return {}; + /*********************************************************************** + Behavior Properties + ***********************************************************************/ - // check caret range - RunRangeMap runRanges; - if (!CheckEditRange(begin, end, runRanges)) return {}; + void UpdateShowInTaskBar() override + { + } - // Summarize container - Nullable styleName; + void UpdateEnabledActivate() override + { + } - if (begin.row == end.row) + void UpdateCustomFrameMode() override { - styleName = document_editor::SummarizeStyleName(paragraphs[begin.row].Obj(), runRanges, this, begin.column, end.column); } - else + + /*********************************************************************** + Show/Hide/Focus + ***********************************************************************/ + + void Show() override { - for (vint i = begin.row; i <= end.row; i++) - { - Ptr paragraph = paragraphs[i]; - if (begin.row < i && i < end.row) - { - GetRunRange(paragraph.Obj(), runRanges); - } - RunRange range = runRanges[paragraph.Obj()]; - Nullable newStyleName; - if (i == begin.row) - { - newStyleName = document_editor::SummarizeStyleName(paragraph.Obj(), runRanges, this, begin.column, range.end); - } - else if (i == end.row) - { - newStyleName = document_editor::SummarizeStyleName(paragraph.Obj(), runRanges, this, range.start, end.column); - } - else - { - newStyleName = document_editor::SummarizeStyleName(paragraph.Obj(), runRanges, this, range.start, end.column); - } + CHECK_FAIL(L"vl::presentation::GuiPlaceholderHostedWindowProxy::Show()#This function should not be called."); + } - if (i == begin.row) - { - styleName = newStyleName; - } - else if (!styleName || !newStyleName || styleName.Value() != newStyleName.Value()) - { - styleName = Nullable(); - } - } + void ShowDeactivated() override + { + CHECK_FAIL(L"vl::presentation::GuiPlaceholderHostedWindowProxy::ShowDeactivated()#This function should not be called."); } - return styleName; - } - Nullable DocumentModel::SummarizeParagraphAlignment(TextPos begin, TextPos end) - { - bool left = false; - bool center = false; - bool right = false; + void ShowRestored() override + { + CHECK_FAIL(L"vl::presentation::GuiPlaceholderHostedWindowProxy::ShowRestored()#This function should not be called."); + } - RunRangeMap runRanges; - if (!CheckEditRange(begin, end, runRanges)) return {}; + void ShowMaximized() override + { + CHECK_FAIL(L"vl::presentation::GuiPlaceholderHostedWindowProxy::ShowMaximized()#This function should not be called."); + } - for (vint i = begin.row; i <= end.row; i++) + void ShowMinimized() override { - auto paragraph = paragraphs[i]; - if (paragraph->alignment) - { - switch (paragraph->alignment.Value()) - { - case Alignment::Left: - left = true; - break; - case Alignment::Center: - center = true; - break; - case Alignment::Right: - right = true; - break; - } - } - else - { - left = true; - } + CHECK_FAIL(L"vl::presentation::GuiPlaceholderHostedWindowProxy::ShowMinimized()#This function should not be called."); } - if (left && !center && !right) return Alignment::Left; - if (!left && center && !right) return Alignment::Center; - if (!left && !center && right) return Alignment::Right; - return {}; - } - } -} + void Hide() override + { + } + void Close() override + { + } + + void SetFocus() override + { + } + }; /*********************************************************************** -.\RESOURCES\GUIDOCUMENT_LOAD.CPP +Helper +***********************************************************************/ + + Ptr CreatePlaceholderHostedWindowProxy(GuiHostedWindowData* data) + { + return Ptr(new GuiPlaceholderHostedWindowProxy(data)); + } + } +} + +/*********************************************************************** +.\RESOURCES\GUIDOCUMENT.CPP ***********************************************************************/ namespace vl @@ -37414,3043 +36628,17865 @@ namespace vl using namespace collections; using namespace glr::xml; using namespace regex; + using namespace stream; /*********************************************************************** -document_operation_visitors::DeserializeNodeVisitor +DocumentFontSize +***********************************************************************/ + + DocumentFontSize DocumentFontSize::Parse(const WString& value) + { + if (value.Length() > 0 && value[value.Length() - 1] == L'x') + { + return DocumentFontSize(wtof(value.Left(value.Length() - 1)), true); + } + else + { + return DocumentFontSize(wtof(value), false); + } + } + + WString DocumentFontSize::ToString()const + { + return ftow(size) + (relative ? L"x" : L""); + } + +/*********************************************************************** +DocumentImageRun +***********************************************************************/ + + const wchar_t* DocumentImageRun::RepresentationText=L"[Image]"; + const wchar_t* DocumentEmbeddedObjectRun::RepresentationText=L"[EmbeddedObject]"; + +/*********************************************************************** +ExtractTextVisitor ***********************************************************************/ namespace document_operation_visitors { - class DeserializeNodeVisitor : public XmlNode::IVisitor + class ExtractTextVisitor : public Object, public DocumentRun::IVisitor { public: - Ptr model; - Ptr container; - vint paragraphIndex; - Ptr resource; - Ptr resolver; - Regex regexAttributeApply; - GuiResourceError::List& errors; - - DeserializeNodeVisitor(Ptr _model, Ptr _paragraph, vint _paragraphIndex, Ptr _resource, Ptr _resolver, GuiResourceError::List& _errors) - :model(_model) - , container(_paragraph) - , paragraphIndex(_paragraphIndex) - , resource(_resource) - , resolver(_resolver) - , regexAttributeApply(L"/{@([^{}]+)/}") - , errors(_errors) - { - } + stream::TextWriter& writer; + bool skipNonTextContent; - void PrintText(const WString& text) + ExtractTextVisitor(stream::TextWriter& _writer, bool _skipNonTextContent) + :writer(_writer) + ,skipNonTextContent(_skipNonTextContent) { - Ptr run = new DocumentTextRun; - run->text = text; - container->runs.Add(run); } - void Visit(XmlText* node)override + void VisitContainer(DocumentContainerRun* run) { - PrintText(node->content.value); + for (auto subRun : run->runs) + { + subRun->Accept(this); + } } - void Visit(XmlCData* node)override + void VisitContent(DocumentContentRun* run) { - PrintText(node->content.value); + writer.WriteString(run->GetRepresentationText()); } - void Visit(XmlComment* node)override + void Visit(DocumentTextRun* run)override { + VisitContent(run); } - void Visit(XmlElement* node)override + void Visit(DocumentStylePropertiesRun* run)override { - Ptr createdContainer; - bool useTemplateInfo = false; - XmlElement* subNodeContainer = node; - - if (node->name.value == L"br") - { - PrintText(L"\r\n"); - } - else if (node->name.value == L"sp") - { - PrintText(L" "); - } - else if (node->name.value == L"tab") - { - PrintText(L"\t"); - } - else if (node->name.value == L"img") - { - Ptr run = new DocumentImageRun; - run->baseline = -1; - - if (Ptr source = XmlGetAttribute(node, L"source")) - { - run->source = source->value.value; - WString protocol, path; - if (IsResourceUrl(run->source, protocol, path)) - { - Ptr imageData = resolver->ResolveResource(protocol, path).Cast(); - if (imageData) - { - run->image = imageData->GetImage(); - } - if (run->image && run->image->GetFrameCount() > 0) - { - run->size = run->image->GetFrame(0)->GetSize(); - run->frameIndex = 0; - } - } - - for (auto att : node->attributes) - { - if (att->name.value == L"width") - { - run->size.x = wtoi(att->value.value); - } - else if (att->name.value == L"height") - { - run->size.y = wtoi(att->value.value); - } - else if (att->name.value == L"baseline") - { - run->baseline = wtoi(att->value.value); - } - else if (att->name.value == L"frameIndex") - { - run->frameIndex = wtoi(att->value.value); - } - else if (att->name.value != L"source") - { - errors.Add(GuiResourceError({ {resource},att->name.codeRange.start }, L"Unknown attribute in : \"" + att->name.value + L"\".")); - } - } - - container->runs.Add(run); - } - else - { - errors.Add(GuiResourceError({ {resource},node->codeRange.start }, L"Attribute \"source\" is missing in .")); - } - } - else if (node->name.value == L"object") - { - Ptr run = new DocumentEmbeddedObjectRun; - run->baseline = -1; - - if (auto name = XmlGetAttribute(node, L"name")) - { - run->name = name->value.value; - container->runs.Add(run); - } - else - { - errors.Add(GuiResourceError({ {resource},node->codeRange.start }, L"The \"name\" attribute in is missing.")); - } - } - else if (node->name.value == L"font") - { - Ptr run = new DocumentStylePropertiesRun(); - Ptr sp = new DocumentStyleProperties; - run->style = sp; - - for (auto att : node->attributes) - { - if (att->name.value == L"face") - { - sp->face = att->value.value; - } - else if (att->name.value == L"size") - { - sp->size = DocumentFontSize::Parse(att->value.value); - } - else if (att->name.value == L"color") - { - sp->color = Color::Parse(att->value.value); - } - else if (att->name.value == L"bkcolor") - { - sp->backgroundColor = Color::Parse(att->value.value); - } - else - { - errors.Add(GuiResourceError({ {resource},att->name.codeRange.start }, L"Unknown attribute in : \"" + att->name.value + L"\".")); - } - } - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"b" || node->name.value == L"b-") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->bold = node->name.value == L"b"; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"i" || node->name.value == L"i-") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->italic = node->name.value == L"i"; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"u" || node->name.value == L"u-") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->underline = node->name.value == L"u"; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"s" || node->name.value == L"s-") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->strikeline = node->name.value == L"s"; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"ha") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->antialias = true; - run->style->verticalAntialias = false; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"va") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->antialias = true; - run->style->verticalAntialias = true; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"na") - { - Ptr run = new DocumentStylePropertiesRun(); - run->style = new DocumentStyleProperties; - run->style->antialias = false; - run->style->verticalAntialias = false; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"div") - { - if (Ptr att = XmlGetAttribute(node, L"style")) - { - WString styleName = att->value.value; - - Ptr run = new DocumentStyleApplicationRun; - run->styleName = styleName; - container->runs.Add(run); - createdContainer = run; - } - else - { - createdContainer = container; - } - } - else if (node->name.value == L"a") - { - Ptr run = new DocumentHyperlinkRun; - run->normalStyleName = L"#NormalLink"; - run->activeStyleName = L"#ActiveLink"; - if (Ptr att = XmlGetAttribute(node, L"normal")) - { - run->normalStyleName = att->value.value; - } - if (Ptr att = XmlGetAttribute(node, L"active")) - { - run->activeStyleName = att->value.value; - } - if (Ptr att = XmlGetAttribute(node, L"href")) - { - run->reference = att->value.value; - } - run->styleName = run->normalStyleName; - container->runs.Add(run); - createdContainer = run; - } - else if (node->name.value == L"p") - { - for (auto sub : node->subNodes) - { - sub->Accept(this); - } - } - else - { - if (node->name.value != L"nop") - { - errors.Add(GuiResourceError({ {resource},node->codeRange.start }, L"Unknown element in

: \"" + node->name.value + L"\".")); - } - for (auto sub : node->subNodes) - { - sub->Accept(this); - } - } - - if (createdContainer) - { - Ptr oldContainer = container; - container = createdContainer; - for (auto subNode : subNodeContainer->subNodes) - { - subNode->Accept(this); - } - container = oldContainer; - } + VisitContainer(run); } - void Visit(XmlInstruction* node)override + void Visit(DocumentStyleApplicationRun* run)override { + VisitContainer(run); } - void Visit(XmlDocument* node)override + void Visit(DocumentHyperlinkRun* run)override { + VisitContainer(run); } - }; - - Ptr ParseDocumentStyle(Ptr resource, Ptr styleElement, GuiResourceError::List& errors) - { - Ptr style=new DocumentStyle; - if(Ptr parent=XmlGetAttribute(styleElement, L"parent")) + void Visit(DocumentImageRun* run)override { - style->parentStyleName=parent->value.value; + if(!skipNonTextContent) + { + VisitContent(run); + } } - Ptr sp=new DocumentStyleProperties; - style->styles=sp; - - for (auto att : XmlGetElements(styleElement)) + void Visit(DocumentEmbeddedObjectRun* run)override { - if(att->name.value==L"face") - { - sp->face=XmlGetValue(att); - } - else if(att->name.value==L"size") - { - sp->size=DocumentFontSize::Parse(XmlGetValue(att)); - } - else if(att->name.value==L"color") - { - sp->color=Color::Parse(XmlGetValue(att)); - } - else if(att->name.value==L"bkcolor") - { - sp->backgroundColor=Color::Parse(XmlGetValue(att)); - } - else if(att->name.value==L"b") - { - sp->bold=XmlGetValue(att)==L"true"; - } - else if(att->name.value==L"i") - { - sp->italic=XmlGetValue(att)==L"true"; - } - else if(att->name.value==L"u") - { - sp->underline=XmlGetValue(att)==L"true"; - } - else if(att->name.value==L"s") - { - sp->strikeline=XmlGetValue(att)==L"true"; - } - else if(att->name.value==L"antialias") - { - WString value=XmlGetValue(att); - if(value==L"horizontal" || value==L"default") - { - sp->antialias=true; - sp->verticalAntialias=false; - } - else if(value==L"no") - { - sp->antialias=false; - sp->verticalAntialias=false; - } - else if(value==L"vertical") - { - sp->antialias=true; - sp->verticalAntialias=true; - } - } - else + if(!skipNonTextContent) { - errors.Add(GuiResourceError({ {resource},att->codeRange.start }, L"Unknown element in