From 6809a9221e65f94f5d8cb701024917faafae2b1f Mon Sep 17 00:00:00 2001 From: Zihan Chen Date: Mon, 2 Apr 2018 03:16:59 -0700 Subject: [PATCH] Demo: GacUI_Layout\Responsive2 --- Tutorial/GacUI_Layout/GacUI_Layout.sln | 10 + Tutorial/GacUI_Layout/Responsive2/Main.cpp | 18 + .../Responsive2/Responsive2.vcxproj | 172 ++ .../Responsive2/Responsive2.vcxproj.filters | 41 + .../GacUI_Layout/Responsive2/UI/Images/1.png | Bin 0 -> 2011 bytes .../GacUI_Layout/Responsive2/UI/Images/2.png | Bin 0 -> 2435 bytes .../GacUI_Layout/Responsive2/UI/Images/3.png | Bin 0 -> 2100 bytes .../GacUI_Layout/Responsive2/UI/Images/4.png | Bin 0 -> 1487 bytes .../GacUI_Layout/Responsive2/UI/Images/5.png | Bin 0 -> 2332 bytes .../GacUI_Layout/Responsive2/UI/Images/6.png | Bin 0 -> 1698 bytes .../GacUI_Layout/Responsive2/UI/Images/7.png | Bin 0 -> 1601 bytes .../GacUI_Layout/Responsive2/UI/Images/8.png | Bin 0 -> 1343 bytes .../Responsive2/UI/Images/Video.png | Bin 0 -> 47458 bytes .../GacUI_Layout/Responsive2/UI/Resource.xml | 259 ++ .../GacUI_Layout/Responsive2/UI/Source/Demo.h | 15 + .../UI/Source/DemoPartialClasses.cpp | 2125 +++++++++++++++++ .../UI/Source/DemoPartialClasses.h | 804 +++++++ .../Responsive2/UI/Source/DemoReflection.cpp | 244 ++ .../Responsive2/UI/Source/DemoReflection.h | 64 + Tutorial/GacUI_Layout/UIRes/Responsive2.bin | Bin 0 -> 63400 bytes 20 files changed, 3752 insertions(+) create mode 100644 Tutorial/GacUI_Layout/Responsive2/Main.cpp create mode 100644 Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj create mode 100644 Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/4.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/6.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Resource.xml create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp create mode 100644 Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h create mode 100644 Tutorial/GacUI_Layout/UIRes/Responsive2.bin diff --git a/Tutorial/GacUI_Layout/GacUI_Layout.sln b/Tutorial/GacUI_Layout/GacUI_Layout.sln index 8b370945..3e93b69e 100644 --- a/Tutorial/GacUI_Layout/GacUI_Layout.sln +++ b/Tutorial/GacUI_Layout/GacUI_Layout.sln @@ -21,6 +21,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TableSplitter", "TableSplit EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Responsive1", "Responsive1\Responsive1.vcxproj", "{B7E80D3D-6357-484C-A98F-17B6D6ABABF5}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Responsive2", "Responsive2\Responsive2.vcxproj", "{747D66CE-7F4C-44A0-BE17-99C23C8AC55F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -79,6 +81,14 @@ Global {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|Win32.Build.0 = Release|Win32 {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|x64.ActiveCfg = Release|x64 {B7E80D3D-6357-484C-A98F-17B6D6ABABF5}.Release|x64.Build.0 = Release|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|Win32.ActiveCfg = Debug|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|Win32.Build.0 = Debug|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|x64.ActiveCfg = Debug|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Debug|x64.Build.0 = Debug|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|Win32.ActiveCfg = Release|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|Win32.Build.0 = Release|Win32 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|x64.ActiveCfg = Release|x64 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tutorial/GacUI_Layout/Responsive2/Main.cpp b/Tutorial/GacUI_Layout/Responsive2/Main.cpp new file mode 100644 index 00000000..d64c668f --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Main.cpp @@ -0,0 +1,18 @@ +#define GAC_HEADER_USE_NAMESPACE +#include "UI/Source/Demo.h" +#include + +using namespace vl::collections; +using namespace vl::stream; + +void GuiMain() +{ + { + FileStream fileStream(L"../UIRes/Responsive2.bin", FileStream::ReadOnly); + auto resource = GuiResource::LoadPrecompiledBinary(fileStream); + GetResourceManager()->SetResource(L"Resource", resource); + } + demo::MainWindow window; + window.MoveToScreenCenter(); + GetApplication()->Run(&window); +} \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj new file mode 100644 index 00000000..5a593817 --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + {96c559ca-9718-4bec-a053-28a0ab6a8ca2} + + + + 15.0 + {747D66CE-7F4C-44A0-BE17-99C23C8AC55F} + Win32Proj + Responsive2 + 10.0.16299.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + true + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + false + $(ProjectDir)..\..\..\Import;$(IncludePath) + + + + NotUsing + Level3 + Disabled + true + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + NotUsing + Level3 + Disabled + true + _DEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;_WINDOWS;%(PreprocessorDefinitions);VCZH_DEBUG_NO_REFLECTION + true + + + Windows + true + true + true + + + + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters new file mode 100644 index 00000000..6e90bb89 --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/Responsive2.vcxproj.filters @@ -0,0 +1,41 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {3de35dbb-5a4f-40c2-989f-b5fe4f9e2856} + + + + + Source Files + + + UI + + + + + Resource Files + + + + + UI + + + UI + + + \ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7e94196e4a3f7e70d2d69451a4ca2aab3cfb2673 GIT binary patch literal 2011 zcmV<12PF83P)b}NI# zm5%1a=<58=IsbFc6-p_-&ZB*;-T}{4Ki95ZYXpPAbB2b7;hKCL#65ezUolA}A>O@H5~J9UqD^@e|L zco%S{3o>a5qS5F#x_f#T21CK-g^Lzp*%m#$y`<79q$}|Ujm4&AKDA`Yl6inW9p_U5 z$dcI_@CB}l#bWH;yO(4#Nq>JoU0q!?Ha7C`>W67+Zag;}3SR*Pgb-pn0F!G#*Dln3 zdN`d<6AFb$BoZ_=HBnbrhsWc=bzGJ&Urw^S`$xd5z&K!kWdPE)s>jC0XlQ6)*|KHm zx{l*IxQ>gI6320f#$qHAiI#Xg9!jNBg|8GKU>IqS$3tstD?(`4wvFRB6|<4Hjq5n1 z)9DdS(*jJhr6;}A(9rOv*Xu3S*4E?!0+~!(o(C6bc0n9yrLR_utqY z>Z|GiEWnu#z@(E<2qCVyn&h|lUC7oao@DXi7gTlAf>DcI0C+6!`&u;c5dtZ99e{}t$hfBxBD68SndY@X|Et zI>0Z4&`tt?)q1{=3zjSg+g4bP!m?aUQ(-y^%T+W7G6bVB#y{CbawNaC5_t(Iz20oh zx-uN@xZ=LYE@%HPP%g#cquPPKfwppHh?rsELoEe-$9;bRK&eOUteJl0P-l{H>0ntC zkz2NlC0(SYh~^KWg=dh0WFi+}xilx=UKER)0g_p_<%=rgx<$)6uAm~EdGigMLyTdp*_8r4k|_9?lq-aIqbfe{!};f4c}=nC zT(Z6Uy+wth7Ij5U-T4u(ezngd3=A3!_vWZ>ES`JkFF5k_Gx+@)-Nlj5-^rBjd}5F` zpa_%#uq3Q|7}ucW&;_W9O}Y!5u~hO{M=H4ic)e0H9nep24gIX|_3T4uU3(Ma?M3KUYsMxT0UfG3$4SVg6j{4xLn@cntd z_RHB-f!pUqs}{sU1`(eRzwV)Anq4NXC{2+QcEPj&PK0>q zOq$|4*Lii8dK3u+aj8g^9lG*1Z3j)>t)#sKl=)xVa2gOg;AdjIdYRCbV4}@zCIn{z tCjakyU>YFDyX3#!QUP#}+hi}I{{Xg<1Q@pc2Ce`A002ovPDHLkV1f;O=;Z(a literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..3261efb136b53b1a49aa5b8c9f878219f69ee095 GIT binary patch literal 2435 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 B%U=Kh literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..24b8af5f560045517c5fd95c3fcd574963be6d5d GIT binary patch literal 2100 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 literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/5.png new file mode 100644 index 0000000000000000000000000000000000000000..be31f35f6acc9908e18b6205fb4338ec8713b12c GIT binary patch literal 2332 zcmV+%3FG#OP)h zRe-jrRa;tAT2(+IK%ycn1(Y_lki||QCQdTmVtdB3FL&n7T~8mJL>39HBj_hxou~7C zzw;Mm|+U{aE#+65Kn1<>E$FK^krd3R;Jez!Y@`0zW2*>Up@`Zo6A_xn*4 z1jGnov5K!D}Tm($+feu>1V zhEHJ_29{-E+cv7IQm@x3m&;5}PEsrt4IzXyH}(7!u#AwZs&sXAv2EKng2CWrB_1Ci zC!fz_+xErPm&;|U)hcRLMc4IoDwR^N7{KTEXB0&t9*@)6+4+$YOOiw`mjggmRcf^w zjYb2lu2IStF>B^4fC)HP1h8bulD`#;#c#&r@uo(jfopJOlnp`eNp-`YyDp4#JDVNKr zRTXd0i!bKKRCR_=pXT_$dzkeqoqZiFxNGrE)%E3HetE;1<-o;0n3n=V2c9 z%;*}g*NfNdrO{|yBJuVwd|nm{B;vuV+1R%Mf2fJ(NSu8```Dl_Q2bK8``C%$7gso4 z>m^B=5klCP06hKkwE; zu@aG4-LsStWrTm$53v2y_XA)En_M+bS8Eto?_#{N(w=e`UaM;M=OjrgUIcjH0ZH*> zR_MR3uCp-^%dQr@mQJN-aM4z zz&|GG=v>W2TEnswY!*;;){z-{mxb*eyfr;YxvbHwd$7tjX3ipis)Vguf7Y{lU9p9% zS1Ou6pUDu8`SAL~G=-zIL@k!}c4F!Vwp~H?%E*d=-q0Z6u%KrZKYsjGf=xkuen{ms zG+m(9RBU`C&&mWM7M<=mqGU6X%`!HSA$z7sd9uDwE2&Qbx-v3aYPj4^)p+@2bAQZD zG+xJJ`N1nwvn$Aw8`E$YKbynj7C2g&V7v;s0Fmx4(kF({dK?6xY8F~e#WosDPnx(w zDXf&qP-=|KM44Kyj$O76*;RRO=}c)FsLO+A3ysbYZ`!8o&eOwLk8o^EQ>RhaG4uu= zw}ndc-hG$ zOQWJ89rC!NkEV`HJYJm0q<|WrOF{@FNm9Og>yrL(P&`nr(*v^G@AuFa_i^1#JzTvm zf!F6JHKBqML@iYK;B*@&YP%Rbc7|}r^<;8&YH9(se2(1I(HFDB5AJ66;t}URhglP1 z06Jg@A)Je@Sdt|7mUY4K-8(wJm!1({tZPsUR2_Zz#~ z7IsFWH|n~yYbM*+e8)Yjx#^Z=*g_&XoX4fKP%dZ;47lyL$NI7Z@8>5o)6>uA&po@} zFs4gD6=(<{E?&Kti%Z@Gb3kN3`PyxZI~C;LxFojjx_c$PYukvowU8VxBIFiIS&c() z47|Mik)z*c)@@809+J2Tjp z!Qy4j$WER$ePN1qWyksbR_Cnze-^(iz~x|`*grhDYGvroSlIjO>j%a-aX5um*XUT- zgku$vu+8&R?DO#Res0az4_J~Uz4oQ+d*Y^+-}dlBS?<2~8g9L93Dv5F5R#iYCgVzC z-fu%mlBC{N0+F`x(v>~oou+B-j>O|(kJkrQdEX;XpZYG47eX}tF8~)Hm{rXK_|A_q zvqww=szM0!qceO=fH@#8X8T8BR(iqg`M#q42lx*eDG1cL&lxiS0000;J5tGNqE3YIu?hNm`$(TV`*+i__a1)r@S8w>DL{<* zn?xef-q$~{-f^9d^&2)IeM$eo0GW{tDo})-=q68k&urejxdkv6Yy3I@HRG*|gd(4- zsHmW)r-$C&Uef6_Cr_S4DaFo*ce1*D)yh)0bSn@MLWsozEX)DZ_>>tkOGidVa9x+y z)>cxf6w8+_qoT4B<@>a?tzzKp*@u8bKo0Pi3_$s^Y3qR|n{vRJon9j0L+l|(6pQVJ;*N=XnfJ3IT4VHgpv z3E`c{f(w=}U;YQ%wr5<|MJb7t66tw((nCrQDJ7GWlZ=gzNv-vw<9{8%o;`bxT88Ky z9UaA!5>FP4dpQqJ7QB&8pU3mO%<%B=^pXQ;t%G>H=G}kye8AM?Br@mWc?HA1QjCs{ z(to-al~sQN6c8*H;JQk9S=!yBm(K0hi{yd+VIRQu@ zzgU0;mGGhOzvSAE^}T4w{89UgR3tjl9~u}s$ED0=s;lC(wXdH%(vx+irv@*kPd#w- z@Xt--PLf7%SZywxy;dTM$a$wiq1CJS2>It_rfm@ouFkK$qcaqv= zO;p#^5_28;GAY)yH__Tsk6||_n>y}$BUZnuObB6IF>YDbpb#P?gt)CzZ2;{2@r!Lr zyWeSStQWRzV_O#0sU)eC!!Mpc3c%k^4B+La357xgd1zVINNHK?%8j4xdI|_XyZyCh zp^fv!drSD3{Q5Yt08}8hS0tL6OvA?a1A=_viB~5p=o>KD_v<$~lSxunSBtMeE3i$Q zwXJsqD61MQ zn(N~j0s;YLB^LDwi@|*ZtlhqXk51=Ev{*#T9O^bW2m}jyWpS-FOrMgtt{cy0v*Q-P ztd~DFF+Sc_T3SY4Yx2G(pVtKQ+DtY(3tC{Cf@oCGTxD_gr|m_4oDnPEAdaQvy#3JSoU|S9N+iM?MH}!UhfH7XSI- zpXZDN2vgjaUXfTVX3XWlaDV!(SaSC1f4n#JKsa2z+SKK#M3qajss@08vx6WsnW4+H z#B9!Vf54W9H!<}37*@!>#WydM%=id#UBQ)RCbZTRCmXwQ?frF5ytdO0CqA#S*9Cc9 zo`+-*5V1|uh=j!Xdpg#L+E_B-9XL}~zpR0%cK#=bv1kEc_g}UxPp8utEdZ^x7DA}> z`-jd0!@wIrh{D`w6jcEF#2?WBUybbEGBe@5-1^BDQD&6iHh@+Jp7iGSbMK@$;rc>| zJcUj-JJ0a^eAWPmb5H;78<(E!%DpWQuHCXq#KV<<#k4<8)}Od3#MDf7ZY}O~vMz?r zdNBIbwu(^lPywQv<42EyDX=UP!@63HP0K(SCgHF}I1=LVe|@bvm&;wcV}NTRDkG_b zYwm3`{`vNYJTtLt1qCnOuwA>ZtFqbb_@V&jL+o&${BosJ|FZIw^~=dent@3QQ}c}^ z0Mw#~$}73^V)ltwF3()pQ9Sm6oYs2wChBRegGB=@gm~e%lm6%qz@wO~w~|GNV8La@ sa8P)@zSjDd{|rkCFb@Kl^UO``~Uy|07*qoM6N<$f|1!)x&QzG literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..a82eaa20ba9db8bcde32579b079f6e3afa570bfb GIT binary patch literal 1601 zcmV-H2EO@;P)KgN$kkpICj=vd+j|lXU@;Vu8ZB+MM+$B zq|qMjnfd>3{_7kiB7B&``B1e3-dZn?A3vT#gH5msF9&|tU=%e4BnJqmD(wA$^lT0O;Db6x9IK=4nYkze;|LECQ&YlPC z{eZ0Mf^0Usb7**EcPgFg+r4KGI@Ao0j8K>?U?M|2mHcR+gO~R1-P;Se_o{qN0J9ME zCt`_x&CShRxpIZU!9hkxN4a|SD#jQNfB7&wc5dHVpRWG|kWfmgdj(iM23+T1H|Ew) zPEL|er`fV)3%Oj5p6+g%TUsz-$hK|U8M$`tY2XY{0m5|yFrjXopP#3rqk{vF9l&>e zOc)XxgEj`EHNCyPWSg>m`FuWIC=}+_6(EsJPI{h4e}6x&G^~2`wQuG8e=qCYjhA0=m4z)wAPeLC5kgeEh6{q|1|-Q9655q zbJXDU^fZCi1iGp`s00MMYK_s+F@hi{OiWCa*Bt&Ln< zcew^&?-gLxO8E3QUQYWd?`z4J`<RvyPYhZn{28x;~5Jruq7@tF(1@k>A)x zLpsG!A;*sGoit_YaQp{byZZK@t8d$rQA*u)IGm`#lXXgXT_kDcNBcE#} zmrL=JlNSKEba{lJGEXcPBeKxj-AO}c>()m;{<$9j@eL=E^4_VGimwH?!UZN$k2hz# zx?IO63?m|2P4RqdGeaW|$9{31{}ftjZ*LS; zqLlFcmwyS+0F;2>eJx-k=b;TP8A1!8QG_wygC|5ja|j5&b9^&IL_4t~-l zo^DG3aeyci7R&;3!Mi0Q&Kg~F1wa&reL4gkf-x2yfH6W)5wsQ_d3Y1W;yj)QF;CIb zQI+udlE0%U@y+j%xtT#Z^VjV!|LgyWo@QhUIbCp zC0*J!#CYak?MtuxmY*fY-aU*&*vNtindjXxiG<7%4@8)KF-ibNM52{3u(u!vm9Tsp8R7f)3$3op8cfY_eWNmEVM=u z3Ey>{OEYiZ7|A!zcYk(|2Krsc#SsS(L_jHUU6*pXjEGdhl;A0~1h9Gxh=?eq%;-PP zi~$qCIUrV}b!t;JH8rX22M(l1u9j2882IULeg{Z3;3CDBp4d+%T%>}>tLNUVb_${T z8!47Y<{hQDcEb&oQWh}4;*#Rpq*yF+>eQ*J+LlHjwInO^oHMqeu7&Z^1eOpi%pQ}? zHCaogI#_yM^Shu1VtJoVSG$brn!swFM+##tf+eyRWfdTXm4#^OaQF9RB-LR>BoL8> z+9dA9xmhe?lq?0N1(vS~L?nVW+VTC2%(ooDf|6>$iNNej(gEBSk%jlJUv~hdRGey_ z$Cv#b03{K*qZfP-01n`@vi4hQmG1)wxZCkxSAQT%zS#@Y00000NkvXXu0mjfD9ryZ literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/8.png new file mode 100644 index 0000000000000000000000000000000000000000..7766b41190c9a4cbfeb32261de1f226bbc6cdfef GIT binary patch literal 1343 zcmV-F1;F}=P)1jSOTh&ODFpcZSgY16XVrd^Y4Hp$M+IcI#>ZAh9bZ4&5ej#+VqNWN2`Rk<+Jsuxw}Vp^pz80fOa%EDAv? zmD)6v8{X!6Zr`>WZ$$c%-0(1ku>vYoMBVt!LW;MyZ{OYxSj#bfSpYR7`eTvUT}@3* z3=9k~I5^12$OtD+oIokX?nigCanpwN2`_O65Hk$JSPsDA9I(u-R>Vq-jg8@X9z8uh zWHK4LIy-4{_$vmWeA!SgmuYKjW5>Naa4ZMq`}j&Bl|o5L zcXv0b##CQ6oAnBX!qkca#NzQW+qUWN@5eH2q>?D5P)Z@CLMaIb%+AjKZJK6`WtQ?H z<*u%-&m6~@@jMTuBvMMG5C|!dQXr+IR4Oq(F)p>%%ZmSH0ru?KbJRAC!D6w9kP;!Q z#zjRSWYrrZBWDmo6h=o!%PS6`wGNZXmY;qf_>HMj30V;cQ8nxy`Gbqd)2P6XI8IXzc&cs>%6HO1qKp>rH5cv1m8?fO!Oua4Fp;f_|@Hq^NyM6=~>VQb#aT{yLfnW= z!mT>5<<)ngJat98{rZ)s0P2AfAQk|O=0?7%PtU&o%dz~fXtZTxV|`o3t#e2=qyQK@ z|2G(#3u7g`wq}&9R23@%E}TOH7zPF!Jr@ZLi!W?Z=7oL^;Mn2UO2C2k%@2I(CR?}U zqp73S#`r&2d31 zuGO(s1B=v#RU^KbWET~Jd>5l9uQKm%|BE)DsI{J51aJw6$wI^PvrE^819-LPm5KmL zT5IvI09Put_UmwUx1x}FRj@38m5^)xYj({6{s9F7MjoU>E*1a)002ovPDHLkV1hwN BemnpG literal 0 HcmV?d00001 diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png b/Tutorial/GacUI_Layout/Responsive2/UI/Images/Video.png new file mode 100644 index 0000000000000000000000000000000000000000..4488b72d98b3490e59adf05d1a835a9cd9f4119e GIT binary patch literal 47458 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 + + + + Source + ..\..\UIRes\Responsive2.bin + GacUI.h + Demo + + + + + Images/1.png + Images/2.png + Images/3.png + Images/4.png + Images/5.png + Images/6.png + Images/7.png + Images/8.png + Images/Video.png + + + + + + + + + + + cast (AccountButtonViewModel^) self.Context + + + + + + + composeType:MinSize + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + + + + + + Center + + +
+
+ + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + composeType:MinSize + composeType:MinSize + composeType:MinSize + + + composeType:Percentage percentage:1.0 + composeType:MinSize + composeType:MinSize + + + + + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.videos + demo::VideoItemTemplate + + + + + + + + composeType:Percentage percentage:1.0 + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.accounts + demo::AccountItemTemplate + + + + + + +
+
+ + + + composeType:MinSize + composeType:Percentage percentage:1.0 + + + composeType:Percentage percentage:1.0 + + + + + + + + + LimitToElementAndChildren + left:0 top:0 right:0 bottom:0 + self.accounts + demo::AccountMenuItemTemplate + + + + + + + + + +
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h new file mode 100644 index 00000000..7566a5bb --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/Demo.h @@ -0,0 +1,15 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMO +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMO + +#include "DemoPartialClasses.h" + +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp new file mode 100644 index 00000000..77ba1c2a --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.cpp @@ -0,0 +1,2125 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "Demo.h" +/* CodePack:BeginIgnore() */ +#ifndef VCZH_DEBUG_NO_REFLECTION +/* CodePack:ConditionOff(VCZH_DEBUG_NO_REFLECTION, DemoReflection.h) */ +#include "DemoReflection.h" +#endif +/* CodePack:EndIgnore() */ + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +#define GLOBAL_SYMBOL ::vl_workflow_global::Demo:: +#define GLOBAL_NAME ::vl_workflow_global::Demo::Instance(). +#define GLOBAL_OBJ &::vl_workflow_global::Demo::Instance() +#define USERIMPL(...) + +/*********************************************************************** +Global Variables +***********************************************************************/ + +BEGIN_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + vl_workflow_global::Demo instance; + INITIALIZE_GLOBAL_STORAGE_CLASS + FINALIZE_GLOBAL_STORAGE_CLASS +END_GLOBAL_STORAGE_CLASS(vl_workflow_global_Demo) + +namespace vl_workflow_global +{ +/*********************************************************************** +Global Functions +***********************************************************************/ + + Demo& Demo::Instance() + { + return Getvl_workflow_global_Demo().instance; + } + +/*********************************************************************** +Closures +***********************************************************************/ + + //------------------------------------------------------------------- + + __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::VideoViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::VideoItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::VideoViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::AccountButtonViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::AccountItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiTemplate* __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + if ([&](){ auto __vwsn_temp__ = __vwsn_viewModel_; return __vwsn_temp__.GetSharedPtr() && ::vl::__vwsn::RawPtrCast<::demo::AccountButtonViewModel>(__vwsn_temp__.GetRawPtr()) != nullptr; }()) + { + return static_cast<::vl::presentation::templates::GuiTemplate*>(new ::demo::AccountMenuItemTemplate(::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_viewModel_))); + } + } + throw ::vl::Exception(::vl::WString(L"Cannot find a matched control template to create.", false)); + } + + //------------------------------------------------------------------- + + __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->self)->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_4.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_6.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_8.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0.Obj())->SetColor(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_5.Obj())->SetImage(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetColor(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::Color>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetColor(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->GetFont(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_7.Obj())->SetFont(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->GetImage(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::vl::presentation::INativeImage>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_10.Obj())->SetImage(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->self)->GetViewModel(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(__vwsn_value_); + if ((__vwsn_old_.Obj() == __vwsn_new_.Obj())) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->self)->SetViewModel(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + ::vl::presentation::templates::GuiControlTemplate* __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const + { + { + return static_cast<::vl::presentation::templates::GuiControlTemplate*>(new ::demo::AccountButtonTemplate()); + } + } + + //------------------------------------------------------------------- + + __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + } + + void __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const + { + auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->GetText(); + auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::WString>(__vwsn_value_); + if ((__vwsn_old_ == __vwsn_new_)) + { + return; + } + ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_1)->SetText(__vwsn_new_); + } + + //------------------------------------------------------------------- + + __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetTitle(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->TitleChanged, ::vl::Func(this, &__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->TitleChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetAuthor(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->AuthorChanged, ::vl::Func(this, &__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->AuthorChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>(); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->ViewModel; } catch(...){ return ::vl::Ptr<::demo::VideoViewModel>(); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, ::vl::Func(this, &__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0.Obj())->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = ::vl::Ptr<::demo::VideoViewModel>()); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_cache_1 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected() ? ::vl::WString(L"#FFFFFF", false) : ((::vl::__vwsn::This(__vwsn_bind_cache_1)->GetState() != ::vl::presentation::controls::ButtonState::Normal) ? ::vl::WString(L"#0000FF", false) : ::vl::WString(L"#00000000", false)))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + void __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_cache_1 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + (__vwsn_bind_handler_1_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_1)->StateChanged, ::vl::Func(this, &__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_1_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + if (static_cast(__vwsn_bind_handler_1_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_1)->StateChanged, __vwsn_bind_handler_1_0); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_cache_1 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + (__vwsn_bind_handler_1_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetName(); } catch(...){ return ::vl::WString(L"", false); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Parse<::vl::presentation::Color>((::vl::__vwsn::This(__vwsn_bind_cache_0)->GetSelected() ? ::vl::WString(L"#000000", false) : ::vl::WString(L"#FFFFFF", false))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, ::vl::Func(this, &__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->SelectedChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func(this, &__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = [&](){ try{ return ::vl::__vwsn::This(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetViewModel().Obj())->GetImage(); } catch(...){ return ::vl::Ptr<::vl::presentation::INativeImage>(); } }(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0() + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, ::vl::Func(this, &__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ViewModelChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr); + this->__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>(); + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::Unbox<::vl::Ptr<::demo::AccountButtonViewModel>>(::vl::__vwsn::This(__vwsn_bind_cache_0)->GetContext()); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + void __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1) + { + this->__vwsn_bind_activator_(); + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + (__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::AccountButtonTemplate*>(nullptr); } }()); + (__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, ::vl::Func(this, &__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }()); + return true; + } + return false; + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + if (static_cast(__vwsn_bind_handler_0_0)) + { + ::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->ContextChanged, __vwsn_bind_handler_0_0); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + } + (__vwsn_bind_cache_0 = static_cast<::demo::AccountButtonTemplate*>(nullptr)); + (__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>()); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsnthis_0->ViewModel.Obj())->GetName(); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + return true; + } + return false; + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + return true; + } + return false; + } + + //------------------------------------------------------------------- + + __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0) + :__vwsnthis_0(::vl::__vwsn::This(__vwsnctorthis_0)) + { + this->__vwsn_bind_opened_ = false; + this->__vwsn_bind_closed_ = false; + } + + void __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::__vwsn_bind_activator_() + { + auto __vwsn_bind_activator_result_ = (::vl::WString(L"Welcome to GacUI Video, ", false) + ::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(16))); + ::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_)); + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Open() + { + if ((! __vwsn_bind_opened_)) + { + (__vwsn_bind_opened_ = true); + return true; + } + return false; + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Update() + { + if ((__vwsn_bind_opened_ && (! __vwsn_bind_closed_))) + { + this->__vwsn_bind_activator_(); + return true; + } + return false; + } + + bool __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription::Close() + { + if ((! __vwsn_bind_closed_)) + { + (__vwsn_bind_closed_ = true); + return true; + } + return false; + } + +} + +/*********************************************************************** +Class (::demo::AccountButtonTemplateConstructor) +***********************************************************************/ + +namespace demo +{ + void AccountButtonTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountButtonTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>())); + { + ::vl::__vwsn::This(this->self)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_0)); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiResponsiveViewComposition()); + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetVerticalAlignment(::vl::presentation::Alignment::Center); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_2)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_10 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_10)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + AccountButtonTemplateConstructor::AccountButtonTemplateConstructor() + : self(static_cast<::demo::AccountButtonTemplate*>(nullptr)) + , __vwsn_precompile_0(::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>()) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiResponsiveViewComposition*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_7(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_10(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + { + } + +/*********************************************************************** +Class (::demo::AccountButtonTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountButtonTemplate::GetViewModel() + { + return this->__vwsn_prop_ViewModel; + } + void AccountButtonTemplate::SetViewModel(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_value_) + { + if ((this->__vwsn_prop_ViewModel.Obj() != __vwsn_value_.Obj())) + { + (this->__vwsn_prop_ViewModel = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->ViewModelChanged)(); + } + } + + AccountButtonTemplate::AccountButtonTemplate() + : __vwsn_prop_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountButtonTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountButtonTemplate::~AccountButtonTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountItemTemplateConstructor) +***********************************************************************/ + + void AccountItemTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountItemTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + (this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiSelectableButton(::vl::presentation::theme::ThemeName::CheckBox)); + } + (this->__vwsn_precompile_2 = ::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetControlTemplate(LAMBDA(::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition())); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetContext(::vl::__vwsn::Box(this->ViewModel)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetGroupController(::vl::__vwsn::This(this->ViewModel.Obj())->GetController()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAssociatedCursor(::vl::__vwsn::This(::vl::__vwsn::This(::vl::presentation::GetCurrentController())->ResourceService())->GetSystemCursor(::vl::presentation::INativeCursor::SystemCursorType::Hand)); + } + } + + AccountItemTemplateConstructor::AccountItemTemplateConstructor() + : ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + , __vwsn_precompile_0(static_cast<::demo::AccountItemTemplate*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::controls::GuiSelectableButton*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::AccountItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + AccountItemTemplate::AccountItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountItemTemplate::~AccountItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountMenuItemTemplateConstructor) +***********************************************************************/ + + void AccountMenuItemTemplateConstructor::__vwsn_initialize_instance_(::demo::AccountMenuItemTemplate* __vwsn_this_) + { + (this->__vwsn_precompile_0 = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + (this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiToolstripButton(::vl::presentation::theme::ThemeName::MenuItemButton)); + } + (this->__vwsn_precompile_2 = ::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetBoundsComposition())); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAssociatedCursor(::vl::__vwsn::This(::vl::__vwsn::This(::vl::presentation::GetCurrentController())->ResourceService())->GetSystemCursor(::vl::presentation::INativeCursor::SystemCursorType::Hand)); + } + } + + AccountMenuItemTemplateConstructor::AccountMenuItemTemplateConstructor() + : ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + , __vwsn_precompile_0(static_cast<::demo::AccountMenuItemTemplate*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::controls::GuiToolstripButton*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::AccountMenuItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::AccountButtonViewModel> AccountMenuItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + AccountMenuItemTemplate::AccountMenuItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::AccountButtonViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::AccountMenuItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + AccountMenuItemTemplate::~AccountMenuItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::MainWindowConstructor) +***********************************************************************/ + + void MainWindowConstructor::__vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_) + { + (this->self = __vwsn_this_); + { + ::vl::__vwsn::This(this->self)->SetClientSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(800); __vwsn_temp__.y = static_cast<::vl::vint>(600); return __vwsn_temp__; }()); + } + (this->accountController = new ::vl::presentation::controls::GuiSelectableButton::MutexGroupController()); + { + ::vl::__vwsn::This(this->self)->AddComponent(static_cast<::vl::presentation::controls::GuiComponent*>(this->accountController)); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiResponsiveContainerComposition()); + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiResponsiveViewComposition()); + { + (this->videoContainer = new ::vl::presentation::controls::GuiScrollContainer(::vl::presentation::theme::ThemeName::ScrollView)); + } + { + ::vl::__vwsn::This(this->videoContainer)->SetHorizontalAlwaysVisible(::vl::__vwsn::Parse(::vl::WString(L"false", false))); + } + { + ::vl::__vwsn::This(this->videoContainer)->SetExtendToFullWidth(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + (this->__vwsn_precompile_18 = new ::vl::presentation::compositions::GuiRepeatFlowComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetColumnPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetRowPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->videoContainer)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_18)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetSharedControls()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->videoContainer)); + } + (this->__vwsn_precompile_2 = new ::vl::presentation::compositions::GuiResponsiveGroupComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowsAndColumns(static_cast<::vl::vint>(1), static_cast<::vl::vint>(2)); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_4 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiRepeatStackComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetDirection(::vl::presentation::compositions::GuiStackComposition::Direction::Vertical); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_4)); + } + (this->__vwsn_precompile_6 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(420); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiResponsiveSharedComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_2)); + } + (this->__vwsn_precompile_8 = new ::vl::presentation::compositions::GuiResponsiveFixedComposition()); + (this->__vwsn_precompile_9 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetBorderVisible(::vl::__vwsn::Parse(::vl::WString(L"false", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowsAndColumns(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1)); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_9)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_10 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + { + (this->__vwsn_precompile_11 = new ::vl::presentation::controls::GuiToolstripMenuBar(::vl::presentation::theme::ThemeName::MenuBar)); + } + (this->__vwsn_precompile_15 = ::vl::__vwsn::This(this->__vwsn_precompile_11)->GetBoundsComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_15)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + (this->__vwsn_precompile_12 = new ::vl::presentation::controls::GuiToolstripButton(::vl::presentation::theme::ThemeName::MenuBarButton)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_12)->SetText(::vl::WString(L"Subscribed Accounts", false)); + } + (this->__vwsn_precompile_13 = ::vl::__vwsn::This(this->__vwsn_precompile_12)->EnsureToolstripSubMenu()); + (this->__vwsn_precompile_14 = new ::vl::presentation::compositions::GuiRepeatStackComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetItemTemplate(LAMBDA(::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetDirection(::vl::presentation::compositions::GuiStackComposition::Direction::Vertical); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->__vwsn_precompile_13)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_14)); + } + { + ::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_11)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_12)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_10)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(this->__vwsn_precompile_11)->GetBoundsComposition())); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_10)); + } + (this->__vwsn_precompile_16 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_16)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_17 = new ::vl::presentation::compositions::GuiResponsiveSharedComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_16)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_17)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_9)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_16)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_8)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_9)); + } + { + auto __vwsn_collection_ = ::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(this->__vwsn_precompile_1)->GetViews()); + ::vl::__vwsn::This(__vwsn_collection_.Obj())->Add(::vl::__vwsn::Box(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetDirection(::vl::presentation::compositions::ResponsiveDirection::Horizontal); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetResponsiveTarget(static_cast<::vl::presentation::compositions::GuiResponsiveCompositionBase*>(this->__vwsn_precompile_1)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->GetContainerComposition())->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->accounts)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetShared(static_cast<::vl::presentation::controls::GuiControl*>(this->videoContainer)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_14)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->accounts)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_17)->SetShared(static_cast<::vl::presentation::controls::GuiControl*>(this->videoContainer)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_18)->SetItemSource(::vl::Ptr<::vl::reflection::description::IValueObservableList>(::vl::__vwsn::This(this->self)->videos)); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + MainWindowConstructor::MainWindowConstructor() + : self(static_cast<::demo::MainWindow*>(nullptr)) + , accountController(static_cast<::vl::presentation::controls::GuiSelectableButton::MutexGroupController*>(nullptr)) + , videoContainer(static_cast<::vl::presentation::controls::GuiScrollContainer*>(nullptr)) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiResponsiveContainerComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiResponsiveViewComposition*>(nullptr)) + , __vwsn_precompile_2(static_cast<::vl::presentation::compositions::GuiResponsiveGroupComposition*>(nullptr)) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_4(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiRepeatStackComposition*>(nullptr)) + , __vwsn_precompile_6(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiResponsiveSharedComposition*>(nullptr)) + , __vwsn_precompile_8(static_cast<::vl::presentation::compositions::GuiResponsiveFixedComposition*>(nullptr)) + , __vwsn_precompile_9(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_10(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_11(static_cast<::vl::presentation::controls::GuiToolstripMenuBar*>(nullptr)) + , __vwsn_precompile_12(static_cast<::vl::presentation::controls::GuiToolstripButton*>(nullptr)) + , __vwsn_precompile_13(static_cast<::vl::presentation::controls::GuiToolstripMenu*>(nullptr)) + , __vwsn_precompile_14(static_cast<::vl::presentation::compositions::GuiRepeatStackComposition*>(nullptr)) + , __vwsn_precompile_15(static_cast<::vl::presentation::compositions::GuiBoundsComposition*>(nullptr)) + , __vwsn_precompile_16(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_17(static_cast<::vl::presentation::compositions::GuiResponsiveSharedComposition*>(nullptr)) + , __vwsn_precompile_18(static_cast<::vl::presentation::compositions::GuiRepeatFlowComposition*>(nullptr)) + { + } + +/*********************************************************************** +Class (::demo::MainWindow) +***********************************************************************/ + + MainWindow::MainWindow() + : ::vl::presentation::controls::GuiWindow(::vl::presentation::theme::ThemeName::Window) + , accounts(::vl::reflection::description::IValueObservableList::Create()) + , videos(::vl::reflection::description::IValueObservableList::Create()) + { + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::MainWindow", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + this->__vwsn_instance_ctor_(); + } + + void MainWindow::__vwsn_instance_ctor_() + { + { + auto __vwsn_for_begin_i = static_cast<::vl::vint>(1); + auto __vwsn_for_end_i = static_cast<::vl::vint>(8); + auto i = __vwsn_for_begin_i; + while ((i <= __vwsn_for_end_i)) + { + { + auto item = ::vl::Ptr<::demo::AccountButtonViewModel>(new ::demo::AccountButtonViewModel()); + ::vl::__vwsn::This(item.Obj())->SetController(static_cast<::vl::presentation::controls::GuiSelectableButton::GroupController*>(::vl::__vwsn::This(this->self)->accountController)); + ::vl::__vwsn::This(item.Obj())->SetName(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(20))); + ::vl::__vwsn::This(item.Obj())->SetImage(::vl::__vwsn::This(::vl::__vwsn::Ensure(::vl::__vwsn::SharedPtrCast<::vl::presentation::GuiImageData>(::vl::__vwsn::This(this->self)->ResolveResource(::vl::WString(L"res", false), (::vl::WString(L"Images/_", false) + ::vl::__vwsn::ToString(i)), true).Obj())).Obj())->GetImage()); + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->accounts.Obj())->Add(::vl::__vwsn::Box(item)); + } + (i = (i + static_cast<::vl::vint>(1))); + } + } + { + auto __vwsn_for_begin_i = (static_cast<::vl::vint>(0) + static_cast<::vl::vint>(1)); + auto __vwsn_for_end_i = (static_cast<::vl::vint>(20) - static_cast<::vl::vint>(1)); + auto i = __vwsn_for_begin_i; + while ((i <= __vwsn_for_end_i)) + { + { + auto item = ::vl::Ptr<::demo::VideoViewModel>(new ::demo::VideoViewModel()); + ::vl::__vwsn::This(item.Obj())->SetAuthor(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(16))); + ::vl::__vwsn::This(item.Obj())->SetTitle(::vl::reflection::description::Sys::LoremIpsumTitle(static_cast<::vl::vint>(80))); + ::vl::__vwsn::This(item.Obj())->SetFont(::vl::__vwsn::This(this->self)->GetFont()); + ::vl::__vwsn::This(::vl::__vwsn::This(this->self)->videos.Obj())->Add(::vl::__vwsn::Box(item)); + } + (i = (i + static_cast<::vl::vint>(1))); + } + } + } + + MainWindow::~MainWindow() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::controls::GuiControlHost*>(this)); + } + +/*********************************************************************** +Class (::demo::VideoItemTemplateConstructor) +***********************************************************************/ + + void VideoItemTemplateConstructor::__vwsn_initialize_instance_(::demo::VideoItemTemplate* __vwsn_this_) + { + (this->self = __vwsn_this_); + (this->ViewModel = ::vl::__vwsn::This(__vwsn_this_)->GetViewModel()); + { + ::vl::__vwsn::This(this->self)->SetMinSizeLimitation(::vl::presentation::compositions::GuiGraphicsComposition::MinSizeLimitation::LimitToElementAndChildren); + } + (this->__vwsn_precompile_0 = new ::vl::presentation::compositions::GuiTableComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetCellPadding(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"5", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowsAndColumns(static_cast<::vl::vint>(3), static_cast<::vl::vint>(3)); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetRowOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(0), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::Percentage; __vwsn_temp__.percentage = static_cast(1.0); return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(1), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + ::vl::__vwsn::This(this->__vwsn_precompile_0)->SetColumnOption(static_cast<::vl::vint>(2), [&](){ ::vl::presentation::compositions::GuiCellOption __vwsn_temp__; __vwsn_temp__.composeType = ::vl::presentation::compositions::GuiCellOption::ComposeType::MinSize; return __vwsn_temp__; }()); + } + (this->__vwsn_precompile_1 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetPreferredMinSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(192); __vwsn_temp__.y = static_cast<::vl::vint>(192); return __vwsn_temp__; }()); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetSite(static_cast<::vl::vint>(0), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); + } + (this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiImageFrameElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetStretch(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetFrameIndex(::vl::__vwsn::Parse<::vl::vint>(::vl::WString(L"0", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_1)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_2)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_1)); + } + (this->__vwsn_precompile_3 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetSite(static_cast<::vl::vint>(1), static_cast<::vl::vint>(0), static_cast<::vl::vint>(1), static_cast<::vl::vint>(3)); + } + (this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetWrapLineHeightCalculation(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetWrapLine(::vl::__vwsn::Parse(::vl::WString(L"true", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FFFFFF", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_3)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_4)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_3)); + } + (this->__vwsn_precompile_5 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#808080", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetText(::vl::WString(L"by:", false)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_5)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_6)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_5)); + } + (this->__vwsn_precompile_7 = new ::vl::presentation::compositions::GuiCellComposition()); + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetSite(static_cast<::vl::vint>(2), static_cast<::vl::vint>(2), static_cast<::vl::vint>(1), static_cast<::vl::vint>(1)); + } + (this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidLabelElement>())); + { + ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString(L"#FFFFFF", false))); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_7)->SetOwnedElement(::vl::Ptr<::vl::presentation::elements::IGuiGraphicsElement>(this->__vwsn_precompile_8)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_7)); + } + { + ::vl::__vwsn::This(this->self)->AddChild(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(this->__vwsn_precompile_0)); + } + { + ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetImage(::vl::__vwsn::This(::vl::__vwsn::Ensure(::vl::__vwsn::SharedPtrCast<::vl::presentation::GuiImageData>(::vl::__vwsn::This(__vwsn_this_)->ResolveResource(::vl::WString(L"res", false), ::vl::WString(L"Images/Video", false), true).Obj())).Obj())->GetImage()); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + { + auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(this)); + ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_created_subscription_.Obj())->ValueChanged, LAMBDA(::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(this))); + ::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_); + } + } + + VideoItemTemplateConstructor::VideoItemTemplateConstructor() + : self(static_cast<::demo::VideoItemTemplate*>(nullptr)) + , ViewModel(::vl::Ptr<::demo::VideoViewModel>()) + , __vwsn_precompile_0(static_cast<::vl::presentation::compositions::GuiTableComposition*>(nullptr)) + , __vwsn_precompile_1(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_2(::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement>()) + , __vwsn_precompile_3(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_4(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_5(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_6(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + , __vwsn_precompile_7(static_cast<::vl::presentation::compositions::GuiCellComposition*>(nullptr)) + , __vwsn_precompile_8(::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement>()) + { + } + +/*********************************************************************** +Class (::demo::VideoItemTemplate) +***********************************************************************/ + + ::vl::Ptr<::demo::VideoViewModel> VideoItemTemplate::GetViewModel() + { + return this->__vwsn_parameter_ViewModel; + } + + VideoItemTemplate::VideoItemTemplate(::vl::Ptr<::demo::VideoViewModel> __vwsn_ctor_parameter_ViewModel) + : __vwsn_parameter_ViewModel(::vl::Ptr<::demo::VideoViewModel>()) + { + (this->__vwsn_parameter_ViewModel = __vwsn_ctor_parameter_ViewModel); + auto __vwsn_resource_ = ::vl::__vwsn::This(::vl::presentation::GetResourceManager())->GetResourceFromClassName(::vl::WString(L"demo::VideoItemTemplate", false)); + auto __vwsn_resolver_ = ::vl::Ptr<::vl::presentation::GuiResourcePathResolver>(new ::vl::presentation::GuiResourcePathResolver(__vwsn_resource_, ::vl::__vwsn::This(__vwsn_resource_.Obj())->GetWorkingDirectory())); + ::vl::__vwsn::This(this)->SetResourceResolver(__vwsn_resolver_); + ::vl::__vwsn::This(this)->__vwsn_initialize_instance_(this); + } + + VideoItemTemplate::~VideoItemTemplate() + { + this->FinalizeInstanceRecursively(static_cast<::vl::presentation::templates::GuiTemplate*>(this)); + } + +/*********************************************************************** +Class (::demo::AccountButtonViewModel) +***********************************************************************/ + + ::vl::presentation::controls::GuiSelectableButton::GroupController* AccountButtonViewModel::GetController() + { + return this->__vwsn_prop_Controller; + } + + void AccountButtonViewModel::SetController(::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_value_) + { + (this->__vwsn_prop_Controller = __vwsn_value_); + } + + ::vl::WString AccountButtonViewModel::GetName() + { + return this->__vwsn_prop_Name; + } + + void AccountButtonViewModel::SetName(const ::vl::WString& __vwsn_value_) + { + (this->__vwsn_prop_Name = __vwsn_value_); + } + + ::vl::Ptr<::vl::presentation::INativeImage> AccountButtonViewModel::GetImage() + { + return this->__vwsn_prop_Image; + } + + void AccountButtonViewModel::SetImage(::vl::Ptr<::vl::presentation::INativeImage> __vwsn_value_) + { + (this->__vwsn_prop_Image = __vwsn_value_); + } + + AccountButtonViewModel::AccountButtonViewModel() + : __vwsn_prop_Controller(static_cast<::vl::presentation::controls::GuiSelectableButton::GroupController*>(nullptr)) + , __vwsn_prop_Name(::vl::WString(L"", false)) + , __vwsn_prop_Image(::vl::Ptr<::vl::presentation::INativeImage>()) + { + } + +/*********************************************************************** +Class (::demo::VideoViewModel) +***********************************************************************/ + + ::vl::WString VideoViewModel::GetAuthor() + { + return this->__vwsn_prop_Author; + } + + void VideoViewModel::SetAuthor(const ::vl::WString& __vwsn_value_) + { + if ((this->__vwsn_prop_Author != __vwsn_value_)) + { + (this->__vwsn_prop_Author = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->AuthorChanged)(); + } + } + + ::vl::WString VideoViewModel::GetTitle() + { + return this->__vwsn_prop_Title; + } + + void VideoViewModel::SetTitle(const ::vl::WString& __vwsn_value_) + { + if ((this->__vwsn_prop_Title != __vwsn_value_)) + { + (this->__vwsn_prop_Title = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->TitleChanged)(); + } + } + + ::vl::presentation::FontProperties VideoViewModel::GetFont() + { + return this->__vwsn_prop_Font; + } + + void VideoViewModel::SetFont(::vl::presentation::FontProperties __vwsn_value_) + { + if ((this->__vwsn_prop_Font != __vwsn_value_)) + { + (this->__vwsn_prop_Font = __vwsn_value_); + ::vl::__vwsn::EventInvoke(this->FontChanged)(); + } + } + + VideoViewModel::VideoViewModel() + : __vwsn_prop_Author(::vl::WString(L"", false)) + , __vwsn_prop_Title(::vl::WString(L"", false)) + , __vwsn_prop_Font(::vl::presentation::FontProperties{}) + { + } + +} +#undef GLOBAL_SYMBOL +#undef GLOBAL_NAME +#undef GLOBAL_OBJ +#undef USERIMPL + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h new file mode 100644 index 00000000..9c9e5cfb --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoPartialClasses.h @@ -0,0 +1,804 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOPARTIALCLASSES + +#include "GacUI.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +namespace vl_workflow_global +{ + struct __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + struct __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; + struct __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; + class __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + class __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; +} + +namespace demo +{ + class AccountButtonTemplateConstructor; + class AccountButtonTemplate; + class AccountItemTemplateConstructor; + class AccountItemTemplate; + class AccountMenuItemTemplateConstructor; + class AccountMenuItemTemplate; + class MainWindowConstructor; + class MainWindow; + class VideoItemTemplateConstructor; + class VideoItemTemplate; + class AccountButtonViewModel; + class VideoViewModel; + + class AccountButtonTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::AccountButtonTemplate* self; + ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement> __vwsn_precompile_0; + ::vl::presentation::compositions::GuiResponsiveViewComposition* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_2; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_3; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_5; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_7; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_8; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_9; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_10; + void __vwsn_initialize_instance_(::demo::AccountButtonTemplate* __vwsn_this_); + public: + AccountButtonTemplateConstructor(); + }; + + class AccountButtonTemplate : public ::vl::presentation::templates::GuiSelectableButtonTemplate, public ::demo::AccountButtonTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountButtonTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_prop_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + void SetViewModel(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_value_); + ::vl::Event ViewModelChanged; + AccountButtonTemplate(); + ~AccountButtonTemplate(); + }; + + class AccountItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend struct ::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::demo::AccountButtonViewModel> ViewModel; + ::demo::AccountItemTemplate* __vwsn_precompile_0; + ::vl::presentation::controls::GuiSelectableButton* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_2; + void __vwsn_initialize_instance_(::demo::AccountItemTemplate* __vwsn_this_); + public: + AccountItemTemplateConstructor(); + }; + + class AccountItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::AccountItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountItemTemplateConstructor; + friend struct ::vl_workflow_global::__vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + AccountItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel); + ~AccountItemTemplate(); + }; + + class AccountMenuItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::vl::Ptr<::demo::AccountButtonViewModel> ViewModel; + ::demo::AccountMenuItemTemplate* __vwsn_precompile_0; + ::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_2; + void __vwsn_initialize_instance_(::demo::AccountMenuItemTemplate* __vwsn_this_); + public: + AccountMenuItemTemplateConstructor(); + }; + + class AccountMenuItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::AccountMenuItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::AccountMenuItemTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::AccountButtonViewModel> GetViewModel(); + AccountMenuItemTemplate(::vl::Ptr<::demo::AccountButtonViewModel> __vwsn_ctor_parameter_ViewModel); + ~AccountMenuItemTemplate(); + }; + + class MainWindowConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::MainWindow* self; + ::vl::presentation::controls::GuiSelectableButton::MutexGroupController* accountController; + ::vl::presentation::controls::GuiScrollContainer* videoContainer; + ::vl::presentation::compositions::GuiResponsiveContainerComposition* __vwsn_precompile_0; + ::vl::presentation::compositions::GuiResponsiveViewComposition* __vwsn_precompile_1; + ::vl::presentation::compositions::GuiResponsiveGroupComposition* __vwsn_precompile_2; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_3; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_4; + ::vl::presentation::compositions::GuiRepeatStackComposition* __vwsn_precompile_5; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_6; + ::vl::presentation::compositions::GuiResponsiveSharedComposition* __vwsn_precompile_7; + ::vl::presentation::compositions::GuiResponsiveFixedComposition* __vwsn_precompile_8; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_9; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_10; + ::vl::presentation::controls::GuiToolstripMenuBar* __vwsn_precompile_11; + ::vl::presentation::controls::GuiToolstripButton* __vwsn_precompile_12; + ::vl::presentation::controls::GuiToolstripMenu* __vwsn_precompile_13; + ::vl::presentation::compositions::GuiRepeatStackComposition* __vwsn_precompile_14; + ::vl::presentation::compositions::GuiBoundsComposition* __vwsn_precompile_15; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_16; + ::vl::presentation::compositions::GuiResponsiveSharedComposition* __vwsn_precompile_17; + ::vl::presentation::compositions::GuiRepeatFlowComposition* __vwsn_precompile_18; + void __vwsn_initialize_instance_(::demo::MainWindow* __vwsn_this_); + public: + MainWindowConstructor(); + }; + + class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description + { + friend class ::demo::MainWindowConstructor; + friend class ::vl_workflow_global::__vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::vl::reflection::description::IValueObservableList> accounts; + ::vl::Ptr<::vl::reflection::description::IValueObservableList> videos; + MainWindow(); + void __vwsn_instance_ctor_(); + ~MainWindow(); + }; + + class VideoItemTemplateConstructor : public ::vl::Object, public ::vl::reflection::Description + { + friend class ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + protected: + ::demo::VideoItemTemplate* self; + ::vl::Ptr<::demo::VideoViewModel> ViewModel; + ::vl::presentation::compositions::GuiTableComposition* __vwsn_precompile_0; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_1; + ::vl::Ptr<::vl::presentation::elements::GuiImageFrameElement> __vwsn_precompile_2; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_3; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_4; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_5; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_6; + ::vl::presentation::compositions::GuiCellComposition* __vwsn_precompile_7; + ::vl::Ptr<::vl::presentation::elements::GuiSolidLabelElement> __vwsn_precompile_8; + void __vwsn_initialize_instance_(::demo::VideoItemTemplate* __vwsn_this_); + public: + VideoItemTemplateConstructor(); + }; + + class VideoItemTemplate : public ::vl::presentation::templates::GuiControlTemplate, public ::demo::VideoItemTemplateConstructor, public ::vl::reflection::Description + { + friend class ::demo::VideoItemTemplateConstructor; + friend class ::vl_workflow_global::__vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend class ::vl_workflow_global::__vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription; + friend struct ::vl_workflow_global::__vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; + friend struct ::vl_workflow_global::__vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__; +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + public: + ::vl::Ptr<::demo::VideoViewModel> __vwsn_parameter_ViewModel; + ::vl::Ptr<::demo::VideoViewModel> GetViewModel(); + VideoItemTemplate(::vl::Ptr<::demo::VideoViewModel> __vwsn_ctor_parameter_ViewModel); + ~VideoItemTemplate(); + }; + + class AccountButtonViewModel : public ::vl::Object, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + private: + ::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_prop_Controller; + public: + ::vl::presentation::controls::GuiSelectableButton::GroupController* GetController(); + void SetController(::vl::presentation::controls::GuiSelectableButton::GroupController* __vwsn_value_); + private: + ::vl::WString __vwsn_prop_Name; + public: + ::vl::WString GetName(); + void SetName(const ::vl::WString& __vwsn_value_); + private: + ::vl::Ptr<::vl::presentation::INativeImage> __vwsn_prop_Image; + public: + ::vl::Ptr<::vl::presentation::INativeImage> GetImage(); + void SetImage(::vl::Ptr<::vl::presentation::INativeImage> __vwsn_value_); + AccountButtonViewModel(); + }; + + class VideoViewModel : public ::vl::Object, public ::vl::reflection::Description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + friend struct ::vl::reflection::description::CustomTypeDescriptorSelector; +#endif + private: + ::vl::WString __vwsn_prop_Author; + public: + ::vl::WString GetAuthor(); + void SetAuthor(const ::vl::WString& __vwsn_value_); + ::vl::Event AuthorChanged; + private: + ::vl::WString __vwsn_prop_Title; + public: + ::vl::WString GetTitle(); + void SetTitle(const ::vl::WString& __vwsn_value_); + ::vl::Event TitleChanged; + private: + ::vl::presentation::FontProperties __vwsn_prop_Font; + public: + ::vl::presentation::FontProperties GetFont(); + void SetFont(::vl::presentation::FontProperties __vwsn_value_); + ::vl::Event FontChanged; + VideoViewModel(); + }; + +} +/*********************************************************************** +Global Variables and Functions +***********************************************************************/ + +namespace vl_workflow_global +{ + class Demo + { + public: + + static Demo& Instance(); + }; + +/*********************************************************************** +Closures +***********************************************************************/ + + struct __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf10_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf11_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf12_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__ + { + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnf13_Demo_demo_MainWindowConstructor___vwsn_initialize_instance__(::demo::MainWindowConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf15_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf16_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf17_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnf18_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance__(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnf7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance__(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + struct __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountItemTemplateConstructor* __vwsnthis_0; + + __vwsnf8_Demo_demo_AccountItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::presentation::templates::GuiControlTemplate* operator()(const ::vl::reflection::description::Value& __vwsn_viewModel_) const; + }; + + struct __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__ + { + ::demo::AccountMenuItemTemplateConstructor* __vwsnthis_0; + + __vwsnf9_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance__(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0); + + void operator()(const ::vl::reflection::description::Value& __vwsn_value_) const; + }; + + class __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc10_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc11_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc12_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc13_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::VideoItemTemplateConstructor* __vwsnthis_0; + + __vwsnc14_Demo_demo_VideoItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::VideoItemTemplateConstructor* __vwsnctorthis_0); + + ::vl::Ptr<::demo::VideoViewModel> __vwsn_bind_cache_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc1_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::demo::AccountButtonTemplate* __vwsn_bind_cache_1 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_1_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + void __vwsn_bind_callback_1_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc2_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc3_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc4_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc5_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc6_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountButtonTemplateConstructor* __vwsnthis_0; + + __vwsnc7_Demo_demo_AccountButtonTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountButtonTemplateConstructor* __vwsnctorthis_0); + + ::demo::AccountButtonTemplate* __vwsn_bind_cache_0 = nullptr; + ::vl::Ptr<::vl::reflection::description::IEventHandler> __vwsn_bind_handler_0_0; + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + void __vwsn_bind_callback_0_0(::vl::presentation::compositions::GuiGraphicsComposition* __vwsn_bind_callback_argument_0, ::vl::presentation::compositions::GuiEventArgs* __vwsn_bind_callback_argument_1); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::AccountMenuItemTemplateConstructor* __vwsnthis_0; + + __vwsnc8_Demo_demo_AccountMenuItemTemplateConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::AccountMenuItemTemplateConstructor* __vwsnctorthis_0); + + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + bool Open() override; + bool Update() override; + bool Close() override; + }; + + class __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription : public ::vl::Object, public virtual ::vl::reflection::description::IValueSubscription + { + public: + ::demo::MainWindowConstructor* __vwsnthis_0; + + __vwsnc9_Demo_demo_MainWindowConstructor___vwsn_initialize_instance___vl_reflection_description_IValueSubscription(::demo::MainWindowConstructor* __vwsnctorthis_0); + + bool __vwsn_bind_opened_ = false; + bool __vwsn_bind_closed_ = false; + void __vwsn_bind_activator_(); + bool Open() override; + bool Update() override; + bool Close() override; + }; +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp new file mode 100644 index 00000000..2128d69b --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.cpp @@ -0,0 +1,244 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#include "DemoReflection.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + IMPL_CPP_TYPE_INFO(demo::AccountButtonTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountButtonTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::AccountButtonViewModel) + IMPL_CPP_TYPE_INFO(demo::AccountItemTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::AccountMenuItemTemplate) + IMPL_CPP_TYPE_INFO(demo::AccountMenuItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::MainWindow) + IMPL_CPP_TYPE_INFO(demo::MainWindowConstructor) + IMPL_CPP_TYPE_INFO(demo::VideoItemTemplate) + IMPL_CPP_TYPE_INFO(demo::VideoItemTemplateConstructor) + IMPL_CPP_TYPE_INFO(demo::VideoViewModel) + +#define _ , + BEGIN_CLASS_MEMBER(::demo::AccountButtonTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountButtonTemplate*(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetViewModel, { L"__vwsn_value_" }) + CLASS_MEMBER_EVENT(ViewModelChanged) + CLASS_MEMBER_FIELD(__vwsn_prop_ViewModel) + CLASS_MEMBER_PROPERTY_EVENT(ViewModel, GetViewModel, SetViewModel, ViewModelChanged) + END_CLASS_MEMBER(::demo::AccountButtonTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountButtonTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountButtonTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_10) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(__vwsn_precompile_9) + CLASS_MEMBER_FIELD(self) + END_CLASS_MEMBER(::demo::AccountButtonTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::AccountButtonViewModel) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountButtonViewModel>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetController, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetName, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetController, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetImage, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetName, { L"__vwsn_value_" }) + CLASS_MEMBER_FIELD(__vwsn_prop_Controller) + CLASS_MEMBER_FIELD(__vwsn_prop_Image) + CLASS_MEMBER_FIELD(__vwsn_prop_Name) + CLASS_MEMBER_PROPERTY(Controller, GetController, SetController) + CLASS_MEMBER_PROPERTY(Image, GetImage, SetImage) + CLASS_MEMBER_PROPERTY(Name, GetName, SetName) + END_CLASS_MEMBER(::demo::AccountButtonViewModel) + + BEGIN_CLASS_MEMBER(::demo::AccountItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountItemTemplate*(::vl::Ptr<::demo::AccountButtonViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::AccountItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(ViewModel) + END_CLASS_MEMBER(::demo::AccountItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::AccountMenuItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::AccountMenuItemTemplate*(::vl::Ptr<::demo::AccountButtonViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::AccountMenuItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::AccountMenuItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::AccountMenuItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(ViewModel) + END_CLASS_MEMBER(::demo::AccountMenuItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::MainWindow) + CLASS_MEMBER_CONSTRUCTOR(::demo::MainWindow*(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER) + CLASS_MEMBER_FIELD(accounts) + CLASS_MEMBER_FIELD(videos) + END_CLASS_MEMBER(::demo::MainWindow) + + BEGIN_CLASS_MEMBER(::demo::MainWindowConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::MainWindowConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_10) + CLASS_MEMBER_FIELD(__vwsn_precompile_11) + CLASS_MEMBER_FIELD(__vwsn_precompile_12) + CLASS_MEMBER_FIELD(__vwsn_precompile_13) + CLASS_MEMBER_FIELD(__vwsn_precompile_14) + CLASS_MEMBER_FIELD(__vwsn_precompile_15) + CLASS_MEMBER_FIELD(__vwsn_precompile_16) + CLASS_MEMBER_FIELD(__vwsn_precompile_17) + CLASS_MEMBER_FIELD(__vwsn_precompile_18) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(__vwsn_precompile_9) + CLASS_MEMBER_FIELD(accountController) + CLASS_MEMBER_FIELD(self) + CLASS_MEMBER_FIELD(videoContainer) + END_CLASS_MEMBER(::demo::MainWindowConstructor) + + BEGIN_CLASS_MEMBER(::demo::VideoItemTemplate) + CLASS_MEMBER_CONSTRUCTOR(::demo::VideoItemTemplate*(::vl::Ptr<::demo::VideoViewModel>), { L"__vwsn_ctor_parameter_ViewModel" }) + CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER) + CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel) + CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel) + END_CLASS_MEMBER(::demo::VideoItemTemplate) + + BEGIN_CLASS_MEMBER(::demo::VideoItemTemplateConstructor) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::VideoItemTemplateConstructor>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(__vwsn_initialize_instance_, { L"__vwsn_this_" }) + CLASS_MEMBER_FIELD(__vwsn_precompile_0) + CLASS_MEMBER_FIELD(__vwsn_precompile_1) + CLASS_MEMBER_FIELD(__vwsn_precompile_2) + CLASS_MEMBER_FIELD(__vwsn_precompile_3) + CLASS_MEMBER_FIELD(__vwsn_precompile_4) + CLASS_MEMBER_FIELD(__vwsn_precompile_5) + CLASS_MEMBER_FIELD(__vwsn_precompile_6) + CLASS_MEMBER_FIELD(__vwsn_precompile_7) + CLASS_MEMBER_FIELD(__vwsn_precompile_8) + CLASS_MEMBER_FIELD(ViewModel) + CLASS_MEMBER_FIELD(self) + END_CLASS_MEMBER(::demo::VideoItemTemplateConstructor) + + BEGIN_CLASS_MEMBER(::demo::VideoViewModel) + CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::VideoViewModel>(), NO_PARAMETER) + CLASS_MEMBER_METHOD(GetAuthor, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetFont, NO_PARAMETER) + CLASS_MEMBER_METHOD(GetTitle, NO_PARAMETER) + CLASS_MEMBER_METHOD(SetAuthor, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetFont, { L"__vwsn_value_" }) + CLASS_MEMBER_METHOD(SetTitle, { L"__vwsn_value_" }) + CLASS_MEMBER_EVENT(AuthorChanged) + CLASS_MEMBER_EVENT(FontChanged) + CLASS_MEMBER_EVENT(TitleChanged) + CLASS_MEMBER_FIELD(__vwsn_prop_Author) + CLASS_MEMBER_FIELD(__vwsn_prop_Font) + CLASS_MEMBER_FIELD(__vwsn_prop_Title) + CLASS_MEMBER_PROPERTY_EVENT(Author, GetAuthor, SetAuthor, AuthorChanged) + CLASS_MEMBER_PROPERTY_EVENT(Font, GetFont, SetFont, FontChanged) + CLASS_MEMBER_PROPERTY_EVENT(Title, GetTitle, SetTitle, TitleChanged) + END_CLASS_MEMBER(::demo::VideoViewModel) + +#undef _ + class DemoTypeLoader : public Object, public ITypeLoader + { + public: + void Load(ITypeManager* manager) + { + ADD_TYPE_INFO(::demo::AccountButtonTemplate) + ADD_TYPE_INFO(::demo::AccountButtonTemplateConstructor) + ADD_TYPE_INFO(::demo::AccountButtonViewModel) + ADD_TYPE_INFO(::demo::AccountItemTemplate) + ADD_TYPE_INFO(::demo::AccountItemTemplateConstructor) + ADD_TYPE_INFO(::demo::AccountMenuItemTemplate) + ADD_TYPE_INFO(::demo::AccountMenuItemTemplateConstructor) + ADD_TYPE_INFO(::demo::MainWindow) + ADD_TYPE_INFO(::demo::MainWindowConstructor) + ADD_TYPE_INFO(::demo::VideoItemTemplate) + ADD_TYPE_INFO(::demo::VideoItemTemplateConstructor) + ADD_TYPE_INFO(::demo::VideoViewModel) + } + + void Unload(ITypeManager* manager) + { + } + }; +#endif + + bool LoadDemoTypes() + { +#ifndef VCZH_DEBUG_NO_REFLECTION + if (auto manager = GetGlobalTypeManager()) + { + return manager->AddTypeLoader(MakePtr()); + } +#endif + return false; + } + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h new file mode 100644 index 00000000..76de20ce --- /dev/null +++ b/Tutorial/GacUI_Layout/Responsive2/UI/Source/DemoReflection.h @@ -0,0 +1,64 @@ +/*********************************************************************** +!!!!!! DO NOT MODIFY !!!!!! + +GacGen.exe Resource.xml + +This file is generated by Workflow compiler +https://github.com/vczh-libraries +***********************************************************************/ + +#ifndef VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION +#define VCZH_WORKFLOW_COMPILER_GENERATED_DEMOREFLECTION + +#include "Demo.h" + +#if defined( _MSC_VER) +#pragma warning(push) +#pragma warning(disable:4250) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wparentheses-equality" +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wparentheses-equality" +#endif + +/*********************************************************************** +Reflection +***********************************************************************/ + +namespace vl +{ + namespace reflection + { + namespace description + { +#ifndef VCZH_DEBUG_NO_REFLECTION + DECL_TYPE_INFO(::demo::AccountButtonTemplate) + DECL_TYPE_INFO(::demo::AccountButtonTemplateConstructor) + DECL_TYPE_INFO(::demo::AccountButtonViewModel) + DECL_TYPE_INFO(::demo::AccountItemTemplate) + DECL_TYPE_INFO(::demo::AccountItemTemplateConstructor) + DECL_TYPE_INFO(::demo::AccountMenuItemTemplate) + DECL_TYPE_INFO(::demo::AccountMenuItemTemplateConstructor) + DECL_TYPE_INFO(::demo::MainWindow) + DECL_TYPE_INFO(::demo::MainWindowConstructor) + DECL_TYPE_INFO(::demo::VideoItemTemplate) + DECL_TYPE_INFO(::demo::VideoItemTemplateConstructor) + DECL_TYPE_INFO(::demo::VideoViewModel) +#endif + + extern bool LoadDemoTypes(); + } + } +} + +#if defined( _MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + +#endif diff --git a/Tutorial/GacUI_Layout/UIRes/Responsive2.bin b/Tutorial/GacUI_Layout/UIRes/Responsive2.bin new file mode 100644 index 0000000000000000000000000000000000000000..ffe7d05dbfb9dda47cfb345bcdf3bea5c1b80266 GIT binary patch literal 63400 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 OZsGKQZ~wOk)c*s2V7c}H literal 0 HcmV?d00001