From e2620b10bdcbf4f6cf2e1998d10849e4de282828 Mon Sep 17 00:00:00 2001 From: Tim Miller Date: Sat, 25 Dec 2021 18:45:59 +0000 Subject: [PATCH] Initial Tray --- DrasticMaui.Sample/DrasticMaui.Sample.csproj | 10 ++++++ DrasticMaui.Sample/Icon/dotnet_bot.png | Bin 0 -> 39538 bytes DrasticMaui.Sample/Icon/favicon.ico | Bin 0 -> 32988 bytes DrasticMaui.Sample/MauiProgram.cs | 22 +++++++++++++ DrasticMaui/DrasticMaui.csproj | 4 +++ DrasticMaui/DrasticMauiWindow.cs | 2 +- DrasticMaui/Overlays/BaseOverlay.cs | 2 +- DrasticMaui/Overlays/DragAndDropOverlay.cs | 8 ++--- DrasticMaui/Overlays/PageOverlay.Windows.cs | 2 +- .../Tools/PlatformExtensions.Windows.cs | 12 ++++---- DrasticMaui/Tray/TrayService.MacCatalyst.cs | 4 --- DrasticMaui/Tray/TrayService.Windows.cs | 29 +++++++++++++----- DrasticMaui/Tray/TrayService.cs | 19 +++++++++--- 13 files changed, 85 insertions(+), 29 deletions(-) create mode 100644 DrasticMaui.Sample/Icon/dotnet_bot.png create mode 100644 DrasticMaui.Sample/Icon/favicon.ico diff --git a/DrasticMaui.Sample/DrasticMaui.Sample.csproj b/DrasticMaui.Sample/DrasticMaui.Sample.csproj index fbf98ee..d074d96 100644 --- a/DrasticMaui.Sample/DrasticMaui.Sample.csproj +++ b/DrasticMaui.Sample/DrasticMaui.Sample.csproj @@ -53,10 +53,20 @@ win10-x64 + + + + + + + + + + diff --git a/DrasticMaui.Sample/Icon/dotnet_bot.png b/DrasticMaui.Sample/Icon/dotnet_bot.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc61841522a6dd07f96df98518df79274c5398b GIT binary patch literal 39538 zcmZsCby(C-)Gy7_yW~=`ba#j#NG!{evXp?Nbcag_g0#enEG6CDCEX!NFCicxf+C#~ z0sz*3EnRPrvn zbao~`O*UlNGt&*Ieb|1WaCjyux%XsS9iemIj2I3+EN%kjKN4PLmp@wYrN$a~vBe%d zBRfYJKs(E{bt`42Nc^wOAdEkE=>+6nJP6j%Aq<{H67-zH=X$$XW@w6X@0$qqN5b~E z*l?5e;CRzOolno7Sxm}nJo^xO-;~5#5|%^0$$@^@?})yC~x@X zaY(UE|8Mo&Ki~t9I!+X{^Jy``J-0EW@5}pdaHoQ@pkUE0J;4I|e|)fo;aVPf=_(FX zl&tk-oP-IHkwJFO|%%>O27hM?uR+Zg69cYL1)z5Aa&QlbU>pI#7@e4%~hKOrTGvGcrr zOtL->RDY3~w>vG%K`H1obE zKpazAdg;4r`S?~A4UsvuyKwKRJtAuR`cJ0R<%sU?!#CIrhbCls6sy}-@7)hxY^d}a zBa{C#s}}^m5|<%e##rd{KivGM^_w};y$6Cs^(TE;I~2%>|HdE*jk@oCTt3P4JMVmx zB}JOo?|xC+eRnRsR99&h9$yN%2JiFd|1(Arpe=sLM*w<-Uv?oe;CLH$r6 zX|II~EBbC#XJg_Fb4oO^^n*U`YiQ7FS1LbA+XS*Mvai*T>h_YPHkX^9K^7N_xb#q|IK0- zKVg9z+3AC~^1DFy#)%)1Jyt3fA`-gC<0oon`=7duM4aFps9bk___MVC2os<}1&JaM zR^OlgU$xl6_9F$CE`yqa;&Q4oHhwf>-cIoFR!P(GoY_Q5Cmw(-yb! z&1BSzaISBj!KioTU8POtht~S%{lTFR!Df!c#B&$lvussDxUm#U^uN8eR}fablbqZr z|4V8n8iNdEKOM37n|daYwq>gV$dTP$G@UgI4Zq8IsVbKd7ywoW6lOkmT0~_yEuJzu zEzDZXdAt#3_%e{9?Y5}!EIpJ>Y$PV|SC#2W~leG(;I>+3FbEn%h>(+GGi8Y`EZQ1?J;*XM!IOMCzgxpVLyKq5bchNQ3i z$NZ5L9+gt`Xaa}A2mwT^8&qGg>%8!Dw|sG+qGIt+h=I!!eR)Z}P}vQ+Szrum zJc{@xRzQqUPV2_#p8ovaxp0eJqf%>C2!C^g0`egRTli!LIv4TIB`5{*=eh%dlNzat zLnL1K7)zJ@^u673Wh!%>=m*^RAjGTJvnt6mTlBfZjio$*Wx*=gz#DyyT2wWkN(|w( z-?!X0uQ3~ug5Fz-l$90~0HPy$M9k3thO9UI0u&Ms>^~HJS*zrOtcqtg zBU%LYIGh$GyZjtXcKH)b!IF7}d$GCInmZhB^bGu$3+re2+!FT)@!yA-xgz-I;kMcn zadEfuOTlyBDKc(5l}qJ*ddzEVC?{5~%8&Gg{9~(RfDUCy_#MHWU^+8fJ$s!mlG#Qz zL6^DDVU{!5WgwW{JYf0&FKt1-y(5XVMCL7ATivTXH_)plCpCr5%sm{^=EyN)_M@Fsg z{XwNCimd%;IArZf)h)yQd7@2jbo9i)d`ccndncK@8XEnb=Fe~ARIwB3^AM?xW{Z*B z^;|$ceu#Td;5F69*4NhPH-P)|g_nBo2Ug?|2ndLYqGS#(JaS{@A6XY?0YNpm+867~ zI#RSfUt0Dp)wK{qQM9<7eI8*mA1W+Ogw4A32 zfIOO+SArS8etoANiGzeGCE}i^wdgW4&=dTyTY!VDR(VL-Ck7yIK^d>T$JbnApZ{(W zc4ce`j6Q4%_|Qzc+_i8qlU050zCZdRr_esW?;tp6Oycp!1w06!M(hn;q}9(ie7)Aq zIHxX%La1h2{V%&=?FmnjHc?8LX*Zm>07D7Z`i0%-75TPm?7Vj4=%NTv5Dh3O2BKo} zE%oWBVC=RcN>-onMbnVguVdH(#0}B@Ky#_OcA;^Kd_CLrw_12wTy=LX|+A`JlcxjVzrjw=7yEJ(sdVTV`&`F1I^~o(eWx0a*qq;$?_f3XPb!Pdd zUE=Mgu7uwYFAlvvPAva8F$;O;;BTN)8X>~mtFDuqb?uUGrEjtj#4Hy;J%NweV7V1u zD7*H2PjPUThC>CC2CFS28zRFmz@Bbx=#C7xyzj;R0#Pq#wSKN~d~I*7bV#zP!DR8d zwe51a$u#ZsnAJf?wM~aHBYqeNl!Xd+73~ zc|<~`L#YjMe+}m~s=8(k3;gwz??AlGh!Lju#()|3G00=Baj6if9WN?J@rHKac;>{~ z|IEh2P#Q<2h(vKubB?#N4P1ResnfC}#5m1`E{5SF7pn@BY!Ov;4A>I$ zyI)0`TipVK#Fv5-LP{%3(?-KzovZ&$fJ^F55&Cti; zf2K1}!OP208*3h8}Aac(kNM-B>hHHzC$oNf)B)>z<#c?AC0FQ%Otn7u=eU7ypl8*I z*lL;InO_y7JyI|_tc;ZEFF}y?3Gs4}ze)^MyLa*yv?^^If&Y|R=ZlemtIc`bDb02;`Yz;8$y32j$!q-21_kMN)h4b*oVV$G-(!~f#82g%E zwDIzyno7vtbl-Q^-QPENDwARnbpj5s(PymesT5>?8C=%c!%@Md9WC_Vb?CmqV;0d< zvPwMgQEvcQ_}f%g)_9-*D-YSPJgU52obZ7eGs5GdMHj@T72j=Zzf z%5J7M^%w#vVIU_vIEYuCB+p`~=#XP^K%CdDac^-SY(h*rA3=yXW$}pZq}h@@5^zG* zs)6BdYZTM{Zy3q)Jzid4(Bzyt)w|E&pjWxr!x_eP|LRRwIE|bMJqW6*>kA3zL&kw;u z`|Ne=ij$7!>WSYSjsC@S3}+DDsGlNYSZp0yu9y$F(WCL<4-!&2)$#_mxgKbD^jT0S z0vhsm{~WRkjHRcxBj7D=28<%V1RkLazQZfcQH2r%;PXxP(|P_&Wk$-7#|-mzPu8F*N!v zkW;7pTl+}PVCu=|T$v=9;plqx`80#fQ@DS4*h%j6Rv7>W zDI`&FIzlV{RFvaO} zvJJIUS8|&KK^(HP+Kf=X#dtLUFE*S+9urK&0T+eP;A&pfyhjU0)L>$#^xERTNvchv z4#xDsArme_2Y<;siKls~a44Si*b6C?k__ln;DHBssJ1;Pq9F-=aN>Ne?@G$tUw={R z^Dos$&3DF{oQ1*HNLfF+z)ceL4vBabcxZ$5*Qm(ey@e(}=lFbq!sl7Bj3Fx$5BT!u zVCA|0sm7_0`Zq#2GR;;Xo;bAiln9zW%oS8rah8cJ|I!NRs*8h> zyHc<*kSfGy9jDBs4AuWVwDkXCN%~(k$-OvVtF6&z_cyy|AB1AeaI|{rev}nz z``Z?+bBlpje~cWP`kf@SzMw*=Q3l zCK&S^8z*$%-p(NtO2DO(I}#zk&5|^d3ik8x`y=AJBc{zqzc_&H)Nk6o zB2r#JBd_vee=Ow?%fWm)G+yW;b5R~m4s@-ZuErmm<4vn4yeS$K8eaIm4ED{?3S za>J+)#BU$gvZWn4`!RkaJdC}A5f|!2a%2{x3OZ7>njUNT=NP^&VW9DPJfqm@uV^F9 zFJ_WGQ}=;q4KmF)Iyf9D_CTo(MSfLZsIw^aSbOVnwpd2>OpjIG>!HY?&#yAIxKrfU z?(XuPw6W|>CvyD{z%-8y@hAU`Fb`Zr6+-$n2^${Zktvn<;QgsD>{uI3Ju>cHX?GDIvymzU(-G zq|GUpp4PRt@Lnj1&)!nuSs7X zy8NvCaeVWwmzJF|jMpXVY-Z<yT?0a&cq@SwzrMpx zGqZD8S-&g^$*}@D+NwnJO%8fY@RG~Dqk`6rcqNf>vT4MSaoAdi)zD37q$hB3wsC$= zo1r~bqgd(>RQAi|cpxAB=7h7&qXwQ%eLBn=n5`v<5H&Ve<`}^F<78z8THXcZqo@7UBxzs`a$_A0SQ{Ce=#YQR2Y5}VG4cY>8 zYu0^3O_oVRq{z`|EOMgMVjY0aBX?qG^hgXUWfKXeRciQEiG!dI8U7-mMh4&g7=m~8 zZJSQ{KmCEU)NJBiYb&$p95yW zPU?1qPil=11XJqX`sC5=P)rS*HV36rip=oRkAC>&2W-6ubaEX-i`!aj)?7_L3nei} z1gQRzQvr|bZ!@l0_YXzcwokuaxhWWm!uw2sxd-vEG_&84K#y%yXj3-XxCFMgsf@|k zLLd6M$$!kDxO=JegQ*gr#$BsPyVT~!__3XE+V;_=sq`@onK6B9`l!D)M!E4rn4-USZ zUAvCBcPBZ-4;X#ey?ld}pnMz(@2VNr<@bHO(FzV^8w5SU%WuS)4s@Oq#>Y~rdhXOD;4dn(z8uLdDC^tPN0Hj8cxKR&-Wv!# zEopGnl`^@A6c{JrDG_|=ywa^xW{}A{W1j%yKO6&uvY{%6QM4N31=}5zX!;Tn* z^Q|1VJ0P1O>hG~R(}r-Edy^hFw@-*q)6yzA^3F`C?}UXWuCrD;q?}?l)#F zRAIAgS7xU=mnLB|kEpZrpLvP}5lji?0U4vsXF@S2nFLWvB5c5-$MFxM@C!vyN0Jyq z7X3(cg|=d?h5h4}O(^)?wXMO66(ki|+cp7j`}UFOy7k}?>V4ohI8B8w!cqpoN-w!d zKaTr-i?G`OQqRs`-}bnq{V5cpZUL!6;OXA|LlR2*u2XZCnU~!OQAZMA5OmMHNUp%V zD4T1P9eCMZKfi9Wbl|)EJtlRHx?d4wDY5aDp=ecjD_wnPftwKeD4U#L@u!$r*hEy= z#7^ZfG>7NK!26c>Q3^?3#RMRD{>JnEso)xPmsy2w!JFEmt%VQ!Sd?+|^h6>fSNJ_! zV!@#EcLbr)is6V3D)1*YE)mp>XvkXJa1eSLkKnb-AMhh^ul1*)xbFV+j#AwfF}ARM zh|?u{@mStY1F1G1^FOKvK+7mNs%}9!%th4kUpBAr_%V7N_YtIE2%@OIK-;9eT~bDN ziny zw#`BJ$*d*@D4J6S*BGIQQ_qIG@o4S_DwFxLajS$Np4xtK`;cXAwbWQ4!=DeTpy=->Mvosk}dtLZU2_{1wEOo~&Cu zgKyBfR$d- zFR37++~dRhyT99yP;{WmbS2LVV7cdvQsoH~J?%6Ae*9tgs9$rl+Sc`nTJpu~dxVHQ z^RX)p>Q{d)0t9@mG7V$I#TK8fTcMr6tmdz3+Nw>?QD@^@f~Ss?$|fN}%6jmZEl+|DKR<&# zK;?y@gkl1Xng(+HFoe-hgCukw$ms%j-0(o*bSXRpZXd19&rfNkk8pwTC!EC~ZB-1D zHXS^l#@?cv+O@@H`<^^mXfGADooMa-^!ioE-N%+JWEi7zY>R{}1N&s0&4kQ0nle8R zd(?SBnX-W+GanMltK@sq98sUgnlPO?#Z7rZqsENP%z8f968zrmuiW?4Q)MX85-G_y zvS>WS7-bgCC;ZeVOJhTu{Ku++`D0rw^uuvS-e=SDsbnAcc7tg?MW!`Nh0}U|+=K5_ z{um?mf~>G%PrFj`5LpuUss&S&uv!74RZ+3@2(nZ2sZd`#1$vL>liNvW}}PSF>vo54u* z_sYbi-NKs!03=$jFyjvjMqC6;rRMl1qy)GVv^NC$L(3rvNt@DySpxh@WXwlv52I;` zNUgpt*M-}w+kbtyP}SH`$KgWjHxU zAgq-?gKOAO172p-@iv^Y7~6*i1os=mlUCU(774x&v>RB7qN>-$*;IhMNt=EKO_ZXP zjz+`Bf4^x1IUAw&Q!SP%hS1^&(ud*$BXNejwyLI)r`Sea-SJMl5g_aSnC+?1AH|t;TYNq?Z7b8iBNT<4jrbE_GDM9R36OVk+W{~<0 zD0fy%tXFn^lHnsh zVmx`*WNUrNNBR;fcvIeUtbjc4jLFEp>PK~|)Uxcvj#LPCP-Mj8$vGb|?buj;Lpii$ zv<3K2M)wxrG7@LAh&CzH{tLmY=}(fQAXN8h9ukv+P)pEW+^e37VakMgB;ltHWiLmc zn%X=ZtB@dXw4aI=85%{#a!9cAk2hLkkR7k4%lSUPR!b z+I)qHNa4niK@lnH<+;Mno>&D+O|txb*(6T2+=1jnf)iUQkakR4Og9A~Bu_Ye6}S6? zpI3#$D(yJ2s3LL=Ev_7-f2WfFc92)9XU)ASlqW6-o&B!bgtN_+KphD?r$HD(7tuaG zg`&xd>CDH*{;tMqLvME74sJbuXBc~Ci&gf zu>uTK6af26ru3dYAi4L)!cdA>T&bpsI!377m5NW&R%1OI2zF6ZR2fy6!aSHd0-X89 zJQDX^IpJ_E>EKC!bcx92wI?S;tE~;j5?^SXVCfcbr*3+wjYUOR!rzycn0kq7XL~J6 z2r=eL;tZJr1OnGt<|C2|q8`wGN_Ux@#3Eh!9Dyd+X#Of7Q=$IPX)Iau|H)$sHH+8>V7^a}ZukBG40DMa)k@ebROlq>ep z5Zb|S%Qrbb8!f9E1W}ZW!ZGtI_5&>n#vrw}!!1SJMRc4l^HNh~6?-z*>s?8yB$_|1 znu9#?g*xjazBs9c9=eHsPskODSvl-fRAZtbDPLQto?y*Q2O*dmwkmls+YK*gy4b|T zQbomhKJ2v2JDQww{rp65?7}|7(9@5ndg|fP1`kFh2vL4#$8k_#dO}y9-!8Oz#{vab zC?x%8B|u7*iPYy=6iUWwzmL^^8XbosDGX2ENg-lMPifLtd+Sa3j_e*ves*cyhHKec z9Zdmu3QpjWKY}_h1XHL|Dc%Pih8y;KOczunu*h?|h%1#}f-A>uTf;31^&`W%2IVAY z?|^WPz#(5D*K2c=$|sc8{UeT5SSWSpkR&6yr+9S|{3q3Lt|;Q8>V(&%Vd3F#VqI`n`I3YsF|)3)7_~Q1#l5R?yyPy6N%aRFX#pr zg~d8C$?C{Lyrdn8E7&u7C zc$)1{blfXs@s-N43$lok`E$PRig|yLjF7C8_QrT^i~=92c?aw2Vb*J{Dm_KygHN}b z+@VIh*`r!gQPfs8MXy-nf-nct*D62r*$0txX^nnwEyEWv317yyo207vNrPT$WglJ= z;W{(nv(aHD zr+ys^kA9Hpl;XX8@{A*WS>Dd3qP!j9?6~W~?GvodJ-J}UJ+AlSBCjKtb zag{s4XkGJo%!4wjvfi7~d)l>ON=@~KP1p4L-MXYGv>%``{ann|^|{FQ(dIKvSKA2R zhjnH1^Pcw9@1}w&$kns_49G@1KV}Ou{Rqj9e@ddDdy@#Kv_BeB_Dg3XVrRzHefPDk z3OP+LDLi${mhg%y?4V${fXVy$pzexXRp*krNq2_Y?sLby!|sjmJmVJ)bFHo}gQtc~ zNG}p)qgJ~{PrGoj!0(7@YiOchL%ykR_KboJ7>3Vf*$8Jr=?`J0E$*q42=m5`*Bndl z;DJL-n(U{qn(BIdU$wsK*?NZV4t1b>9}t%_vhO2xqemTicXPkAq#pZ-3ln+h&ITHEF~qZv=*eGA*A)?KSeqMbbn6%29#&ITM-@zz zc0LcRxj&I6de*#GC&RtTAqXcDR7_Y{6rY_{(vR$IePCJy!j#dRs&**K5*p(xptCGu zQVw9B?WD&p2>s6D8iG)?#6k>00jf}aS!P(1wnY?Cf%G{TU6qj(Oz$1}uuCYVr?l|w zG;XlULgQM@%<5>>rw8y}jk`W|Bqsf>3_aAaZ+Po8V&AYg>V6t!$2^ZVxHllrTkWc! z$775DeAZ^VM+K$T6FKR~^bz6HgrFSy`FRbbx)?$bYR*#|UT=iV<{v#KAEM=WAOQpZq|8sAEbJ>oe?Gh z*YD%zYo^{4HG<^en^^=Dq-6gqg3&5DBY!`Lt%F>uA97Iq&Iko7f5N|bSBAqTCK3;T zHT40$u~!XlH-1Z|B^0VJvp{BUy;z>OaggbWs$Aiy_jzu&Pu}mKsG;SbycL@08j1;k z(y`}IdNFq6k-YXb>5r1?OmLWSek}4rr@URv)l#3jWuEJIpE(<uwio7_0Tih;Bo3? zw^dAH`D>A(j)c6SMR1L4AS11k+;L#U=l6>^y1q6D1!-A9jOB=<-lF5=U}9iby-*CB zH`o9m5<1eCofLsk6qy$S8;p_tjpr%ohFX~Ecr|*-YHc~0@1jepzv30Ff^3l&u^k1vG*F^@9L1VA zEUy!0bI7&0RVdy$#Pca~o(D`LS)=t)l7bYU%9S63v3sV>*>*im12fdNs`aV?rGeqm zV#28(y%`s+sUtxb4`h;9&Nvl%tAh&bzNBwfCXbNy(6?%HIvWWe!O0t$ELiIvQ;_zx4)6!w~yx(3+;dG zwzYa5Nb+Iq52c)6?^RIx8_qWSX#$w%*Y@$O zKjj;xGg6{kJB*-sc=Q2XSsEQudV3^-;^mQfxkkj9n_kd$(YY&K8PK*|=mzcj>g7T&7?(_u z_`OdkZBOk~S`TuHaiau0X9s0FpTCa|IcG!*2w?`7gvD&kx^gPF4p?=%*bP6q||UOTlX z&bQYq-6=6@AUl^%+PmOM7?J{)$(wD0f`yrO8cou+PdI5=1G(EJ{`T3 zFtwVceotUez+{;-^SK)q&{aSGrJJ38TD3_1@<48bdtr%w^N0Jz?wz2H+uQjf7Wr?z zGue+;6jXF4E@Ls@+y1D6tWHCta#VeV_APBNM!A01F#mH#UXu=9S++D!%=Z1Qc+sM; z#6sd}o`rr-cgYvJCQ{^AlV;)AKuRo(Wl1dgl^z|?_VmM+n>IIa(E3GGvwLCd>TrxM zv#n|)=A*yKXkrA+!?h%b^$8)?j)tB%rftKKg0n=JG*D$;Zu-LVJ| zCV#A54Q>*4exz@{+{O|Y=U3KPda2@f=kYao#68F}u&cSpiY9jw8`9y^2Y_LbarD{L zzUn>bLVqlh31qZ9vs1nHX>ORm^~q#@{e$}YXl16ne0g=;iQ*zv*V;h%<$S7MMoG@4 z=J4UZeO8EgW&bLRZhMWeiEF38aM@e@=K)4ovulS|sdR&d=y!rF(&@X#MZFxVJ4xC#lb9wV13;r4@ zgy7g)Cz`pjGA;dB{cow|mpu)SlfOL5U`Cd*L+O6pA9d5TFxWNB>H1v)qCD36@zn39 zOtvAvf>O>sZy*01+Ffpa89GtlV2>Yo3c8M(p+Co@iSLn?1o;$q=bXLVvAzimtgNZ| zaCUaGv%hcEDOc+DC2Z%wZe^v!_`-3P*N4HI*gGLhDGQoq$&KKSdnpql6NH*MwjPoO zezrmi;IZqJ;K7+GArY1~qVd$Z)Y!#5(kc}vI=?OSY~N9x(|9kE7QD!h4FPfqXKJc~ z2bUhk$dza>t-IRcR?@%-#=OLMq2MfvUI0hmRwba|{fqw6r{o3MK$JfahES0CjH?z5 zA}pk$gb<0WhamMqaHmDY2bj++Yag6D9)~Udg%U5NCc-13>>U1bL^DrF`1G)e9=h_c z`tTjVnu9<6;3lUL51rSAJ`ZBA(C`M8bni%rZGC*zeK(?(;s^@Gyy658j>O&jn@V5l zGx7qXMGVpY9-Nrt+E10!{~mLT z|K@*-H#)1sHSNzd{S^BIVZjdZ=ag6;Dc4bP|7Amwzt)zsh{V`A7{4MM_{=`B9WL1{b$q` zWfQe%MPDCkqQaC&`B21|t{EGO^y`F7=Z1`dZ&qlYB0U_NJ|3l{hOfy`Ug2oAGj+0D zlAx1q?PtW2-WMfMZ29vR!ft8Pw_demU_US%AGHU^(#>ekvGp48np0~i5NC@=CGD*5 zFqfs$pPs)*;e6&vqVA<8DuW+e)ZFBrS=qO3;xO(Jf?T`=$(L31MRVwxpZbDTj5-8) z=E^3@#l_IQnm&b%hj86$XV)Eeu(7R8Ekt(O*)Gasew!dciGnx(J#`wVO45OijxJu} z1BKpwNtULr^+w66{NXo*>3{^Rg0Li-G}OO>BDDbEpkDb*E4I|gu;s$9s(#}ViDbnW zXE4c!K$L_PbqQLrxj}nyEVtd1&dNaqr*OeoSHHLri%U!Tv%bZg$!@7+)$m;yhl?A{ z`xvmczNkh1wF<14=YXu1;2o)yz3R8Nu}H*USfr7Zd*CA4u605Pk`|IcoZ9%a`ht)t z5hMtB{UAWWWuzu{1lVwCzohjJR(9prodv^Xq`yYJ?Ls(K!K2D$>|h(hZw}T^pX}Lo-#^p2 z^XnUBaDFYuQx>L1uRG%8e0(9>SF1z4kRkvypuWmsOCQLhZ;cfrhl#3tmk+5sfa#Ho z9cMDTsFYofgSKKm`~K3Ry7$*|c4XDo1wv&uKWZvp#Bxj3b<2Gtiv9bD@N37owyh5D z{PrHpAfE0AQh0*Ec0`HELM5x@zmk47iJf)z;Xk`p*_o6{HkL8ir2wPL8|f4FvW>D6 zoHuIq3V1RNj^;ymAgy)bnW_m6@aKjCNdgpUIu*U9o$5UjoP3Qgjl3p`|J(F!S`M*%_^(QJI@-w^91<-HIXGd zd1GEjt2Vo(!N0is=1I0Rdsy@yJSR=jq*{X`-loYt&t-n`8+Oecf!RD*^87^o{Oijq zv>hS7^tPeuP;(+)er924smOPJGvuiTl+yVed?PetX=5{qX3c0$+Z!%TV}-R=AJqP~ z41aHY$QI4ui2?cishUYi*;${ATNf7}zE(ZP*-j;ezjr+Yw|y!l!mTi3PT6B4r4WaYk(hGuuMlF8^3ekkrdqrjl<{a3K7Pl=<^Zw1@FCMb85fMWx zs`^lGRO)^8EtL4@3cvT1$Dl0Q7P>%Q9M`4h^k(yL&i$kHwkVFHhxS7xM6Y*6=Z_ zbZEJCMoslyj4jKq-H5h@2nJsa-@k5PuUcb9drTL^k>6?gR6YxMxmc1XabfAjIQdzxf+#T|-EZ(yIvAM}lxDF1Py!?xJx2$xzBR(XE zuRFFkT$rX%r;aJyX0sMHWS>p6#a8Q{9u$R)x$yuU_#{XrjJyQ}(pRkV3U z(}r&#NMLsI5f=1FQ6gUJw3Z1r!I01=V&ADUhxAGPR>6TuG2~xZPCAU9HcAa zse=R2Y9-G_3MvoIZT0&;mBoSGUHujf)I$CV z4wic|N5KuL7$?2IT9|IgFyF8jD9F&`!dbdlW^HwistZ1}@l7(f+N)KQKMWu{LTu$wPp?Nz$#GlqBr#Vv3D6^^C!~leWsbfM_hG{yrBG zc1wCyps@0w-Q*GvbD0POH|?UX@_f8+Oi;N8af@0^*eE z=t{pftuED<{4o5H>ELaK9aSRpw(xw!vbX59DiKzKQi{Z;&%T($+L6EV;b6%F2Qt?} znj%7|U$-^$7dzPfQ%+~ASiD4mRGaC8J(*cj3$)3k6w6avR##UpPE`lX~SYoX}3 zlquV9xt_~mr=|;uQ1=NfTPyeQk@!`wUTrVx3=cG2L_3OyWqW01Zs820H6V#f*bobo$17 z`CO?wDO_DRe}0RZp>S&7I=W&E?ED*KKXsDkZJ4xsC3&TajwE1Lh{34hbY6B?{ATzO z@VWLC;5!W?Y-DF=hk@zPB%HgjFMsu?2q3RbYT`IB#{umJ{0aHeL(6 zQq_g*zuB;vwrUJ?toWrAJz0a9CpGUMAV(PR&wrNcXONIE!saLv*lu3RkgPfGt9ut& zBbuUB#OUitY^!(0dbac0&0LYUs=OHI&(_O$WFnwB(1?f{G%HI{V z*J)9u9*MHd;{!890{cq*Y;ZFks_V1gZNhJN0bJp_JQ@ku(Yvff8*N*AQHRX$&^D^l zF~#7noK$AViOQMbIEhhjlLMKETQmsLc~SGTzZ8#FY255CF+(%ebUFIbi$0sy2^mP1 z6oBJ_I?eBu^m)HU>gKWw`Rp9Qx%o960*8H^J&{GgE-Ue!kjFyKYz<7vf68>J%q!=MKyh&UxBN5=2aLOkXU8h z1o22EN86@z9sSoeX|LWtz;17$2WM^Vb?7!5$abH#i&!H01CY^@_i-%w7^Q`gzSn&N|EDU|n$|Qg17@qRTT50RUmCMIN1O zj)q9ORd(VKha@aEas{o-wY6-bj-x{!JgQKq5Indkg&LvU!1pp~a=RyF10*7mEAhZpGc9xVseBZ=d)3J#!?JJDEvx&vl(4D@{7VMJc3E7f+Cq zJGvAumH)$+(fa58DQW{hI+k4M&ga%q@7ZN9q{pYGJ690~c`G<%QD1#6msW5I3;gxe zAIFRdnbx@xD)-R)PZJrlso+Et{vl=uCYaZrTXd5_^98S%2Ncksds-QafUJjLV2Mu(5 zBmm%RU2c$?d2~sdfKa1x{es~GgEC9Td%{1bZ>3RMMksN!1&=uWcu2@Xra9f(Tq06k zf;VJ^wX|_|4YuF8qm+|(LGC%?lW9G!v7>8p2S-SFtN$=7GBab>uZlXRJYwfQgr7O_ zQ}#6rUR1Tt?_bYJU!1Nl?brWmFh>XbPP5_w6L8mrVSs68 z_C*4i(u!GVSZ>?k8j1-ROWa%@V`Am8*g|%w^G%H?LD#B+p?4=w@m?@#0y)-KcxSexS-Xn85xZ6cg%%233NM;~IXiezhW3o* z-J+~dD;8V7?-?pNF)jry&iXf&WZvkHScOc{sIZ??lAT`|RlAwfRjc?|;$@{a1tgKd z7I0GfkN}CgE{puRZgyrHBXOoHM8u}R0O~sP{_*lzW20~sT5Qoz`av25PqM8T7@-09 zwpI^|v(U+r^qs%TD_@%GXgIDh39@we(14Bs48XT;F4JZr_bwluVs8EMxjb;u9?bC4 z#AX@0G+Ou-Y5h=MhUhf~F;@^1n3IW%KnstW(qlh8IA9nYpVH9wt#746`uo|R_f&J4 zjD>UE7~QraNo#&2TDg{qFYip#;!g+a!(s7VEgMsk5sQ8j(ah_9OVdA3F0irUL}w7_ zM6?ssK0^~YUk6Lms$>SNG4?E8u){A1y(!rS)cD$eMQ%1n9NZxk@Gc%t>wb3rtz}u& z-4($L5v={f2lfyzFbY;lqYA*0q=FpXE)ZoJ)X(vCM3NfP@^$d)bRKE0^Qj33D{K9? zfR;y(Gw|kw4z>EQ%T`i-CJw2A16GJiuWz9Y9!bk$aB1J_BM$?|n~g72eAq9r|nyoWFOylmk8@f zTJ~m?9_zdV17h}$|NihFm=GWgiX=$JA4JWPQRzfB#UJ7zE?;a0Bv+;AJFgs^GQtPd z^8V?pxhSDk^7MIG&of2ad#MPe3)B>g)5-K)vi1}Dle4ruaXYT^dcS z3~hcFQ_Z(4$7%8!+==ZmhKT{mI$kYzvR{191n{sIB81yS=KDUCr9_Wy0 zp?kAJKRObU?_VBb2|@1y4tR$3v#3;FmnD4|$NfgNe8ZGbKUN#CUc+zUGw>bRo z#r2CSDTN3{l?v?+hC2mYE@T?JUg9f$l&=CkO+Sd-Mtx3z3D&>&N*{;Wjo$x@F$at6wEGd*Ve5_Bbv{k}<-!`^9uW_^0 zx|q1tZR>=x$SrSvZM!Um_?zUJFe*L!-Zf1GOm8(Q4R)w(OZX_EFvp1=i;XI_O`%bj z`gV0>dz`d^$1xc4b}PktZUuH){#3tJ>eu~Zb`(=*rS9h)ccP1i<us@ZAU;-%DU;^FQG{k4k0#7RUd%YKvau z*X64RHE9$HVKANPEZaPhY;fgM)R7L0G7LCKAEP#AI~!)eKo zT-f>sh-8|DL9c;ln2c>+pT5QA3Zj#ejH6P4ijz3$sdZ70KE0jf+Z^7thVT3-%GBEn zJC-q%S@|SbT1blYl^AA5&m}CIA?|w`2~B7@s*30Sw2~~_x~QGl{ohP&rrf3ZiL4K7 zF+R}5(&`RuyvAqIWrSrJLp>Ei-&5{(r06z6Mgz?OQ>__GEJv3?l{2KlZ1{p5XHM&~ z3!afHbk(4#P}tAr#JsT7s^32K;eL~LrDItP`ESi0p`8FPZ-q-8e2*1i5yu(6>-v*} zWn?CvfVxBrcspA7N-KgX1SdYjQ%WtU(3=xHyM5b5$=9y(33kwg1__)IfwdtrZpy6{ z0Gi9CI5f%*pxE<~6U^7}xeTU0{IT%3k4FCSIql}8!%yJHCw*^7fBu=SdZK^7kxx`Zk8D*llVrcg|5SD46H_|-^u%$hZuH@jqqW~@K` z?cZM$v~p^?dAlY=ZFQF>*toeod<+J7+?1YM8*iVJfeDMYW)zXGYL;Q87I7aBiDx67 zfmu3xK2Fw(K?jF{8Qj*o?SQxv)2Sal0~7(=T1<;u4(rrZ`iua%87Wj#Ib0@(Rz?5B zJYg7dN93)pL0WWsrV|YUY==DoxDJ}Rxs!4pvXGI`&}M&)LM+g==*(=F14A@>&DJkd z)$yIWEgq-ie(gcweefA&ZSna9h$+0#^I{JVki+#mf45W&1(*p`JkY!C*-=fTNSY^C z_xqd8t?Q<&9lz1Q*7a5o2`tv`hJ8BU4|$44@eE0^8x!QG(*J-s6C4l^jU!wS&PW3M zf00aMlL0*l2C|@2Q9JUMTWtn#(@PVe=E$)owaE0()v40QUOCVJ_0 zdbB}76j~BYbO6$v(!gb;PcPr!K{%kr`QSP_=A`E9wQ*zqh)tYQYX+3|2NACC`5KPyb zgPGEk+^Lj#MuknR?82-jSCBiso^skyM zt6LAmsQ;!{ePTth)LEgqPt~+!9+-*!V4YoL?GVn9i@FEGl- zYO$c)eQs1hO=rdU#iH9r8k6pY1eOM>Jk7%&NrGp;vX7kG zJ?U-Q@}Z@s8x9TbkXFNvX&y=&ci%c>2%=5+0?Yh|RfwlJ8)9?+oDEOQrRvojCekW! z$d4V-%b{GXbTb@VqJosD%Fi4mPpUKdN=+She5-~3NXf=x^NdotU`f{Y^^pOFN@*E^ zrgT78m?If3!NRIpBY|EPjwHx|q7Pi$bX7*@G?iZoJr#I1S} zivMi46+*~G*gG(I>Kk*gFZEIrMj8Q4MGZUL+_#s641YJY!$+k5_JpS{E-VX3*PkoTiBZ4 z{3;9KG$#qyv;6@B+o1%AFKMU&l=nykCw%L~>!Fi}Pby(W@vaMgcKX!fPEE(;rjlJ$ zym5?>fb%0rE#<~2B-bJl@s)aQQ1#RzY^ze_Z|#9OIIj?+cqvY8al?<$i9!GKA%ZAe zLC_f|=cdTL!?y=MeiTU@GsMH5ei9G~)L$*E2Q0NH#22OUN9^}IrZ?9~Grm$i)e)bu zU$G=1#jh(QAJrx2Ssdqh%}+GnN;|KDKxf*EF2@8oEDFC*fpX+ZoZ_Y8@(NfL7b;`E zM(S3~cm8_NOaXYFKM1avxtn1DDGQZm4vO$$7s&sk(qa=FTH*go157=uBiu6Vh+PUR zC#uI2S}Rfc-v)oRPOH%^=GP(Z1=g93vM#pVAo6XND4e(;%MfxFw>UkX&e+yws{xVP z6GK*EE5e8!cwy4=m87y8UvCqr_3hN}!~{A>XqoN7Wy#pJlHgB&z-YKg1trrG9|x5! zNJ$~}g|_UwAN*3ggy-b&<-u=p2Cq20XNap$bmD@f7>vYuH&T&bGmDFJVy}OzOoZzt z=LX2UDVG8YYS!B3RmFSjHUc?fB9P)I{>6=%$=!dlM0r&zvj3o&*(UbmS*rT|Rr-%O z=;wQth<8S|I=mV>$P%ES;pMdPLC1v|UjiPF;O)OrXa?dxca;q7DIcs{CMxi<>w^!wJ}mQCb^>`zmDayz{jwJr{5FFz|CEN5X~eAnX^#vFI%Ua*Wbz77`}Qoad8BT8KldlOC}Cxad0 z397*!3)_LKIDb7PP;&YvIFOBxeRM`!ntWEckI13W%N3KQ^+s1z4AfV1aoy&b_Zw?{ zszkHknYdiqyS7u%MBZYq<5$NJd)x_Zrz($MZMIq^Md1uxcAFdMDCKbw=hSK3$(LrQ zS!P@Mx5#srim?GE5Rih~A7fK&VMXTc+%~a%aju3?fwM_|;mXoV^sWoX1#G3uDI{cJ z5cBdfC7gPDp^}pWsGSU26e=T{Ntdtu?%DPg)uaj@OasrN5$cLWUDsLuJSU@r zXzSjZ_4t6GdvnwKFBXmz!DC5h+;xS+iwje*a&`KNe%eBzS_kNn9p!LvXZ&GIZ|Vm5 z`MNW`3neBJo)FH}@o`9|uM``fL(dmx%wK6klsc0s%5Fjwl9A#w=}-nraFMJInOtMv zVaBn!MaV>4v!DKDX3bO+KdGc>m0hh_$}JkV8Ba(b$V~0bqxJ<+ zi896SE1cVxhY=fPc^FW+O|g&yZ2q%#KLA>!Yi5Ae-R#F~0k4R4d(QBw-bgf4c{nQi z5!Y$$1Ty&tWB(7JgpPF8aRrE)d7yF6eB*3sI`(-?crlr59hE{t^7%qQ{mY1|V6_~XTcy4FyrU-**zGbW26Y6X~?2%JHdEVynLE7laU zU32QBAD#?M#qJ5E9WXh)o%1`zzQ{%n&MpCgD>akZtfb%F$hci~6y>ER?Kub4WC z6+RJ1+|peAO5uJo*A`pU6Ofdur5z_c`}1$=fT&!#t4_*6;5(et`jf+gE+=GgzENs& zM=$$?0)*zVA1GIuL%`7FW8?D&|I zltJ*_TsDW#5@s@PJpnf@$@7Z?tUS&)29sTL5alXK$7OmcAQv4bPP*qmn8#FEc4+N5 z6och2>6akxT=G4j)(5sq@19+!8Rd(-y$(5?Qdu4+G7Gq7I(P!gk*kVLel?-+FVq2+ zyRM`hzN{v|7bvk}k@&Qy$@EBSN};)i2FWpI;d7M`<;jO@P=tMe4(7ysaII1=S!?x7 zS$4|rkZwNL%FA2-v~j^MbD7mjGs^oivI{z$!qUM)ct%rkW+{0BjSp508Tj3Jc%s~y z4j9lDW)QI5SA$@~m(B?~n}MB9%c`*l>}+Fniu?ocN$6T0B$w<3!Y)hF5{$~PwRqk% z&RKN@+!)`c#2TDJsuB86=VA#unM?62~&0w+m=oHaCc#Iaew)7#! zSiK}`+Kid*CqZ4t%rUL}-tKFK)@9_ES*`leKDD$l+#DxiU=u>8t;gP5GKaig4YRpI7S(k~J_!C5#x)`+4)vC1~(~o!1)mNiL#7j2R zp!0~??yfu?DC=0KHs8&DRkqu0;S&3ds8c)355UxQV}%1P6@Rs@Ei?B@;rIEBt`x=# zt}8HWbdZQ*w$-1pl3z`2s1+&q{(aN!DfX;b>LBuM-~87aDRWgRmxe?yb{p({vWzFeW&D6L~>r0MO2Y8a}CWdyLT z!fR&2ZJX#n&|(neA)X9+lNuh-=>mcTG}1YQpY1J%mj3J;?+1y|##wD#djDtgTD4Rh zsQgVI0!Sc30P`sqS7d&gUPScjxaf2~Hq$BPqH1KjU9+Q&#-w|`fBpA*)+Kmtz{eIy zH+VRu`((`hpHe8lE^M|v9z(TBtd665jn~?q{Qf<&`_Jcf!!lc=S-z|_U8o4sq1y|m1+{AL5a>;$4xrKkvR*>D*TJ|2s zw!+`fD7m#5n&pBu1>sWmYPel#|PP48z{O6MmseIztS5GRk!{rlIQb=Py>6EiOtu@r$OMoi#lj?nu=6k}BZ zv<2T!X1do_0l1A8r5ACDzHZKoJ&ZF>5Tb+xOt4#YcS&dvqIcT&oK}Mcrzf(}mLe?z zsAu&4ie1N8B-#u^NpJEn#xLvd7ZzuR+o+TW1*os!jy?d|N3ZWM_6KS!=nC?UqTY-A z(FX6&4viLiv_fv@!rTwap+EihIbeW&2t<`T#t>^$Qa%ODu*`zpy$&BQccRMNL~o)q zzef!b;iO-)sM&JtI;Vap{ijoR1GbBTS0pe0N_WC6B2v#Ygu&L$(}o;fZHou_Xg~ zG-;#JR;aaK{T;T^N#|m9Wxe&;sH#A|$w;goFr?u3L}Eqe&JIYz*X*>T0G2e=xBp#y zdu#i2mm20lMDQy-c=~6m>m(?6I@B93eY(0bWO{Wn_W`bQjF{;D6DIl^YF>?OCx%iN z1^bAf$n7uCFgE|7Gn~;1#x%R+)_bnlpb^{|^SP@7mKrj!9AbRa|7nMPgxrKY+6dVS z4lb3YaxDF@ux+quj+clH^=~%n;_jo*;CkLbyopfsTO|hVn74`!dxoPvkC4NSO$j5N z8PIF-lKp9|kt!3#lt(qqm>KG6==LS*85_#!v&(rxtQ<*S`P@4AKD6Kkz>iq;V48jX z`cW@2RsU4ITG)wG9F1;Ri-=q$Z2Ezvyg3?)$JnUhW3-CU=B5-!{}?DZUKn%qx9E$p zxmPfb%muInyayl5-+qgJS1W$}LfeX-ORx-NGuecI^A zh!V|lepYD_Gx_H3>?B^B#rqv_k<+(YtZ#^yQ4#Y>)6)M%VJ@%&cz&{kG$Vqso$_FO z^R%JNRy3bxG-rtvO$E1_YPGnJB_wzeI;%T8C0>UFMDkR3RQVXo5P5L#dyre4^E;Wp z??=?=t7&E(P24};wqs6iVNV-v0%8&nFEhQdbD{@P$NhCF)=-Ujz;l$Z?*)xmyEjsFAz7IfP)q}U!yQ(z>>V9&+t!4~@SR~*g z{;vx4>P0Ntr6sTP>;vTu`SQ;)bkXuJdsHbFwrp2jnV%L<agv1t2$yFcy`6_4^G0nmwX zBgwV;4mvYNTOY_%uA&y_WK8cTXf@)*-ty9tfm)Rc;+dDY{!0ru?YVzv-W+jxPtwvy z9RPq{W-*CuwRioP)~d3t%brK8^d@1*?IdyKnt+9L(I0=j8l06owG+-nD&)r#KVq%I z&@#>2ei=MD$XLF_a0hG7(8$-xmo9Nd!hnBV=AUuu*fK+mAyXTG?-2|8Apu@9w5-# zp1gRSOddzWRgt;xmtHYWql>XJZsNlkXE%r%q%8A9={!0 z^apq((-D^t^dqOsQ18$WS_#BZn|_93vl;_`m&HuOKKG;G+bJzqhJ!i=U%XI?qg~}5 zrC77V;-2RlWn~rqpAU+u&rX?yMkwQmY&RQma*M8Z=Woh=ng948%?X^c>j$I17hf1F zEAT^q^ogujFCl;x{{=3ZZ1Wf-@2~~)9Si7`fR5PiX&+#swKP%H17!VIQ;3rvs>hbl zxd(+v)@wQ-M)5N$2R)E_5`{NNfm&KDo6Py=)l}jJ{fyy7PnRk$Dsz{jfv6JL^)H43}WcWq)i5; zk*fvNiFWHe&?9g7*AWJAB%w0~VrE%Vkc|~URe(Eb2Son6>t=E%)xWa$ucfA3UwVZ! z$E%HTGI^4oY0q7Ck4rIGYcPNtiRZL@~JJMfw#NGBv_|cG{~BNRW-se?X@8F z^-js7(GCN%0jcJg9nVY&@L;HyH*h-l(25joiyw6?VPZy7PQE5bU#N1+>!u0}GBblL zQV<~+g3E0=6-KV~`UEm8dg!#PsbX&O?f(>CY#Uk1aI~)BR(ZCrH~^T-uer({MMf<* zKMvCvD_`^d&;GKmkB=D;@0V{}ga5dE+|Ju*qQ<2gw`T^;;Vl1cBY_I$F>LPQJfWIt zPu}}jL@jtjL-v)vHM{XI8!b?mo4P5&o8q3#o4_8z+bZ9G3`18Z((we6cPxdEkhFwt z{_`ynvcC!!45(o}OzfQn$S~ka=;0f>q74Xu+5T(9`Px%mEA0s?1NRYdLi6gDue+fz z2Is|sr{T;dP}wmIIn2~6 zfp4`J3o0DK<-6O@vHN$jUyh)r1IPc!pWTd`e1>Iz_F${*;7v z?1VKT+7!G5fS!Ou2GK+mQz=g5afHjUj`Ey6aOj9Lp0hvItTTtQy0tRvy;vMlbR?4dd2%Tgw*;a z5e60+&ch@21ZP-0I32q;6mD_|k=G8tEPkA@|Mea8)>yE$^@SN06x8<{al+J1-Ncpq z>e#ATS&Ea3PU%~(0wD|Q`BCrMT}`;=v}DdUUW3CId1hQX~YLI_Zl2W99Bm~$dZuCa?U^ds;TvPF5%RfNSXK) zj`NW+<2aA3++g;Eq{G7h6r{n}5@}Q#*q>;^u|=c)@YQ-T1c$tLS?J**(T^qdqerkT zOPCSF|Hq09tcTLwq=<||A%cskHdHP4`QWSXd3-$daE_Y&meD1SML-i@BF8|s&W?Ya`NB_|~4|mizWKa|^;9LFL?#l2fvhtF7 zO`!&)f*1_w?dc=)HUnC%u`1ckl*z=0QaxRI{irTECN$y`-RwYMz&RA5(VboIfQ`_A$0DusUW9D_6{h>L5l zq0Tquz2&xE3XP_i$K#uz6+>J*Ep~%4L8W7R=96N^*vuf}( z)c&MBoJMCZixBY4RiJ?sTZ!THvPRWtpkd*#OE}uVwMwUrXR5SvX}MoTV8CU13EG5P z^bFFdq4tsTH6p7tz_-Nf^L4l!g#s2&<=~^WklA&J;eZ1Uy%yIzJj0*nJF-!#lQAAU z4O91@TT0JLFbaYZI8jx|vUKwQ&cWITjxqDqZv`zHH2`v593RGFhdgPvX!Xp`TMxoC zQ!f0HwAdpd5fz3S`>~y;?@ewDn-0l~Yglx_bnue1yJ)sjGir?Rbi~m;OMh&Gb}crI{17(Y-!OL@c{^PF))qmU6=&Pwrzf4A^7$dVB#M#c<4((9M=z>$n~+ zW*Je-z+y!d3YoUH0Smo$SsW3f5hZp{12k}jjZsPbF|eT)10Bh+CO{%o^#smC1o^p+ z)<~MB`@u8)&kVcz>B&dDk4pe&Tq} zqvWX3{nFmytc>qYsc~{l@^ffi`@;H?8;`>-rN2}dlaz2*Vo~MVbAxVMd3{#{sgbnN zN1HTqY?x$Oq7I{HPt_lX>bo0{Ikgz%>9CQ0uN>F^yj^zqoVjD!XqzPG5~OlO9c`y~ z-~nQc3sS5}JEI00be036*H;4H{TK}zX8F$6YU8 z+=U@RJaYZvvCVRsT7^tL^*T$@&%48g& z;cX28RN$cJEHF%u{(PLYr!>6z*BG;LVx7^v_Ek&(Z9?7D^TNoS)G!(E@=#A9BnREp zBN_jeETjaM?CB3vbfBbbH5^HVK2jlk{GDJPkKiH<8`uyD-g3Z^7$^gi-<&7A^fftG z-^JI?z2jBgc?+q&i{1c9epY4EkJ@8eiFG`IvPDM#ChXiWa6@m>+~iR(zk6KHP@0UssWiBSlY0qK@9N zJN}!j5vWH9c|0Oz+c2oQtWMWovEE@RRZ)_gCAeuvkJU>rQ(uVDPzHfY1=kqq76!$r zsYNNNH|E$xXsJc1RTDN*A_ztp>9#M5)aRr2rH^IkLvVedQ)xMWy!G!3irLQ8=zIa6lr}k#j33%;$FeH<__8R`swP&nUnj|Q?xP?NiDQwQ z!CPKtHRln}cyw?pJzNDedx*R&VtVf|bA~x?+N}7t+89o!{})%-IYyE=Y+847$g)&W z(>ZB#`Rc=X{mxH>r0raCN;NT|PMzn|2mkZ>osp98lmfU_$FE`v*!pw>J4H%FjP`3d zeNU?lLXhPjF}(!n;NjHi%zRc%aJP*8_K1eQo-^Hitj3WbMjU_vKtL=HAOYZs%bHr# z_%U|r(-rS)P|cj@DPR*Yt2-NI60)~NZ1sIoZXRad2_~z0LF6K8`Q2%e>MFFimGixU z{kmbyn?!^JD(A!DcUU_Ft?#oHpWOIEBvG>;TUz%Rt!P9XCz(RP{HCzD^ z#GN$Yr3h-_GGlyf@4zG2SR0Y-g844TlS7;q)H2-q^ zpp5K_bN2W0CS*EhQ${;06-g9vTA%`MmUQA%3u&vN=~Bd)X`j|iTXnH zkd^P!#g;F~3cHKO&zF{^+*SGE@h72Med3=X%f-#)-HkWV#FC*tzey!qBuhP47x3k$ z8w)0uzC+XHcos129`!d4{bGcf?+9_bOmZ;v;jWD*X%F}JmIe8HGafV;;r-=)8b<=J zCE=Z!v0jlj><@*9M6OrwVOh^<8+%*jMg#JqZy1jcWEFp?&r*yEx};G1{gfNYHrTwS zo5w7F^lwaz|7et1?rS@nb7jAaUe}5DsEm0>`u}G@k~jZ!UXd8!oO!K<$P-6piZrDn zBL^kif#hKE#y2lak!8U7MG+E(UnY~+B!5MA3*R^aCvmX#lS|0GJG%!d*B$Q4i~n-n zz&-%=1)ujrp5Dm&$`f@V0=bT;VD~&Ky z(D^N?&>vS?06>hx%dJcCNX8bt>DBY$oTL=mi}CGVN}oj-GuJVoO7K2dyNr08wsEwJ z?t*S#_U+d6o~*ww{x zMT!MAos1OP4;~tV@T9hb$U`bv1!q3})Uape_ni8#KdOt{>)sIzcr)dmLll-f_{Z4# zaH8r8Hy3_x_lr#ly43n=;Fpdk4T~pOgJwPnnI;uRCrNj+#`Z8<&Adm!hQm@ns3?nNwsk04_GY#4e4L92&#)zJh;7HQ*OM%rGD_ERKexmHx^Mp-8jns)j-!=!TT_ zfx)R@OFug65GjJ9yuNkFmOMLp<;vEv^lXpcQFQ@9O=8lJ!Rg^zfX+0DPV%S`86?ea zxh2ixK-wCu`zf4fE9-8pEzQN5a z^w%aA8B@~L{OXlb9Wem2ID=RkF!q!Ft4qYU1%MoP&Z>^!N%jm zUu$5$?cYa#?9)!`&%~x^`QMyxsxf1um$IU$N$JVve%s{iT!y|Lj;pw)v71}KdB6Xb zyFx@rp(-<2VthC*zJ{e4UT@e5vKxj^9pY@`=q5GT%xk&T2S$}#{xqH& zK(Q?k8z`oCM9IGvkT5nsBGQY8{Oo5-mj3WX_esEzEle13!-bzvsXnFa_?R&-6#7>6U(6e6 zt#;lIlZIh>9O3%@o8KlB=C6yPxBkkWs~Qy9`piz+ww|v0-&%m}sP*|CTY5WSte7ml zjJ~aw=5IOBM`?y?T9+X};+@R!*Gyy=en&z5fQ-3Jt*D z{QQXq4Inwgm@+o-CE9Otxtx6E{WFKB#^gzRN#Zj`=BiY)$lLYAiNjwCP~qEqD%V2wbEbRr`5 z=o7m16~zBYP`tYp#)g^pbt|BqE*GvLp7AB;h_rT)R&ZIAD@v2HhgxNDoW-s=UG=#$ z5KL@JNc1{(EwruIPN-CnNdAQa_tCjmePvroqVB9=b+qzkKGql3OXq}D&WqzX_rEX7 zN&DTN)$*yv?w~z4_%vSWGFW+;>h;efiBxXy`WMSRU&8V?hwnNN=#0(P+VadpHqPY5 zPoH^O^3SU;vxYAQtt#Glp3nX^X~$@8qT1NSiLd={G%bm#N49HrTPXVBzXh>&5??Ye zuH+k==A`-GII?DBGwlRom9W=(uQ&i~Q{3XK!pj<3c>3$Ja3oLV`W z`(Z(^fADl4yty?|F&yd{epWyaxS_Z+L1n+TXN!K?%c4EN@8gTvY^RE~NQx<-t>PI? z+!YppyJAb3#v$A7&*4r3(zso7v{o_f_TQcTMDvMR&fj*e0zk_(5Fc6h(V-NFA#`o# z5FT{K!MytZndJP$75K_|3?ga>?HsEx+eMlDgA-GiOvA@%@0Yo?+q~%(Rt{F06mb#* zvsEQ71(iwzZGIyA3juI|4=XIF$#q7VOr?ycicVo`HC-akLZ$?7@Ie^p%0DjBaexzg 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ºrMIV--0p7b>~fRS)d?}zNgc@0it=i(23e<8r0k_G@X6wIR$DWV z|J)v)x8534Si^n<_C2WKyJ5eLHKss!CHCaT)nPwv-I9Ev|AX>R(_-`+^S&OwGVV8D zv#!r_u7Y(o$S&^mX#==4}Ff@9m}T?r!SBm~-D9 z=)2ACARES7`NCUt{#P@p>6t)M?tew_#ALQXAtGTH;W4wt78JAJiEZi31NJAGqH@1v zJNxC#1A?8ieY3R5GylaLU>=~aLjGNsDAs{E=Y(vB{`0)Y7%8_G3mKBnE90RzMBj%0 zF`s&$>ZWfZJM06VUmyD4gSFn}c9W|U6MPu3=dhhl$hN%a z@z`%G8aTfpGqEmVI`)>Qdt;`2u66hIQYXgWiSc*1Tx4~0klBX5n=Pcb*+>V{7>uO0 zSjdXGp);F(`ikLuD(1Do{pUT=9GP!7O7eeoIXqAVrkrAX{U!bP@Bt~0Kc91A-NzM> z3UgkytCZBK<)ldi4g&ih%RYS_F6wiDIAwBnih19MInLAz>PCM$G2Tv#jT~kx*^Fi~ z>y2d8>PfHGkyfc8wMs)OrJ59N3bG-evbp_j?b;ZDTk-B&V_4V^%~82E?7QG|fzL+R zc~iXejCHLFOi6a&Y#FitEa$PT!)u@C{-BJ;aq=X!x0)NfYy$)Se&TGE<0?fh+_S>^BT3|UMvRhg&16QLC zOr34Q{Aa&}Paa?&W|@a&Tty7}@0t79n>85~q(#43{^L{w`FV7L{Rw$k&K{96kq7fi zjdi6$U5XePxpzQ5mtVIQc@ed8*In6fs)!2UrnE*bWoaw&u`nt!yk2Zg)ap(*j z&Ihsf(SPr?kG83~|C#7N_kDs%10HbsD%fdMuvgl5lmV-eKhIbD`JO5Af^VJiO!)t@ z_CbZe^f>$Je2xEwy>IZ`jmF;ZS%_qBoPPqB|uev!R?U_A`=pY0jg`v>+u=xpC+|G`%-pZo7l zgAFXcsL)rtJ@@qRrRyT{+`!?8Jpfpf>dV1a5#Ym$Ey$!IlcwG72E5chJT4!yTwwhX>@F(T^oi2Le zjmx$hw+BeybcE%?#|dARXCCnR=e_^)`Ny`4WSoELIR8BR|3vM9C{K-YEg1*MAT2ZK zrKKa{an!H_v^})$L(SCXR0I9=JnTzV@GCV>UE1Gx|LQd!9*s9u1J?jO+syLtke`=r zTtnwS^qzS1A3g-O9jb9QYuJu4QGMsVkM~sc-<@+5cFEG!BemU?cJN`{szkYRDzIFz zxm5$l!?p|dD>O}ALbbOp(AD1hys&MLREDqnion!G?3Y(!-h1W%+dzf<|BRK{rc;pdO<0M0=XFvtV32MpRgcn=UVApEF82HZCw%S^x=VA-g* z@B|ss_Puv{1S~FWU`ed=+ThEshre*ZUgZzlbLfEX4jUEoLOpFQHP7&uj@Hl7o~Z*< zQke%H%)`JM@aO;oy1$SEpaW^rAqRcab%6JKi(VpA`hmYUN{fH$t8EzfT-v@D@?D<5 z@5&cOQuX~Sgl)EEMJ%;KUuBy`{md=Y`tUl^1|+vr?$Jy1247|Sx(EDLH0y@IX9%5G z4nLTX16dAEfF8vA0NZa_7J#gNC3}G;=P(&_k5FIHN%Z~TDGxq>czaA?#XmJf+P^S9 zjkcHb9C#ae?m}yLPCw$1F8E$xH)vyQGjstbcw~%_jfqVitzLfCzE%34jCa#RMzn+f zD#$|Z!j}b}U_Vgpz+NEM!Js|}{Y}`kc~2P53;rKt-cfLzdNAMZIY&MoqzCzJ? z|LTk@N&)UNj{N8o9^ zLs-`9+K8;)&Lph+HQU8`!|RRhoNOOuzb5-oq$Dy3k&ACyYNMF$&QmP z>&RJq_Th~zzl^tj?|dZ5|B)^-Ph|yeQ(*XcPXIA5*dD@mA@Hi(7FBRrx{!ArBVAj< zWOp0m3bPcew^g;?zgqYU*iPIqCxmLT?=YUF@uqn~7I$NQcjX-;OXfi`q*lmnnTHPB za}GX-n2d|;StHdo(tZ23j9>76z}Q>f6Il0WEIaE!e9bW#jAtI{{fW3w0RcZ~n!fQ3 z-2(V1vG+E^2g>$h_5Ew8;lb4ny5zklwJH0HjH&xW?HLu1z&?5PMAYjk1AUC{j4!sr z4q6A_z~`(3>Vc;dJ`zd(W1f89X4*V6;AhHZ@e1XNc;UyDKNCdq2iBgbop$-M*Oj!B z?S1-?(yL8jdAD^y@9E|9F;eys;k>w#@~-3^HR7l2I3LWw@M(k78?K~`iFgNC&END$ z_s?jRes^(Y+-_}P>SrC{dDIC!#O^TgqU&yuISox$YO<74n zcG79}k9(_{-=!A#`|I0?)9$ZoCk(IjP22ZvzYly`Fd1A#)h*Ol1s7FaJ5e)uP}4SM z4B5Bcw(p{RcV%OGU#rgK`l`;>~?^~&G zJ{Cxg53X6}ou~PRXK!gijJXQ2=`FJY@AQ5)o@?k{|K^A-2!(Eu+_QbJSs9-Fgs=CM z8xlY33Itw#!}bTgpDS0#{kk18ar^om#_`0FdcVup=7i!{N;^tU`1L!tl~PA^!RLrE zyCkm45L56GCG97~H9YEFhGl!nZ;gm;)kf#3$AjVmru?2T^#lsFCmQ&?@f4tW3x5^*L4r9G`24R?tw9RkmC{0<+8;T zx%HBqi)2Z}&CcsXoR~T^>u;KX^tsC5w59MPKdIT8d6<$=e^hSxcPv(kzgb$^nY#aaZ`(=rl%-ee0;J_S)WJB}7GPWlVnI0G1DMIdxQ`ZGTM<;tJtMt$QwHEP)UC?Khp}>g39xF&-MS;O%9G;*791Gh+ zJ6yEr}}jE^D-FePYoz%6*A+3B`Gye2{OhaerN3OVz;R3G6p;-X0wIr@(@H zFyg?AGuGSo=7$3qD%f9YfTiotdx84Y#xdigxjubT*&NC~Mw;!#LpFNgH47E4sxGwT-8z+TdC+3;4=5<6=B&`us;bLHDj$AkL$r@Gp35|4GpM^@i~moY=rHHv1YsR}VW>(llfF)uZpEV1%{WUwJ-t~-jtxqZ`?#Mkl5E}wqJhy={XpB+g zae&X7IuL*0`7z#%@fQ4ZA!b9DhrPS>1UZ2@wIQa0(RbGUulHI5GS9(JHs-o)-Xaf$L`+MEllE>cHIRU$@pM+GaR#0SDCyyqAmdeVDhEi1RTbHUIJN zj^1z?i5Sx;+3O?OI+-uPqHpI|Lt)cg6e-4-`Oo-65AM#1^(N{E_Jr-=rW1b_|1-X- z3s@>hrlfuMW2(d0b)Rb_Yfn#{d0o;RU}cn)4F2F88)*!b0V$EfCysIEm^Q}cvmZ=g zVBr5?AAk$7L7t!Eldq{4_)Y#XX4MIdkG02524H#Qr~X3jo<7nOZQ}YEzlu0hC7)IB z*>3RF2H5i!aEzqz!7vV={csp};e%%XJA5yu<8J|X{FNXcf1VF^{BHr?%JktEWO)BG z(t$J|pAi^Kb?J-y*lx)6;S5{Qk24Hsbsa6e^gA5OY=~7Rf!&8j^DJN_T?33j^82c!&F=YZHF`oMM*av!Kz!oKy z4(a9k(vw%qAK&~+%WaFO<@bm~{Qbf&Py5~L^V=^tZ-0SU_D0)Q;6rfU^4e#=2jjlR zs-O2DDt(nS$$QE?{bH;F&XliAPXb$wbBgVS@@Z?}vs`+wC(rOyzDat6HYlam6$!r+ z;}9?h8MDtg5z&Uci~WxpjEe>K^?uZ?P2YFGQy$CYun%e|SLmZ;CA#pO(}s;wYK6U=`vsZNs-W$Kvvbx zi=+<3GnsJCm@*GFz^9O@PAeG|Bd?3dcCilO1a=JTuMM(v;7E1)x-WlX^CQY-u`V^f z=TtXk@o{59(eoWy2ksn?U7PnH*lgFEBV}ow_y!g9t&8+XU-kLAr}9tM=r&1Pd_5cQ zJ?K}zxstew&U5vTxj#Bjj#KY{Jl?t{GN1cw!yA2CtEIcPRfibW8z-V{R?w=Cbp^jyuQ4Jw-W-tiGsF)5SRa{pNE?}B z^W+&TZF)B3J;Tav)G|NZ?T#rj;@cQQ`inj|bEzsgwL=w<;=%ThEzTbHj5tLq7h{;t$LPzEL6vDd9&{L62!e9EJ)qm?kjA zuH2j~8LJL_@8EUdbabA4?wY3CtuOsW*Z+qSSx@F! zTgkNd#He^X?T+1PortC8GXbLB_qsm$x|y0F?;>s&`@$u0&)uymAun=VMI&@m`mC0^ z8`^_B?Hit&rF(8?y%BMF*$V&UShfX;xD&{}LI*?qjfg{HT$b?1BX$S;61os%WcC57 zBv}^kc{jWc$Z&a7^s>M+wt~M6&j3S!l=Uj67JR3GV^dqf_m*|r1-69a6gkF`^&0aA zDK$M6FshwXpIlblfjDCk-wYYN7V%`PH?d61x-6EP>P z_;!N^x(e>g`y+uFj47(|^&LpyLD%v(Y*_a9!~_Z41LO~m=i{FaI#y>5Y~T2?j^zN! z%TAC3_5dr%L8CO^gY8pa$l&XO_atXHsnZG#@qyy-$exO@lZ zmgP(}8NN7A+AksJpQ$C~u|GvJAJk#li?Cn4r4C@c1GNz5Ohr19X9FaX_!`0#YP@1URcep<9pCTanDC2|}FUJ^h zjt3DK?_o08kgSONjCavV%lcJb{%K`k>Z^!DR(qGt*TCc5s18W!!X86%%zwt;3fwhh zt)Vi#BCg#hh1_V#Is7Kar}Ddy6Yqwu>QrppDd+F?8P@E8e>GL^U9R^v?9MkD zqVx6umtf-j>Q&pw3hcNc_plq-i+`B2j$DL^#8kb?5?OE!u(R*5PAURt1+w=k&%M!7wCi7t1;=`=IY-B| zS&dfCNY7v=i|%vun0l(46GqB2+I^Ojcz~`0jU^|Q10#WK;#WOu^R+G0H_MwKJM)c( zX=}>xJ;pZ%o?iMFwt@KWggtez|E}eyET`i9YgPD5@8JK{{?a2_|CFJ#neTc38Xn)M zq$S&hox`*DK(0AsiYa)A^XZ~xuNh)wVh{0t&vRWrGoVp3U(&4$$~wbwXP-SV=cl@$ z)K7p1`$E2c=O3UC8MU#6Lwcp>Jx{6)&->g0IiGPNO6l$=8KccH8vNZn2fl%+#kbQ` zE8-k2iz0V=-tkT~J4!y$MCUDWI-S4l`uJ-%eOe{HDbs=P%s63hvA*#EwZP8nhW_NP zy>u*rAKwI9UZXN5_d^Tpn7lvnIm)q}Y(L|Doo&VKh_T1Fj=DeayGyLQi`tM;QRae< zRDOHW9`uv}8Dkpbk=ee^=L2J^oUrFP&(@L) z-$`-coHU-RgU#m*Db7^h0exs4+f_ao#24xD?JkznxD2*kvA#Nh*&U46Vay(|mtFWS zh9W$3HrI=Nt;U#8dcUU)Y>Vp#k2ywIVElORg|5kaqz1OnUg*2vvxrfvoVMaV!;=A; z#_5~IoaHk3o6(3fe7y&JG^e6I#Cz+p_nGsL5tYAAw!9-ME&L6}gxybSS8wmLJPo~k zcF=pC`aLPW#gw28O_gi>lgSJn+*I%fvnBu7QB_*0*wf81g?I3``zR6TSXjoFp7*@d z`iIv2O1UIjp_~~!m&*TmiH}j9koohjr2WDA*rJ=g-}7Ae)X5)leOASW&#OH5Ceuj{ zOmbk71Ctz>Q4oq@jk^_?*nB>4D2PQc%$$?1@{Qtv&{|6?%$;|)& literal 0 HcmV?d00001 diff --git a/DrasticMaui.Sample/MauiProgram.cs b/DrasticMaui.Sample/MauiProgram.cs index e76dc55..9f0cda0 100644 --- a/DrasticMaui.Sample/MauiProgram.cs +++ b/DrasticMaui.Sample/MauiProgram.cs @@ -2,6 +2,9 @@ // Copyright (c) Drastic Actions. All rights reserved. // +using DrasticMaui.Tray; +using System.Reflection; + namespace DrasticMaui.Sample; /// @@ -15,6 +18,13 @@ public static class MauiProgram /// MauiApp. public static MauiApp CreateMauiApp() { + var stream = GetResourceFileContent("Icon.favicon.ico"); + if (stream is not null) + { + var tray = new TrayService("DrasticMaui", stream); + tray.SetupTrayIcon(); + } + var builder = MauiApp.CreateBuilder(); builder .UseMauiApp() @@ -25,4 +35,16 @@ public static MauiApp CreateMauiApp() return builder.Build(); } + + private static Stream? GetResourceFileContent(string fileName) + { + var assembly = Assembly.GetExecutingAssembly(); + var resourceName = "DrasticMaui.Sample." + fileName; + if (assembly is null) + { + return null; + } + + return assembly.GetManifestResourceStream(resourceName); + } } diff --git a/DrasticMaui/DrasticMaui.csproj b/DrasticMaui/DrasticMaui.csproj index 08dd6ce..97a04bb 100644 --- a/DrasticMaui/DrasticMaui.csproj +++ b/DrasticMaui/DrasticMaui.csproj @@ -25,4 +25,8 @@ + + + true + diff --git a/DrasticMaui/DrasticMauiWindow.cs b/DrasticMaui/DrasticMauiWindow.cs index 1771a13..31ac3b0 100644 --- a/DrasticMaui/DrasticMauiWindow.cs +++ b/DrasticMaui/DrasticMauiWindow.cs @@ -31,6 +31,6 @@ public IReadOnlyList GetVisualChildren() } /// - public IVisualTreeElement? GetVisualParent() => Application.Current; + public IVisualTreeElement? GetVisualParent() => Microsoft.Maui.Controls.Application.Current; } } diff --git a/DrasticMaui/Overlays/BaseOverlay.cs b/DrasticMaui/Overlays/BaseOverlay.cs index 50e05e6..4d9181e 100644 --- a/DrasticMaui/Overlays/BaseOverlay.cs +++ b/DrasticMaui/Overlays/BaseOverlay.cs @@ -66,7 +66,7 @@ public virtual bool Deinitialize() } /// - public virtual void Draw(ICanvas canvas, RectangleF dirtyRect) + public virtual void Draw(ICanvas canvas, Microsoft.Maui.Graphics.RectangleF dirtyRect) { } diff --git a/DrasticMaui/Overlays/DragAndDropOverlay.cs b/DrasticMaui/Overlays/DragAndDropOverlay.cs index 12fb3bc..42f6cc4 100644 --- a/DrasticMaui/Overlays/DragAndDropOverlay.cs +++ b/DrasticMaui/Overlays/DragAndDropOverlay.cs @@ -24,7 +24,7 @@ public partial class DragAndDropOverlay : BaseOverlay /// . /// Optional color to show when draging an item over the window. /// Optional window element to show when draging an element over the window. - public DragAndDropOverlay(IWindow window, Color? dragOverColor = null, IWindowOverlayElement? dragOverOverlayElement = null) + public DragAndDropOverlay(IWindow window, Microsoft.Maui.Graphics.Color? dragOverColor = null, IWindowOverlayElement? dragOverOverlayElement = null) : base(window) { this.dropElement = new DropElementOverlay(); @@ -63,13 +63,13 @@ private class DropElementOverlay : IWindowOverlayElement public bool IsDragging { get; set; } - public Color Color { get; set; } = Colors.Transparent; + public Microsoft.Maui.Graphics.Color Color { get; set; } = Microsoft.Maui.Graphics.Colors.Transparent; // We are not going to use Contains for this. // We're gonna set if it's invoked externally. - public bool Contains(Point point) => false; + public bool Contains(Microsoft.Maui.Graphics.Point point) => false; - public void Draw(ICanvas canvas, RectangleF dirtyRect) + public void Draw(ICanvas canvas, Microsoft.Maui.Graphics.RectangleF dirtyRect) { if (!this.IsDragging) { diff --git a/DrasticMaui/Overlays/PageOverlay.Windows.cs b/DrasticMaui/Overlays/PageOverlay.Windows.cs index 2d2634b..966274d 100644 --- a/DrasticMaui/Overlays/PageOverlay.Windows.cs +++ b/DrasticMaui/Overlays/PageOverlay.Windows.cs @@ -133,7 +133,7 @@ private void Panel_PointerMoved(object sender, Microsoft.UI.Xaml.Input.PointerRo } var nativeElements = this.HitTestElements.Select(n => n.GetNative(true)); - this.element.IsHitTestVisible = nativeElements.Any(n => n.GetBoundingBox().Contains(new Point(pointerPoint.Position.X, pointerPoint.Position.Y))); + this.element.IsHitTestVisible = nativeElements.Any(n => n.GetBoundingBox().Contains(new Microsoft.Maui.Graphics.Point(pointerPoint.Position.X, pointerPoint.Position.Y))); } } } diff --git a/DrasticMaui/Tools/PlatformExtensions.Windows.cs b/DrasticMaui/Tools/PlatformExtensions.Windows.cs index 450651b..99db74e 100644 --- a/DrasticMaui/Tools/PlatformExtensions.Windows.cs +++ b/DrasticMaui/Tools/PlatformExtensions.Windows.cs @@ -29,21 +29,21 @@ public static class PlatformExtensions return view.Handler?.NativeView as FrameworkElement; } - internal static Rectangle GetBoundingBox(this IView view) + internal static Microsoft.Maui.Graphics.Rectangle GetBoundingBox(this IView view) => view.GetNative(true).GetBoundingBox(); - internal static Rectangle GetBoundingBox(this FrameworkElement? nativeView) + internal static Microsoft.Maui.Graphics.Rectangle GetBoundingBox(this FrameworkElement? nativeView) { if (nativeView == null) - return new Rectangle(); + return new Microsoft.Maui.Graphics.Rectangle(); var rootView = nativeView.XamlRoot.Content; if (nativeView == rootView) { if (rootView is not FrameworkElement el) - return new Rectangle(); + return new Microsoft.Maui.Graphics.Rectangle(); - return new Rectangle(0, 0, el.ActualWidth, el.ActualHeight); + return new Microsoft.Maui.Graphics.Rectangle(0, 0, el.ActualWidth, el.ActualHeight); } var topLeft = nativeView.TransformToVisual(rootView).TransformPoint(new WinPoint()); @@ -55,7 +55,7 @@ internal static Rectangle GetBoundingBox(this FrameworkElement? nativeView) var x2 = new[] { topLeft.X, topRight.X, bottomLeft.X, bottomRight.X }.Max(); var y1 = new[] { topLeft.Y, topRight.Y, bottomLeft.Y, bottomRight.Y }.Min(); var y2 = new[] { topLeft.Y, topRight.Y, bottomLeft.Y, bottomRight.Y }.Max(); - return new Rectangle(x1, y1, x2 - x1, y2 - y1); + return new Microsoft.Maui.Graphics.Rectangle(x1, y1, x2 - x1, y2 - y1); } } } diff --git a/DrasticMaui/Tray/TrayService.MacCatalyst.cs b/DrasticMaui/Tray/TrayService.MacCatalyst.cs index 9691344..b32845d 100644 --- a/DrasticMaui/Tray/TrayService.MacCatalyst.cs +++ b/DrasticMaui/Tray/TrayService.MacCatalyst.cs @@ -8,10 +8,6 @@ namespace DrasticMaui.Tray { public partial class TrayService { - public TrayService() - { - } - public void SetupTrayIcon() { } diff --git a/DrasticMaui/Tray/TrayService.Windows.cs b/DrasticMaui/Tray/TrayService.Windows.cs index f2789d1..82ad068 100644 --- a/DrasticMaui/Tray/TrayService.Windows.cs +++ b/DrasticMaui/Tray/TrayService.Windows.cs @@ -3,14 +3,29 @@ // using System; +using System.Windows.Forms; + namespace DrasticMaui.Tray { - public partial class TrayService - { - public void SetupTrayIcon() - { + public partial class TrayService + { + private NotifyIcon? notifyIcon; + + public void SetupTrayIcon() + { + this.notifyIcon = new NotifyIcon(); + this.notifyIcon.Icon = new Icon(this.iconStream); + this.notifyIcon.Text = this.iconName; + this.notifyIcon.Visible = true; + this.notifyIcon.MouseClick += this.NotifyIcon_MouseClick; + } - } - } -} + private void NotifyIcon_MouseClick(object? sender, MouseEventArgs e) + { + if (e.Button is MouseButtons.Left) + { + } + } + } +} \ No newline at end of file diff --git a/DrasticMaui/Tray/TrayService.cs b/DrasticMaui/Tray/TrayService.cs index 976e7c7..c0a3497 100644 --- a/DrasticMaui/Tray/TrayService.cs +++ b/DrasticMaui/Tray/TrayService.cs @@ -3,16 +3,25 @@ // using System; + namespace DrasticMaui.Tray { - public partial class TrayService - { + public partial class TrayService + { + private Stream iconStream; + private string iconName; + + public TrayService(string name, Stream stream) + { + this.iconName = name; + this.iconStream = stream; + } + #if ANDROID || IOS public void SetupTrayIcon() { } #endif - } -} - + } +} \ No newline at end of file