From 8ea154016b15f73f1f114f967cf8a10888dfc038 Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Tue, 27 Mar 2012 15:14:35 -0300 Subject: [PATCH] fix and changes * win32 compilation fix * add buttons to miniwindow * dispatcher events fixes * ui fixes --- modules/client_topmenu/topmenu.otui | 1 - modules/core_lib/widgets/uisplitter.lua | 6 +++- modules/game/images/miniwindow.png | Bin 40112 -> 40107 bytes modules/game/images/miniwindowbuttons.png | Bin 0 -> 551 bytes modules/game/styles/miniwindow.otui | 36 ++++++++++++++++++++-- modules/game/uiminiwindow.lua | 36 ---------------------- modules/game/widgets/uiminiwindow.lua | 1 + src/framework/application.cpp | 9 +++--- src/framework/core/eventdispatcher.cpp | 18 ++++++----- src/framework/core/eventdispatcher.h | 2 +- src/framework/graphics/graphics.cpp | 13 ++++++-- src/framework/platform/win32window.cpp | 1 + src/framework/ui/uianchorlayout.cpp | 21 +++++++++---- src/framework/ui/uianchorlayout.h | 4 +-- src/framework/ui/uigridlayout.cpp | 8 +++-- src/framework/ui/uigridlayout.h | 2 +- src/framework/ui/uihorizontallayout.cpp | 10 ++++-- src/framework/ui/uihorizontallayout.h | 2 +- src/framework/ui/uilayout.cpp | 2 +- src/framework/ui/uilayout.h | 2 +- src/framework/ui/uiverticallayout.cpp | 11 +++++-- src/framework/ui/uiverticallayout.h | 2 +- src/framework/ui/uiwidget.cpp | 20 +++++++++--- src/framework/ui/uiwidget.h | 3 +- 24 files changed, 129 insertions(+), 81 deletions(-) create mode 100644 modules/game/images/miniwindowbuttons.png delete mode 100644 modules/game/uiminiwindow.lua diff --git a/modules/client_topmenu/topmenu.otui b/modules/client_topmenu/topmenu.otui index c75b654f..835117d7 100644 --- a/modules/client_topmenu/topmenu.otui +++ b/modules/client_topmenu/topmenu.otui @@ -61,7 +61,6 @@ TopPanel anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: prev.right - anchors.right: next.left visible: false TopMenuButtonsPanel diff --git a/modules/core_lib/widgets/uisplitter.lua b/modules/core_lib/widgets/uisplitter.lua index 871b980c..e1b90ac5 100644 --- a/modules/core_lib/widgets/uisplitter.lua +++ b/modules/core_lib/widgets/uisplitter.lua @@ -9,6 +9,7 @@ end function UISplitter:onHoverChange(hovered) if hovered then + if g_ui.getDraggingWidget() then return end if self:getWidth() > self:getHeight() then Mouse.setVerticalCursor() self.vertical = true @@ -16,13 +17,15 @@ function UISplitter:onHoverChange(hovered) Mouse.setHorizontalCursor() self.vertical = false end + self.hovering = true if not self:isPressed() then Effects.fadeIn(self) end else - if not self:isPressed() then + if not self:isPressed() and self.hovering then Mouse.restoreCursor() Effects.fadeOut(self) + self.hovering = false end end end @@ -63,6 +66,7 @@ function UISplitter:onMouseRelease(mousePos, mouseButton) if not self:isHovered() then Mouse.restoreCursor() Effects.fadeOut(self) + self.hovering = false end end diff --git a/modules/game/images/miniwindow.png b/modules/game/images/miniwindow.png index d31238266dd04b3e148c8b19ba41f8157a51ff9b..fa291936a33643db375921e63d6533b9eb3bbd09 100644 GIT binary patch literal 40107 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%0D!?K!OsK zBG+zLVRiK0+&-^VtKT^JKJqlKlk5LAEQ0=fy2dlwJaGs>@nrAOL>!H?b64lO%v?|K zBI(z`OVL_y^TmAHF-}eHx|ZP-u;u;KumjOwK0b9G;A^?J&!S?c`OBQ z$u@l>QaV+c|E?-g!wfr}HX?l;+F<75LT=#+Rtza$WXo{a=Z5fJW1)vU%=H8Z25njS z&NSsZ)11o!e@Ty!EXaN;%MI6(vqdwgwID|bKQkH45N)uQD`kwx!DS>H4Pu!^U`u~o zD7Od}DlOL0yzl44;=1dsh;iLawARq%<4<0S#DNa`7)SNRoS~#y8s^Mn$g_*TD6~dZ z6P}tuWXr_$$I;p`o6Pnh12eOZlv$&k`9NnPCU=anRHB&-Z0?+`-`I+=3 z#;_P7$DI~E_dHky(b+ z5EX^rbf=ugHQ1UIc8U2*uA#O9~? zO%FuUE_6*TFsbKKFGSH&4c3B`I15X}uc1OaGfn3<2Fr`%5qk(%~T2 zq30L-&^Ux>P7}Tx=0GVO`mma$Nj@%JytC@*sIqL`n6sqAd*T`xCVd72EuAa_q$#a{ z&smi$Vg|s!oVu{ z?I_Y%>tY4Ty(gm#jdP!oNN|@Ad_;&E>XiO4`Sw*<0MC^VWj1ENqn|^^?>Wz3(OgIy zewiuYB4@7yZAKA-Q;Ax~SzSk~EyaJQ#BeE4NB?*~#|S{)Sr|2fW(GJ*LbuC_q{Kr7 zX7OJAiNsCblKjauBxkJ(vg*h=rJM8lM#Ne(_*YW&>`RX4tqFjv z+NV60CoHtF{`qb{Zx#u>9m6TwU9S;ZEfdzzy>A~dlP#FmnwzQ;??@A|VVM9qS+6UA z`FGGHg6ZGClQC_@Oq|$1X) zuuiGF@rNK&;O8M5ju=E5*=_)ck}1%i-2RtlMe#P!xas3kZk)9((KXAUiAU_N8s_?4 z!pl4qmX7oF0GuwEb@A}W`Wrrw3C9FHeopQCo2E-=owKecwPm(${MKbE{t~y?zr6_t zMjOkzI9aN_o>-yQi{R)TYF73~L{Zxc?qXy$zF}YXam7wd2SlRGJEWl8T%VS1eio%K z%W||6uAWU<=Js^4Ks03?#NGSb;!cPtjDIKUdD#gTb-}^S;B5U(`k`Y@BBkf3BdSs# zSYd4_o~*2M7p2Pa=E6U^oA*;Rga#-}LqG6e^h8RlRO>l#ee z604D2@2oXbqm#6q$3+3BuStK}rG1!t;&E&ZH&CaR6~iWsnM18{yOULc(UnH5zhxSE z&(~__?UOB+>E@;9!$g=R&VfYhKg~?vvrm(c#2U+Q0|^cXE+lIZQ((cMfGYBX^7COo zum?NyuX{Dk=_Sck!U`WAC(16`!#1L-n%>2e|1`>Kn9dBO=`a~rA5jn-z4KpZEQv}c z6CI(igjI0e3%IQ1`x1S|@bqfC?B&qU;D<}Rvcr9+Jk)ATY+_yxu<-bXAG(yb{C?q<R}NMUT+68f#>7*W#?m zoVEd*i9D)>TNo>b2R6ABY1R!Pl&|#^LfStV6t3|JTv#xF0c|T^G`T$v!bXtt6Hs~Y zY{^cipq6%#?J8gydU`%t@x{hCWTka9BXyga-R@q!q4XhOPRdTh><>bgSD6HiXIpkE z_pGZP@G$`GHVoR1)MJ29-^y-;`VsyJlbK3WTI}MRjy@yLpM`bpHex5sJ-@N6jvOQ8 zcOk3+-A)s%<0)5}2&x#42`{ZqQ*ppHG#LA1vV|+7>1=a49?ZN(2Q>;u$E6db(sL0h zPcgVDbcNOT!45K!<_`9Jxi15zlu_nnH5)Wgl;;j=!{)$|YT=omUm{{xX+!6-aj>T? zdC*+TITBvWXQ5j%4SmA-)SfZDbiyWN1A+=b5yWDbXd}>Z^DU3d1hVCpYo-(}A;F=C zVOa_B#>-Fvzs|Q3P1h)O^c~6f6G8NJL0ha!!-IP2tUB8QGrPtC2g-8P$-lyQM~u3_ z5mYQVOYXj9VS6MqNHTV75I=?q^2k1`h7PV!2DQcdNEx9R|UeBsae`!?!eoyHo^%{*-#uaL8NjD z>5g}Ftm45R-Ho+ zn~AmQruJt*`WRNf=$P#xm|h?Q2V2^b!9VBDw-NkjdYZTl8 z)~TJPbM>5>Ogak4n8;K)90t|8NznK}YCnWDPECTwMe;NE-`M#;@_1i63x6?;*RdFn zDan!hKNC zfZo9Y*j~NNZ zp$>-5MYA^=sY!PTOff6>sZIK$k;$O&t^F?iVe23I3vdzX*E!=;NQzA}hjFuRWk;c1 zM%ne;IhMRQ>81&#+3izj(=s7XNHmLGI^_cThBD;|X*QC8`}ApK+xwz@$oFZuJCjgU zs`932Z2_=~c5l#nmN^zjeZA_Y>TrT%CSfXIPa8F?%M)y5 z+7@s3QvBVwNV?#d8Sfxcz*c3`@|tQVft>o3T_LO zT#@4$qgf~ZkKX#Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyS< z0XZ8<2w`&o03ZNKL_t(|+U&i}jwH*{9OjmH_~GM1&_WO(alt3i1Ly(t{tGQA0fH8S z79#kOWmQeH^E023#CgkehWdtcm=5%NqDuDE9uB=Nj+#PV4c$ z=WK6wwodhVPp?7$n*8~{?HWTc$e-&i_wW5&rhBu+9RAfml|NtqSwfV#0d_N*o6GnA zF#I5a5=8WW&n3VHhtGRmxPIOfeSsYX0(bq`Y^cNFFmBp-_02ym5?tw@zg=(`??+nv zZbKu`1F76k4J6}h==-w=%Dx_CO+o%S2^hOIu=@Q-2O#Ekq4y%+le}hr4#K~FtNz0S z1kf)WfdEiGAU1dTez@>K;&%g=4PcxfJo<;Jo5^g}qe~(0e{7;fE*H*kz3;*A0N8#m z#&hkwGd0cu7Q@NUC&-WYUJj0vjflgYqifOy9efTX)Zli1UUGf#4Oz*UVaFnv)2yN3 z|HlJ_Ui5TYqCOB3Uj!X|_273=y)8)03viXqw2eoTA>iZ|@>!I5amG4G;5n{0pF3p} zo6U4TKV0j8VopJ%?5?~n=llCPJaTzCm7e9E@}LyRzw64;Pk?qA&HFvdCPaQV=g+s? zGyZ-S$#-7-TNy52_ILlT0m9aTs|%+DjDzS`9^zk}qML^$58S>=G3zJ9Vcxh}ui4oVZI)9awr_@uh|q;*-B3mkL-j^Y1a%K-RI z_bC}P`&b4>)?hGYG|Pa%!#$7#Cci)Zx4+{usyCM5uJP|0Ahj5rKvJXjEtU3?bw6pT(%Px$=&%aRfeAZ+E~u<6?Y zgL>kx0?jw~(t)ZPd^C$|fr6$~$bkq4!C{f99+w#@8-U3uFqC0aIr4YyVoVPspDLQt z=is2_2*_6B->)%kuyhl7vcl0zhm$hGA<0kBdDQ@vAMBK-bNDlcQ+>*Q?#q51od=)( z&9~_H>b_`pu)LRy4h}GGgwszvyt&$gul6%hYebS*ZuF;@yS~=f@{5?zd^iB zrm#%I?;83#3gG-(K;I4@LO)4A8?TiL5)kifVcHbXgN1&h;)~Q9l7$6ZYyCcTaq!Gm z@2Ta>YOUS?@oUDQq&xHT8J^$G*>`>om&IOx_u#NuI1OaPA=t?a%u#GYL zPVY@~A3mw)5Y#5_#ja-ko${pj<*&a>a9H91F(CE`zu^xKmOGfN)*wuKmC?IKbU-`z z&t&&^f@|bpbb65ea5yfLwO+OZQ#1CTeNeh(@ejrzj!xPX6mqoQZeZa1)2@(%Uf(bD z9oC{zdrBMmdSCwhzKhZqj z6V8PB-bj`Up0CwANF<&Qu4BO7-N#@5=%Dane>nhZ+xtDN!L*i!Lxdd?KfLB|FFSd zXE@woT9@2l8?1PN#Q^wl%V0mb*zt!Brq<7^U~%c%xUB0N zaFq+JYywWPFI|@70%omcoJQ9v2Odhke|NWHNnXR*+WpT4QgRVtwO+(;@EFVqJ%X1z zy6`D&c9jLt)T*pO;)BY&HslfDdyvBROzn)|^wnZA>2hX)-k&dBf87WJE+A#dNx7=O zKhFCMpSAHHHi7gGS`!CDK7;;zF0np`=f0%HJ9yAza??E`?aw@|*y}$d27&0OzyLhn z|HJ-fAptI9`p)w*!S>!)rGh!R%D_+NM(C^rI{;@%U&G=*+St%E{q_4`Bp2C%!EHMF|U93(K6ASaKN<6-&_ z#~|$KifB`GT2tOXk2}tI|2JyI|&f{`77Q)rw)DPwQCO) zV#HJSS>+YvQ*v@c6M*0y5X!(mG=rG9^KQaY)3i2Ox7aXt_-mp@XK?ZxfX?;1ami+Q z)j-EZ(BitZ*=A6T?fdj+aXmQ1->SSAKxjQRciowBFm1)0+@7$~1)(ozSD&-K=hfFl zbS$W>?pNxDP_hhHegwY<#&L!-e1e3QBdf{gziS5Zmw)xI;?LKguRmY^<$jd_@t1%4 z*MGAY&Z;zjzW#ju`TGAsfcWqK&A;L$7|La_0{KtR!mv`+R2GQA8 zIKe&|@5`nS*Zork-8vA7a*fpUUA`cqm+Bv+32Q)Vfn`h*X%%Euurb{`87_L*qO7(0 zJ@NQKu&=u|ecl&w-`x8?XT5@-zxU(l`q8k)bT*^L^*ugfDKt1lqRsRt{^53Ah{q@|W-MQ8>^EWnw5-vH6NPh$JD_=Q5%j-L-%sPd^1 z@t0o}78oaZNWEY#7Kv>9XoR^369VLCDmATuCp5&E#e3@aY^zBAt!>Q@6qZ54pFtz^ z;IPBYWFcl2BCe}Gtk2@o7UX9Hn4dv0rQ)H!N0^trH?pv*kbdyKHny9pTz%5D58>BF z4mt^{WW6GJkMXiRu@S3_#&oIoj!SN*L}p{ zxh?(VAJDY^J%{VQrgz+B5VPc2Ka|SwA=wvh(4Jfc#b34W=)Xq}Ew1!$B{T8fh7{R1 z))v|#qd|Mm)KR$=;a(=H{saQud_TeJN=qj_57rHhF<3L*DA{eF0GM~}^c>vbAREWt zcj-f5v-t0)z}kU8i%c|!+Vci5qw8$Jjpf!+WkW$9$F6OXWIVjb^C1fF0< z+kayOQF9@z@7c4U+$oDENTxu<7t`zNC^Mc6;C&ylBs#*!eXgD>->*9e$SehZVpexb zTVk5SK*=^>AA4CQeCwVXLQ>l>pKB*faif2Ni2!Czuw8V2O|I51j!JaD1vq9Y)V&St zcF>$b-1Xy*zYV6W&mx6Vmh@-*oX$khrs(#20|Qe=L;)+nL2$gXa5$UN5goN9`ufO9LM}VZ<#WQWr?BS+;lXiV^byA7TybN=~d2n2Gp~8c%V+QY8ljI z%u%c2T<;bcw>eqEiXbV#s0Q*UgV<3kSJ>1?>yRnYLOoY$KyJ)W5)!mKR+bNVnCDP2 z9Hx!QV`~Gqrf9K+pO0Vf(|u1IzE=(m$;@$BR?r_zIY{gR#v+3_2SS#m2x(91detoH z@slr_38(Ed^F(_esODJ^QcL_#dQTgj6|~Bya^~mXq9Cu=`?etZIHMRbK>Q67R=O*_ zwx<^-ASccU($BwU363M)_fxR^g(sb4ZHQt{$-zJo9COX(P>hk1u^qbPPmOa4l=)DxW zK>v4V;A}B`2vB|Wwzt@n=i!iXYF0xQgggU(K))Z`COQwAK-ioP)V8T9x2D3*EKHsH z?rllDM~Zqo*LFBIK%m9Zhn+{RZeYzQ^q*Y?$B=S+YMA6B9~F!Lst8EUn-j^E>+EG$ zOvVLcOBRA(bms8MfB<`Eqo!#vNFy4v?<5ODJ;KbU@nfYwz>UsAH-IeZ|8)&m_5Xp%SXp>6+@f~{MJmOO?R?pD>2{< z508i6<^9w&zw?d!^Q)z1!L+&Cj);{PF}1=zlf9SJh=QW7GUU=OLn^E=qo!D-sCbIA zo3=95!NAy`#+VA%)7jqiqtofhjBrCwMvN6F(DOUBzplDbg~t?TqwQn6w!#^Pob+Xehq~MJ9A{zH?UbD=CAuvG*5t}Jw%EyB z>@jfezW7&Jb-W5=)Xb4CI=pU`lMb?Cc}8x|*q zF~94%Qh1)7nfS9YFtnIl@X8?Gseu8l7lTH2a!_i~t}e2ie;A+-j`JHI?f{w6Sw5_g z_8H0E+1NZJMA($$lR6_T1Yh}mMwF786?K6@x=wZj?{-%q*>$UV@P{rpMMJtXh8;uP`6W`wU_5&Nh4VW-}}<|B%!;(g@T!30&R_pUHkK^>lN7 zLnm8p80zpuD^s}babkB|bQS5F8&l^vaz^mEiBC{qc(f@`mD0Wj6gI_!mE|%8Xi%X>qYczIHr* zd%5)YaCV+2h{%1PYMpxjd%_5>BXocKjGRv$S`2UbUfn88{tgGk1csbE-F}RrSwqV+ zyBhJ>tCH3xqFJebxEP-yFev}ExVNBO*G;G*z2~O13n;C~>RCD6H7=kLn8a2~q%`}X z#xrdaq|aPf{)rstZp@%gQA9sb?s7@yO4=y@mB7Ne8?#dKrs6E-O!VZcIq2kTL@M8G zg}MNRd(w?Xhw3yy{Q3Ix_2=uq`mgJt!jTrKl6a;p38rND-Eu&~;hNXL6wY0X=!m05 zlg``I&7H12tw#}qNvZ#)p^f+H)-I}!{K@MMugAd(oFP=&@*Hi3Gi#iUsiRj)3qzOZSI2uh>lEY|2MnpHD0NCb>Rzc~M1o3v$i^p6vp>s~yVNIOjYq^4IVnofHT17gP? zLri^coTd(#Ven)!FlWCX4d7&{+aG;O*n8GWXKg`t@_<3#4R>ZK3rLv)#k@Wtb$niD zK%@NwdcqF@@VEsZ6*I~2qg|+bc<^kQ?40Y?29@`L)wu`c^c2oVhP`ei?aAKz{P5l9h*Kau^)auGzBadI~PNw1KBb(qz<0_bJqWp}U zbddM`GziiSc?MolCS}L{Gca?lV3SB&xpF33J~qNe$N-y}Ze22Vmxs{VbE9d0;>0I% z39haMimzB_UBcYsF3=rEt8v;;8wyH^rRrDCJ#FiAsp-_Do>fWe?e)+wfZk)DE!5aD zrn7_w$}WCn>6~^o7Kj8Z#Zf|U#UgM;ZmC*!XjLX|ovF-`$bvaJ@Bni3vD+(Jbus3W zNo9zhOhJiTxxabi6o|^~&3p_AB$0zz3=ZA!<+C)Y`w;<2l|fL>Cl-d^qcvGhP-Y$i%h|5fa4za$ zZK*z>a4!Ku7G7CoX^x}{^QK~7=e%4Nm&%rM7#R9|^|H*LTQ+36mZIB0dRbqhC0YAj>g%myn zgdYe(2-TH~`cmGI-J$0rS*J5r)E1+CVDvx)>*D2mar5Kqu7wR>I0Y9jY%&qcn|Xo>0fYpFTx_ml#jHnOw8;zt=wSMm`06HxYJOE{(f)^!f+`NKa zDTy+9FZFnC!R`pOn!z;XskHHgU+%O!Fi96`){=(PM)RP}p$W+tmD+xn9i^6JQr*H9 z8rZQwk3mWcierj4*sGLmQXLrUvL#_6iIVP>qGF&Y>t7lbr=zG@t>rXx`H`)E-JAbD zHEt6tTCnOlL_49WYc!&Om(;rTqol1E5~FhwKG&HBeVA*fG72x94yNuv?%$(!1<(wB zU`yAWVR;V2Je<{RDFlp#NgpTK*pQNkrKYRdl78ODJ#9hzXYB~BMhbHG#7p?0`GmwI zP*n1&`Cz@~wU4#Y!+pbI+0)M{)tOBh_nZD;if&qaqa@hZC{J4G8GNGvd(tW^Kcd8? zkdbJ(snrfr-+lM%x_Jh)s5o1bvSK7G&vjiIIOB);xwNu!Sgd3YPSVb!uFb{!<*7?b ziD@Qbt&0I1{VMZV-at^9mAJ|<+)jyWF2zLw8-5}g=%IEpZ{jrSzNi#zn{zj0dTIw) zT7ld4j}9@d-l*yqd{h4P9`^4e#E{e&*Fdf^rn`4XA-s(cHUd3Ou6>&SRXVX6-HiFZ zOMp>JlQfE(6~C%@@1O!E<5c!3U=fJPCt0X-H|?ZSJ7L%kkoT~)gR?Rqj58cz_z zBgPA*hi9;iY&dIX61H?Ub%DTHZMt+CxH*VXH#|hofmsieII4^{UQKDGzNK_OuHIR6 zr#OY1HzZ4GQQOX!-*L&jsiLZVQWQ&foOf`e4<^et=Qj<*){>$zAo`Hu(_2CE8Y03Ta(-LFToj@%7a4mMUp46P3nsCra_%0h@?5U+L3RAA1 z=7U?Lo&9sO)$F2HWYBY}cP0ePOKI#}#}3qNc00OhhE3a?)i1`)(aeA%7iWO|P1U?? z4r409paM2ejo^_VFA${bz2biuY<p00wFgm^bjwOWp3%@! z&5@y(L|332tbSHbxMlfWlweW#4J`}l;OT^2D{u7~{zhL0H))d6z)5o`C94=zvyg|f zB)dH6cERs{pfWSha_VGN$SBO%5enc!ESFynYgI#8f01);p*PxlQ{2>IRxq>RR`}Kx zgkDeGhRMeZa;r~hkd+|Mx-TUla^cPt$8KX<#xy^N=-hlRvpBD3@wC!%A6`0pri9?# zrhVP+f zidHtS`3tXl|5sc-bRZhQ)(Go534qofIP%=NoK^!#WMWWSM&;BpI5~1%T{+}aV2!dQ zmt(k((>SA_v#{|E;2tB1Sp$<}0iS~0#(m7S8vWo;^jQErA}_7fVlA_t-+R4({#8g| z);)_g{bvl=Rv_I1|qt=w%%wuZ$KtsSJk8^dtE zpd7m&Y~(m}?a^ZlqH%@>UyNM)29o+w-2LD)p$fC_op@;uJ}nTL?_&dyASA6G0^EY8 z3X@lTPB=(XIk{W#$1&gikoq{=4lQrocUrz znbr3vQ`5qW0a`}NDu7L+#7rM%7i7$H9Q{4Nz%DT1G|oS+XCgVpd?t@;npj)R>v8wu zW@gQURd2!?YF4{C0g69=_ma)QFjAK^_H20<(A_H2f#Rx+HR(aZlbC)E(bl<3XiFBP z)*QefxH2WY?tmXKuf+0*F71RxDU1cqm**)s;(OH1e&X=H5v}>PI%7Zf4SsR2HSC=> zWwv;@H7GY1Zrk(?fJ4$$fN&n%#OdcEAP<$J-5l_)QZt#zM(@S<`;b6-KgkwuKL+=? zDGE*rm@~b70PoAr^B(DhH`4g`}yBCe@@bO+!YLUFSpEs|BJl;=Mz0 za4l<|Sl71Wxto9>0C8Q9?|?mNQp_x}f4RO53>^`rsmjl%n*n*KkTHo-Nb#y<2YXeX@1=d{J?KvS#?MvOT38_SM!QJ76ETS+;AV)Jo>zO&F z;^XK8H{BBxD6*2&d^f|t8OA??gVEs6BAa2qrRV+zdI^h|a>ibuUmLo-^Q$_(?p5-egP zzmHi_>yhU36FB!>5#{NzB1Of}n9?rF$URLbL#24R*tUcdVWDqD+Vbm~-|xHt03ZNK zL_t)$5ML*n_CO^vaNWe9Q}(ynHrKK(0?fl`lT2DBujmvV*)XY5;-9^1F$RRKC`R8{ zkDb}NN0Se>b}d?#mJW+ULl=hY$AZ+o-3Ei&S(9V*=lj=utw-lsNpPX)qG(P?XMvLS zl*MI-*9LSE7--oM-Z7hlN|tokV=76Fkg_mHnZ$LlOAU*$kS5wVoK9ZIERf4X@LHd$ zU0`3QV*4q{(fJsKq1G2La$gX-;Vu!(@MC~LZ$VkNtF&M<6_^a$y#S^l>hE3OFYKG# zs&YF|42FvKa*)xd>!P49wkgF|j>ME%P!9({5q0hQq&s4e%0*aNR`@Q55GuSm5&Ee4VMY-P5nV3Tvb6%>n46h#@9QD@KxMdU zS_`nHsz^{bld@__BXPY$Mf#oh-3J(5(-HgH+@!|$=&?Y_Y(*vuIAwY{&bTdQBl%g> zftW|f(Dck8t(}ZxWVL3vY1AJi`(bH1y6va);sRzLHO5ERa#)(2!)(nG6RCqSc%QVS zC&|&WS5ef!pe;++fspP4T?tX#++|=5`I=a|2QDDa4TX9QkhbmZHr5>9pT-o*aB7$G zVdDUyboh?i3&&lI#9zo@%xeBZZwkpDMjhGPIj)|D=NM!XO2~lDst(KTx-b)&y|7Tc zxwf}307w&CPNRBN7(!7MW7)jX+G$Oyv1Jk*UenPGd^vVqdy_TDdI)KWI%&HJpXiQo zFeBSWLm1}qjM;Rac?h8&!`W~9_G-J=U6_TA7a^Xf7^Ye=s<-7J(Zz>aK4H>DV9}`( zGM?*a{90Yq&zoKGHL@aFg%}x_h)J9k&;=+-AXX#fopp9+5~N>Q2sv406^;fzpVQ>k z)O$LI45Dn57hKO+mO?}uIg@h#FJ)0m)*+eN*PWv9cnfnj#U7}TvYti}k?XtL)w^Yc zdTMh5naH`#sn^j||9C2G)X9utqR1)1f!x){l7%Vbz*s;OJ z4z|z_dg84UGCPSK*=k7kToB%pnq8b6VtE8P1 zOfB8t@BGBPHa-7?QCy&N_HBrt{$9~MGFF%IX3?M-3Tw};1QrUQQyvG`nCMiH4JWi3 zbGsMEX7JIC0s}L*VFopQC+)JWrF+Q6h1PF<1bZtjmr%epHl1mdfP6RNyH!s1pfEAP zTb@%&o{r?Ju?`k)T{-~Ov=XeY<8I>fL*`P6JC4CLcw*(YJ_s0WCE=5yzoPM`-|7CC zVozD#=q887R;7gAg^gr66|x;*UqrKD3p<7Te!VLVGRpHe8=H)QcqRdNPBrJ}wi`5SI8klGQfzt|Cio^J zy{d*)@Tlx1+E*PjmV_yF(wGk0O?fN@hCQwsAada2tm4IWs)O|0r)PTkhtC4MU^%43 zZTeZsBYC0J695S$ozL?jFrY`_YzAYL4`MZ$`V-~DqV3Jo(g1T-$1-Tycd+GC#5bly zULznsr&qtQ1Wyml?%`p{ALlo+n7Bmshetw5iTPs z%*Qs0cy6!WrT^F$7+oEwgso?jzFx1rIL;6R3kkK=nX>>5xe5|om?)!UJJTFT6_lCY z-x)10Xx-vej`mO(UKRq;>`1zb!?qk53)mLu+4f#_HA8EVxT)HO9+6~_=XRFm@&u6n zCP*A)5ROheoH7HOvM$1v4px2;Q9#kvwA!pdh1DJ30uxygsd+*QS&6J^DHf)wUBa&p zWZ7cX1urUKHt7|lkUBhhr zO=~Q78&>1&4QDVX-7K{o%hr*i+645$Aj2%f{XvnX-^3T9PL{lYkHm9-?I|T799JGpZ63WEUe1deNl|)6}R57))aW zW!C6*AeX3WLEK;h8ASj7#3y&zs=*vS0sVK(dpWdG%88Vx?&=OG3)U;jsXB2~9Rv<7 zK#h=wf(IZ@8;f2z*R&Orvl8+td_4nSJoWelY{#N4q=j}Moe6LQEX@&kG#q9E!GQvI z2_Qf@bt|J*4u+H=kPXExo4Z&3I&;Bw73WG0L~k8RP{?i7BB)DoMawfF_MlThkueo` z)6C0SU5bk=vzI>{=E#0oV97)v6q+&%J@?s9keb$|OUVffi4AXtN9e+%B~Zn{REw{I zL_dx^TLunqNg^zlnP&YYlPdy4;Rsj41)zI`lhDfw*Z(+%v2{S6Xos8n-r1^e*RaU$M#dB;n7YigNyCZ- zxl(_89KMn{&Vs-(sWtwZT5qb{lT*P)TV7I_DXgxz?ecQn1yolAdt=H;_LM!mdGhh~ zgrWmf>->Q4p19vr8NAZ4%|H6$CfjVviIP!C83Z$s6j@zsHh-OMwS0EqaEDJ|MAX@n zyOqa`N3md6$iY~%Hpv)Pgxn%Wk>0xqD6MWf>YAm1)y@Yj3u^UjhG~=r^FVaVe&_BW z-Qd|KNh-RU99pbXbrciT+SbxPQHYK{gspLUFB4JKg_)uqdEnQ_s7lmZh=6uhxncfB3Eiwami1hv;Wzf)O%>^+-Z13K~bOrdV3CuIq!#1Z8TkjOw3FHdE4;I2RM?bv6Bvd=IH6qz(R|J*aIL{gJ(+M_)h#TW&ls{8<>YTe7rA@E^!(}iEvV%bOx9IAwN2zeMytfv zG`&9sV6SX+lxCZa@aR2DXaU2Veb76hefXMMTFZN$%q~?CXSaF|CFeR|4bNs{QVc@0 z#eqpG3Qm$+X|1PV+U`j7^_6aFB;Uoyl_;7`eBLlV4HvnyfF0_Z%9h+mZ^*qP-syDj zL5$%IjCl`Mh;CNzZWitc4h4fw6SkkkMzzdVPEVAjl{mnmMwM3LI$a} z0w)ZI<77vmYccm~ERbqAF!Ol!M`cQ>Dd)D~hiA{xs79j0JhL`_4}o?srz|E1dq?hie(oxUw!I`| z{aks>{(kURzkbyAC0Ze}&aDt(RGNF#M0h<^?Xawzv>NqZf@4sLb+344MYJnY{Y3XN zau5tG#Cv5f0~|l-8B{)&oXdta7_)fN6HF|3AN7X15#(fptfBF zuxqC{bOgJraQCSP!JtsHj!M0D?cj}~x;@-HSe*|cCO^_B{Jq3(uzVDi(qp^tb88Z2 z4(vC`RT1N1`s?c^t1L3MvcSt+H9N(OZev6Gqi->qPuH!{CZbCN`RWu!k%@-?b3gyPiHP__Uz6(TjctrKsdeGzPieqOHxIFx z#G{$yq?vQz*tqHSy#Ij7JP4a7v?Oh!Wg!tO$vz%T=k7+%*(~fsr+4A+$uwe*Qb0^% zH5#xgt-JZv0!AxzHy49N&XsjA(%OC{iA9m6qwTUR%D><0V7VZn>uSzYj=LCWKtB@? z3WF8drbb832oMpkD9S(3)bJ&v{{39Z&Sr4prpK+klZ?tuPQH9sBzJ=D^3D5Xz+p)% zi2*Jy^^N?0NY0N}29G&qb!hKIsFik;->piTSqw^x4nI7J=I%`)X61Ce-IBzeNUi0f zT={=FztS8=vdz=cgkrk#Y7a;Wo-4hZNqluBZaZ7-rH3aa05I6EF_T)N`dp@@h^D*M zW*Sy*P3-N~nvw3OUPlSP#hggl#F56cWj4ddVnm5Y?CnbLoZ)zj6N2|4=GAjlM{oXC zUn5>)l&a^}ImBQY#qrF}u*6s|ZX1KwTmt0pC0lmJNHPAb<9pB+aj!%uDV8`UKzjmD{1;sbPVbyOKvlCmjZFKWHtjv%}b#z=%L1~(ca zz65k&=9#HZK1~lmO5UUq<7p7oa?v zsRZzo3<3^0H^VNC)Pc;a7mu>E0jnk4q(Z7{M6ainiFz_25AtlLtnCJ2>X(oa%ZX4H zBb$a3+yt6VHAhGb>m;ZTib$Ng7k77&KjY`uRfJoxB?9%6+_u^Bsft}D4~dCLL1L)Q zAze)K+4F3|o{2nYUr>t^|0@M^2YxSWNQcUuA?INDSf}8>d@nFR5DUE1NSKG;(`4Jh= zNht7Vt=w9hn?>2jsCOf7iT)ehbRb0A@x@x>+8}XiMbBpVdyA<`Z$Imf=8xEQLK9H; zVo{8G0y$JJqM3aol!>T8O$NbkomJyOA@?$G;LP(`7Z0ZcBSmkLGCUNMw$#^U5Eimf03ODmw}=d3u5@D)MPQ&QMOqt73?kU z6O3iS7ZIF!d41oCqCE*{u#Ht!o2O+<_d)7yJl|4{W_@%#&~tc8+2589IvZ}p|B7+g$5Z2M&(U#(g>i@)v+%Dp;w{`|{q zp$%g$1XASW|7*T7Ti`Y$e!aTcEs#dhhj$(Zh3 z{8^h5X@fonC=k%8MTS66X$L#xk5TDI^@wjkra^1jxiqx(C1Z9N6rWDObYjqROs#cjjZX|way>SQFp?j)|QRW(1OJY z3oS?HY_%u*!RlrB$m0VQTGt}~i6P)?3nd=Rgh>@wJ;_9;=IgvZjmW(`DBp{OCt$PZwPj zHK&C<(pQM>I792w=qV8~76=T36NYa!?!d>%Xr`1WAI*leDOUaoJA;>*rMLQf)D-q^ zX+p$ds{|b)b8TJ;{7rOv1Gp>IeV+M5I1kqB%6+d;R!0rjBApBhxU^V2iV)9xHAnK< z8$XcQHCT% zIcvaGt`*w#%=`~7LvE@v!j4C)qH*zsaKcmqs#PJ@1xYAdm^I8MSGZ^cTX1Px7_UkC zzJfvy6rYcXdDwU^9TtDfFlNDNgQhmyZ6&x^v@qZq&vu6FM~;lItQ1WxF~omjPK~wi z^e_`xcgGK7Z!q%)hn zH{)X((dpnZw2W1zZs78>WF)8oX<0)j`Q)U9`H;6_z)*4-QB|m{8M0f|OAAm1#L+-n zBpbzyqX1X^yI3fmA;#A0s=Q#qVmz>&Nr)^RJRXgNqj8C_obCEG#aE=h>0Q%QE(b#C4(YK2)s6a&$_($Qv{Y-5i1|vEVkTHJeA{_OE~&1$0q?o+(x0eJM`mBAHkW7 zvP;zEKg$3R2c(LNcbCJgwl@n<&Aln@f;|Y!t?!)~i}Fi0g6z{UlpHz*`J{^3HG9Q8 zhppphj|WtKg5f@lsc&|AzZI{eh}2RHn5%alTLq5RrX8SN-Swp?qBXGiC4 zIH`h`IYG`RQs&(_9J=%Vx%SK1)h!FlIfMAS_G2`&bDh|ut@|NFrThD>orGmFFrtfE zVR%ILYfXSk>0RIns}S>g`O_O4_JWtmZctGk0W1^&dCG*hyD)1dq0 z$masE)b6#XD|cC=P_HX)8rfpe!%nr6)OcPPEBo?vCQk6+2%8Raxu_h?Zg_@EX#AR% zjJ0Uz8ZPUDThT^JAFn`|t`*(#GaQA>^mZxj%GpVzW)cTog1^Dnn)Gzo!9Z%aIZWjQ zCz+8Ee?3g(A8w{45kD>LeBv>z$uY$^W_9gwr*D|Tf5n)LZi=3;pg4i$m8p( zXUjH+!cyX9_N^5+vZZd)#!w0Sy0?HrnR_3DRV%p{8?4!FZ%=)i{PB0kx^dyoBDiquo>I}N%p2&A zU8RKrE|X@E&$lhHDdFrD^VxWxjez3Ghgga8)p+Jz*4Vr>SGY7XF(kGlE>t{)-k>I{ zB_h|+`g0A~JVC^r#_!d$Y{g_{$HRJg>=du^E6 z2hM9=9Y0}&TQHQ=H)VTp^xA2}d`GO_cYUm6x7{3Er71P~76T3%hBJ8B4p)PQMstHU%&qPEB=N%%@JJk`~37TJEUTI-)Q;HNdRI#Ev#FW{Aa3Gp@Ud z#(a09OF1}nH%Fc0Awl$Gj_y%Do1n5wH(3dcz-z_@#H-YoPiVLZqfcA9?oKm^ZvRZ( zDAT=&3eYS48|K+H09-I#tOSsX(s^I%HbBE41kNX<)>^|pI2EncyTmbzz|b37q}b5* z*|Q|+AY`VYl5z7vvn~OL>_%cqcSJ)Ba;vq8_(kuaSlM1Gb7kQ4g(7M(MfIXs6ncilRh(sMYmlR1*P`0Q0k)A680K@7;% zi38Tb>074g(0>nTPUlDXf-)}Q02cHzrT{V=UN5ZU5>)oBoQN2>Xes2m%!%$)ibC|@ zYi>cSzl!P}47TENrs)|i@US?xSDVIolasPHMJX}kDYZT>-3610%InCV1*(x(4og=L zFwUs?Fb5ghK zl@?TfiuL={&v;b<+mTDdG+@-#rXGbSjGt9otD4}s4o#k1eu;~GV@V`F2ZO_Nmq4-_ z#m7pY6~2w3huFcmIF18EjzG505C;B78tkfS)Q|T>#U5Z(Y>)@J;yrLFNDwqyRt&{mpo6_vhkCfRbz>zPhnN^#xO1ysqa_0F3E85FC&1fam?J{0DS8& z<+_>edkn2Sv+Nyr^^WC0^!!2?Gu}KpCHeTQsGg zm^>ZE!qnoJJi+!j zjR@ff55J?v5lE&c-74uK0-|TilLQ*(ir`V@{7AA&S2*=4L&;1iJB3ud-a!%oH0npPcAg5fR@$WLzewSTWD>@}Ix{001BWNkl)_RAW z&=fxnMdD2s;qz)U|6J2>x^^Eb*vo_w)X#}3>;UvvJ2h;wX2)i$aDC+5&v38^i110= zZuehXBohWqg0!ZJ?HamCM>sa+nS@&dXS2zU@p*X;=tJA{c*JWuDo+8yI|}_tIXR*8 z>9ha%5Bzinvb$LBTmYz95c+{b!5SXjLyjPz?+EmVTzCZ^9ZP5?R@IiDXYO08bY@FC zvgZ;2rNKM|+OPl-i*Zns;ir~jE~??^s%@XdY;tCX=6m!Vrb;Y%?)+v(|g> znvXi+8Mu?!G&txwAw&Nfla|8v#9JNFkAgFg8anhFhOyXqT^wXAsnXz2Zm~8&W7DGj z#4U1$u9SUE^Lf-@s4GWR7bpsZR^-=(TAZ;SEjb|l0XUYSfbPXpg-*&75&?3o=(Asq2s>vxVjyC_EyUyYp1H}Tw6D-dnNOtN`hUJSNGiRKdR0>YyssNNja z3Cg!@=fibfc9@--#)SFqDip`OaZ-1Pl9HVjZ3j}kV24hrBU(YzaW>^B`Qg}gWcwvU zaDjSbNpqvq>^Fu1wkM;a43t6Ep*uSl-Kpe8cei2<=_-5Lz^N!NGl&I3AEOI0PdbM` z7duUnzz?uMhFvBCOG~P!`uMmP$%Eh^< zinj*ZnyC0#V#*ePJ?#gXxOL+OugnB3_ZiHh)D4%3W3jX4XHW1-D zCbkT`25n3KhuXQIGy^CdE3@%iK~4_>PPb;!S+p6;2oCnzGYnVy1Urt8Ab-9WEYN<=k`LI3<0a1zl{$(pak;yEJv&0dbm2pt;^0{+Fe+gm)di+@c88K;MM z*dFPk4Am`jl_KX2cPGP1D8|)jS#-mDVLVyIgh!~4p(&x)5u&i{Jh)kjK|k^T^?Hrh zqFR#AN3CT^+00O^W9EFemYbS(f9llaj8)mG9PkEoXEwo69Gm8rz%N9(Gr!B~386A~ zj}-zGJ1NGFiJ__Zk1+|iCO52rAH|m8Ch!$JjmxajTOiVOPji*@^+_khCkdr|ggda?Kp2AH$VO0{e0{;M*5TK3L!s@>(Rn} zN=(BgBAEGriBslKKdjY+5Zdq~gvzEw4KwVt+laOgKT$anCjz6uH>Cq%iq}|8GKN(@ zQZ3JitB_FhcN$ju(nLY$R@Ry>6Yp2i{r z=Byg<(LiPNQe`;QF(ROKz*@CAeZY$bURJOf^WVdlmTg@P!T47!;1~=7DKIx2!sY*} z$uYL;IGa=9lG^hp8$q(RZ!T5aazQ*ICoBtCr|7D6(AvW^f#9A<8yEYO?P+R#ThKNA zRn1!1CCDt9ho#+o3&f%;b^ol%-t{TiC(WQ%s740gggB1;l477-N-{>JO4Bnhoku4f zhWY6TJVd?W2Y;^X^?I^x_Rd|lf6?sZCtJX%80Gg0TOPskvz+2s84^6|Vsx7d<>`;k zEEVvItxV$vVGYrsVCC2+rb=cVHfN>ufH=G-hJbbgPg?UGl`bx45*rLxw8 zG7gMxf?dJaDjHRT7Ua}j#+R|H?Sp=nWD^+n?NgM%%M+k?%pzm~!UZWwCGq}8Rgf4X zF0ty4RO>@lf5}ifx*_5!A4XNKjF()`cX-?KgxeX2aZcn5 z?~)t{KL34PSBiO`gZXL|efv!Ln4kPVeg}hS4~Fuhxy3mQ!?cITSkzoQ|BZD<($$Iv zsjpZSSnJo#C)H9+W$f1ElkZhd6)qjS>%XxaI8UTE`h!Y4J_jDFl&t$$uDz5(ZXPt9sGrYO zaDNBOa{n4@eFCuUz*|sqNH<1e+Ev;A5R)(XBzG?@Wq}$cx9mc%yuNJSOJh| z*(bNBU9X-9*-QwbzA~ZHC(K{W=-oT>(kgp2R2>`97q#7|dr?$xAVKA-g%X~JZ z;Uzxr`+CW=Xa`vnXMX1*%w*mWV)X4XCdb zQqEFS&TvgTHOo|B`1*g;v4hn*BXyEa+|-5@M%F!R|hrcV|T3+)jbU|GmQst>}f6y0Oum|5B&jE_?IC!oKopmLkv zc@=}6j+r>IAL+>Ca-=y<8-=ijFEnsz2uw#Q?{Mmg*w2*dtxAkK8TQl|wX-aKjgeD9 zMIT^mGu$G!(qA9QYBipq5usv{;+C`%Gi6*oFDKvQd1fDNRscv;T8=nkZcN(%3CXO> z$8TL5iYMa}7#wBy5ykzk-I~iB=HV(nSivij*)7Tk?ZKFpI^29l(Pi!n(8k2d)X(^O z+4&mmWc|v-qp@(fv7V|?Sz7J`hXu$UF{r@tyIikjIbyA&ih3Ug{G(iFcny&~ND1@M z=&=fzYuvA{EcMk9T8!y2#*}`koMTUT6WOWGUOWm8ic+JQri$Q-9R?F^1QQ__Uc?UC zj#w^MwiehDoE#jZy5>h^QubJ$eO5MJCJ5`CU2v&Fqi5jyO9CEcy@=2em!ubIt%!d8 ztuoFm)5iyYll7$x`J62QL-|q2Whc~ts0K`f8yTh4`>w>m@P}cHn9)h#yGano}U5Ta%c9e}F=3&FE>Xzn1=6&9`zQCB5n$P-IB#3M%P%=s%c1o0_PaN7I*;!}Zd|BVqWD@%>hQSyHO~%5QgRk|u zZEHRYnHmXJpskKZ11oBe{cl9Fa$`-~0F6ps`MM0JVOA&Zp1T-=5QRo9tjkx`jeKgz zVSHV(qfhX0qr^RUtb$|~IzjEi5I0Z2cPgTb0~dF-_cY^MNN1Acn>9Y3*Dc+y@_=wZ z@7;B z(-HuY*ku{X4bxLDIk(TxIp%&9Xi_z|4M^GXFBmO`H3QKF47$K2m{7lp*$$xCAktwF zH1#>QQhu~0-+);SD%^d|u=7XEGpKV1*U&k8m67=;u)!V_s9;W?y=h|0kb@}(9s7xd z;joWfB2>THr6HmiHOGfs#ySL-OAVV`If$ZQGGSWC`>$WC!?sAAeJ*pMKC@ECRbVzx zhO->MFm0}Cz{3I9&Us-B8-1_iV?_AxZegX9-`ZncAYHDj+Ldq9J8!sHybU zJh6-ku&hpFI^_Ij5dG(%4F`xc2EWK4HlQ3_dL}y*i(lre3p~oo!bw9lhZSO(!Gc7YJA0VwGm^;P6s* zolK$Ppi?xxH==1V6kEN|DgA1POgYr<-f|290O@pxB)jyMa`|*`cNwO7`2;JLb@~YT z>N;i1BFo#sq@&2$3f3mus{m01SPWk9v%er&!XtInPJyU6mJ1F~6r${p6Zw2f4KleC zIjMY6+>XAf*4fG;lZaU8aZH|tMwAwHJQ`T$+(UQb)krk04`alTMr)3vnUs?+Mpwgi z1$X$K@2WeHQ*TfLA#0$Jms8eqCLZ-pNCg#V6O7u?Lv)G!?2@G!_8lzvbQGZiwhQ|{ zvSJ@o`8NiL>-tMs*}%d}OIUEqXV68RmjV+LyxX2$}UyDm;Um&wJs z2*w%fk6LzURS%QPq%0-r8_LqR1HUVF{;Zs9neSnM|7@TAu6*4XX8MDRQ zdJ45392#dR90QW?nIPYRxSK)ORoI9Gw@)3b4_pA)3QGTsrc+>ret=c81=0V+000%KdITJqrPK+HYk3DNwdb z;#iU-+svggsSnE`LSIhUlL4$HQXjB{N|+7y)V~o5LSQDMfOB z;au0cDl1`QY#&?q#mI`qC1b$jnx*Lrs}|qg^QH`BHApoBXsoWzrTd6MI{!I!rhd9# z=c;rQgQJvY8T9p}{5S0=@5u=tZQ?TwTlC;%T9$G`4yzUd`#1f7fNKi?uS4MxB0fN; zYEGUwY-yk-dmf{d)=?^yB63sL4WbJsuY6!?H!D4FsH@tQx(cs5SbPTKihcuWu8;e5 z-(t&5+WR#{W0-o7S*%0bk!Nw;5PDYa8MG3EA74-Qdbc0&Fw$KV=(J)1{QPRMg_g`a<}Wdb6Rseo`NGM3 zbrl?zqM4Z9So90!pZ6kVO1WvYGc!XIh8bF;?rO5pM`i9b9*ut^PVT{ZN9zfRT*NqZ z-Hg)(u`ERt9J2a>b>_fLMEa?x8T2)k_qMa;D&&9w+oIM~739&yjz!b;uDo9_TL8U+a8>jfu&SnQ70o57(77ShFS{N1{!rm)` zHW%%RskG>ZGCSb|NV{^-D=A$;mmR*_>{rqkS;-fcw&G9*W6HAAT8m!3yKHVBBbj6tP6%k;=9(MC_LX0O3o5zCjEYpE45doaO3^^bTAtV3ra4a)O^=5E|%d+9bpAMt?1z zkZ|8zvZva&*e7fIsZrPE!DqbT3m|YVOZ&zm_s2QiBx+Wx!d#A5UM++`q@9O)?@n}W zw9$dsndXEjP{-h8&sbXDPN*GB2C>L~+_hR@bO2WNN@yGanm%3-S*0l|qnH^0pra%3 z06S5k;~s3uE&znXMWAkLyXd)0RER6mT{74gzuIBE3u|Wo#`!*OKqLE42`Xl!n#G&W}`!`?Id&l+R zWitpnhv1$!X6dxYc0T)1sD1zzL=)6T7|laVClTm`L{Lt_BCY}o6~(2aDu0)Z=p>8nnLd|7Rgk@@HwU%442u)nw0m;y&w~m z`;eGuJs2qz<>o69m9opz_{UxYKsCF_MV-tp2^T*yV^uei{)YMzzAd~@%0^j?jE%gZ zyoTvb^@S_fIJc3Xj09#X(9KzJ(KJBL@z)dXK>5!idF74ilhCLzXv3eh-JC zH2s%aHgpWmsI&mfhRJQFl)!D>LoB5= zNov(Gv#!&u*8CmLiD zoBKHcBEP?kWe1)h-)FrQO_yg|6G1nUY&1;u-jIhIhkg_U=rZ~loPSfJ*)Wapnj67#dzDl|_cv=Wj%N*%<9WOJ(w(p}-X~4OAk_|Jzu>OFs3hkWL%b=%eS@%*2O_-O5HHpnBUMz zRiJmQ#`<^-Q>`wbC?pErfdH!#Xu?FG3CtouKP5&1ZK==0b3g8Yi9GzZrq&-y&KZ)( zw8^b!y!>&dT`Xj1#MHu4%dkLnMhMirwifoMLgFI3CzRqiiyC3h+~>Kx3Kd#+kEL2z6A;G&bO1Mx3LsR2ELa zl)|{wDN|OpJ%>`(B=@cClW3xTcJj`Q$XoTf6?qjC{Ar{k~q~mBjXeX+?&ocdR6dINN31)cbb{vMy~TjOlw*x(p1$a z3Eo=f>@t6gHzkb=9#gH=6G2q0ZFHc)FxvPkq>bdwa4IzGGnG%RTg{YNCumsJr~vMG?r_xON!0^>fD}!a4XUdc06S^qp8QNL%Zx~|VJeUez=>~Q=|ka9 z;dh}yq@uL z6Gkj-J5iqr=Q(BjoY-cUXl7Jc7{6{9Fvq{V7l4!Tg0QW(`^vBeeXr>O7CQLHfF$ce zu6l3iq^4T3Aa(Pkg$0F_MKXNy%*au-_!si&R8UVwJekBD3^*5

}ut>H)!|d)ftf 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 o#J~LOzx{a@cj9HKEJ}#d6nIp zpC9aJ9@Q576*1woTM(n=uNe|Acp@Z#pykLCk4sPMmL~Lc#YrlGk-Td4`(+J1I9U0ym zBij-mws>BC5gqL_!>oN#3p2M{%KS&XL0J)PIgDoBE5o7}M7Qbwd$6^2!VD2l$seD8 zU;i+vEu=Q$v!e3Mt*nN>BwpUVB0u9+)6CYXD!v<}=F8NUe1Dj6KWR(8;jQfwDz)8- jv6nU|?4A+g&}YZM_UOIul!&9opeXWm^>bP0l+XkKG%DVn literal 0 HcmV?d00001 diff --git a/modules/game/styles/miniwindow.otui b/modules/game/styles/miniwindow.otui index dcb6f5fb..344920e1 100644 --- a/modules/game/styles/miniwindow.otui +++ b/modules/game/styles/miniwindow.otui @@ -19,14 +19,45 @@ MiniWindow < UIMiniWindow height: 24 image-border-bottom: 1 + UIButton + id: closeButton + anchors.top: parent.top + anchors.right: parent.right + margin-top: 5 + margin-right: 5 + size: 14 14 + image-source: /game/images/miniwindowbuttons.png + image-clip: 14 0 14 14 + + $hover: + image-clip: 14 14 14 14 + + $pressed: + image-clip: 14 28 14 14 + + UIButton + id: minimizeButton + anchors.top: closeButton.top + anchors.right: closeButton.left + margin-right: 3 + size: 14 14 + image-source: /game/images/miniwindowbuttons.png + image-clip: 0 0 14 14 + + $hover: + image-clip: 0 14 14 14 + + $pressed: + image-clip: 0 28 14 14 + ResizeBorder id: bottomResizeBorder anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right - height: 2 - margin-bottom: 1 + height: 1 minimum: 70 + background: #ffffff88 VerticalScrollBar id: miniwindowScrollBar @@ -37,7 +68,6 @@ MiniWindow < UIMiniWindow margin-top: 22 margin-right: 2 margin-bottom: 2 - fade-effect: false MiniWindowContents < ScrollablePanel anchors.fill: parent diff --git a/modules/game/uiminiwindow.lua b/modules/game/uiminiwindow.lua deleted file mode 100644 index 1293a0d2..00000000 --- a/modules/game/uiminiwindow.lua +++ /dev/null @@ -1,36 +0,0 @@ -UIMiniWindow = extends(UIWindow) - -function UIMiniWindow.create() - local miniwindow = UIMiniWindow.internalCreate() - return miniwindow -end - -function UIMiniWindow:onDragEnter(mousePos) - local parent = self:getParent() - if not parent then return false end - - if parent:getClassName() == 'UIMiniWindowContainer' then - local containerParent = parent:getParent() - parent:removeChild(self) - containerParent:addChild(self) - end - - local oldPos = self:getPosition() - self.movingReference = { x = mousePos.x - oldPos.x, y = mousePos.y - oldPos.y } - self:setPosition(oldPos) - return true -end - -function UIMiniWindow:onDragLeave(droppedWidget, mousePos) - -- TODO: drop on other interfaces -end - -function UIMiniWindow:onFocusChange(focused) - -- miniwindows only raises when its outside MiniWindowContainers - if not focused then return end - local parent = self:getParent() - if parent and parent:getClassName() ~= 'UIMiniWindowContainer' then - self:raise() - end -end - diff --git a/modules/game/widgets/uiminiwindow.lua b/modules/game/widgets/uiminiwindow.lua index 1293a0d2..10af00e7 100644 --- a/modules/game/widgets/uiminiwindow.lua +++ b/modules/game/widgets/uiminiwindow.lua @@ -2,6 +2,7 @@ UIMiniWindow = extends(UIWindow) function UIMiniWindow.create() local miniwindow = UIMiniWindow.internalCreate() + miniwindow:setFocusable(false) return miniwindow end diff --git a/src/framework/application.cpp b/src/framework/application.cpp index ec979dab..4df647e7 100644 --- a/src/framework/application.cpp +++ b/src/framework/application.cpp @@ -171,7 +171,7 @@ void Application::run() if(!m_initialized) return; - ticks_t lastPollTicks = g_clock.updateTicks(); + //ticks_t lastPollTicks = g_clock.updateTicks(); m_stopping = false; m_running = true; @@ -185,10 +185,10 @@ void Application::run() // poll events every POLL_CYCLE_DELAY // this delay exists to avoid massive polling thus increasing framerate - if(g_clock.ticksElapsed(lastPollTicks) >= m_pollCycleDelay) { + //if(g_clock.ticksElapsed(lastPollTicks) >= m_pollCycleDelay) { poll(); - lastPollTicks = g_clock.ticks(); - } + // lastPollTicks = g_clock.ticks(); + //} if(m_appFlags & Fw::AppEnableGraphics && g_window.isVisible()) { g_graphics.beginRender(); @@ -225,6 +225,7 @@ void Application::poll() } Connection::poll(); + //g_eventDispatcher.poll(true); g_eventDispatcher.poll(); } diff --git a/src/framework/core/eventdispatcher.cpp b/src/framework/core/eventdispatcher.cpp index 31386e67..c649f07c 100644 --- a/src/framework/core/eventdispatcher.cpp +++ b/src/framework/core/eventdispatcher.cpp @@ -35,7 +35,7 @@ void EventDispatcher::flush() m_scheduledEventList.pop(); } -void EventDispatcher::poll() +void EventDispatcher::poll(bool allEvents) { while(!m_scheduledEventList.empty()) { ScheduledEventPtr scheduledEvent = m_scheduledEventList.top(); @@ -45,12 +45,16 @@ void EventDispatcher::poll() scheduledEvent->execute(); } - m_pollEventsSize = m_eventList.size(); - for(int i=0;iexecute(); - } + do { + m_pollEventsSize = m_eventList.size(); + if(m_pollEventsSize == 0) + break; + for(int i=0;iexecute(); + } + } while(allEvents); } ScheduledEventPtr EventDispatcher::scheduleEvent(const SimpleCallback& callback, int delay) diff --git a/src/framework/core/eventdispatcher.h b/src/framework/core/eventdispatcher.h index 28aafe6f..a571fd29 100644 --- a/src/framework/core/eventdispatcher.h +++ b/src/framework/core/eventdispatcher.h @@ -73,7 +73,7 @@ class EventDispatcher { public: void flush(); - void poll(); + void poll(bool allEvents = false); EventPtr addEvent(const SimpleCallback& callback, bool pushFront = false); ScheduledEventPtr scheduleEvent(const SimpleCallback& callback, int delay); diff --git a/src/framework/graphics/graphics.cpp b/src/framework/graphics/graphics.cpp index 0d1759e5..f58da236 100644 --- a/src/framework/graphics/graphics.cpp +++ b/src/framework/graphics/graphics.cpp @@ -49,7 +49,6 @@ void Graphics::init() #endif glEnable(GL_BLEND); - glDisable(GL_DEPTH_TEST); m_emptyTexture = TexturePtr(new Texture); @@ -112,6 +111,16 @@ void Graphics::beginRender() void Graphics::endRender() { + /* + // this is a simple blur effect + static Timer timer; + if(timer.ticksElapsed() >= 20) { + glAccum(GL_MULT, 0.8); + glAccum(GL_ACCUM, 0.2); + timer.restart(); + } + glAccum(GL_RETURN, 1); + */ } void Graphics::beginClipping(const Rect& clipRect) @@ -126,7 +135,7 @@ void Graphics::beginClipping(const Rect& clipRect) glColorMask(0, 0, 0, 0); g_painter.drawFilledRect(clipRect); - // set stencil buffer for clippig + // set stencil buffer for clipping glColorMask(1, 1, 1, 1); glStencilFunc(GL_EQUAL, 1, 1); glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); diff --git a/src/framework/platform/win32window.cpp b/src/framework/platform/win32window.cpp index 40a6f0f9..f498591d 100644 --- a/src/framework/platform/win32window.cpp +++ b/src/framework/platform/win32window.cpp @@ -312,6 +312,7 @@ void WIN32Window::internalChooseGLVisual() 0, // Reserved 0, 0, 0 }; // Layer Masks Ignored + pixelFormat = ChoosePixelFormat(m_deviceContext, &pfd); if(!pixelFormat) logFatal("Could not find a suitable pixel format"); diff --git a/src/framework/ui/uianchorlayout.cpp b/src/framework/ui/uianchorlayout.cpp index 4a2fa6f7..bad1adcd 100644 --- a/src/framework/ui/uianchorlayout.cpp +++ b/src/framework/ui/uianchorlayout.cpp @@ -81,11 +81,11 @@ void UIAnchorLayout::removeWidget(const UIWidgetPtr& widget) removeAnchors(widget); } -void UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup) +bool UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup) { UIWidgetPtr parentWidget = getParentWidget(); if(!parentWidget) - return; + return false; Rect newRect = widget->getRect(); bool verticalMoved = false; @@ -214,12 +214,17 @@ void UIAnchorLayout::updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anch } } - widget->setRect(newRect); + bool changed = false; + if(widget->setRect(newRect)) + changed = true; anchorGroup.setUpdated(true); + return changed; } -void UIAnchorLayout::internalUpdate() +bool UIAnchorLayout::internalUpdate() { + bool changed = false; + // reset all anchors groups update state for(auto& it : m_anchorsGroups) { UIAnchorGroup& anchorGroup = it.second; @@ -230,7 +235,11 @@ void UIAnchorLayout::internalUpdate() for(auto& it : m_anchorsGroups) { const UIWidgetPtr& widget = it.first; UIAnchorGroup& anchorGroup = it.second; - if(!anchorGroup.isUpdated()) - updateWidget(widget, anchorGroup); + if(!anchorGroup.isUpdated()) { + if(updateWidget(widget, anchorGroup)) + changed = true; + } } + + return changed; } diff --git a/src/framework/ui/uianchorlayout.h b/src/framework/ui/uianchorlayout.h index 20197567..1e644686 100644 --- a/src/framework/ui/uianchorlayout.h +++ b/src/framework/ui/uianchorlayout.h @@ -75,10 +75,10 @@ public: UIAnchorLayoutPtr asUIAnchorLayout() { return std::static_pointer_cast(shared_from_this()); } protected: - void internalUpdate(); + bool internalUpdate(); private: - void updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup); + bool updateWidget(const UIWidgetPtr& widget, UIAnchorGroup& anchorGroup); std::map m_anchorsGroups; }; diff --git a/src/framework/ui/uigridlayout.cpp b/src/framework/ui/uigridlayout.cpp index 57f91be7..02c915cf 100644 --- a/src/framework/ui/uigridlayout.cpp +++ b/src/framework/ui/uigridlayout.cpp @@ -62,8 +62,9 @@ void UIGridLayout::addWidget(const UIWidgetPtr& widget) update(); } -void UIGridLayout::internalUpdate() +bool UIGridLayout::internalUpdate() { + bool changed = false; UIWidgetPtr parentWidget = getParentWidget(); UIWidgetList widgets = parentWidget->getChildren(); @@ -80,12 +81,15 @@ void UIGridLayout::internalUpdate() Point virtualPos = Point(column * (m_cellSize.width() + m_cellSpacing), line * (m_cellSize.height() + m_cellSpacing)); Point pos = topLeft + virtualPos; - widget->setRect(Rect(pos, m_cellSize)); + if(widget->setRect(Rect(pos, m_cellSize))) + changed = true; index++; if(index >= m_numColumns * m_numLines) break; } + + return changed; } diff --git a/src/framework/ui/uigridlayout.h b/src/framework/ui/uigridlayout.h index 51534399..a8d6f523 100644 --- a/src/framework/ui/uigridlayout.h +++ b/src/framework/ui/uigridlayout.h @@ -44,7 +44,7 @@ public: virtual UIGridLayoutPtr asUIGridLayout() { return nullptr; } protected: - void internalUpdate(); + bool internalUpdate(); private: Size m_cellSize; diff --git a/src/framework/ui/uihorizontallayout.cpp b/src/framework/ui/uihorizontallayout.cpp index 3462758b..22bba0e6 100644 --- a/src/framework/ui/uihorizontallayout.cpp +++ b/src/framework/ui/uihorizontallayout.cpp @@ -35,16 +35,17 @@ void UIHorizontalLayout::applyStyle(const OTMLNodePtr& styleNode) } } -void UIHorizontalLayout::internalUpdate() +bool UIHorizontalLayout::internalUpdate() { UIWidgetPtr parentWidget = getParentWidget(); if(!parentWidget) - return; + return false; UIWidgetList widgets = parentWidget->getChildren(); if(m_alignRight) std::reverse(widgets.begin(), widgets.end()); + bool changed = false; Rect clippingRect = parentWidget->getClippingRect(); Point pos = (m_alignRight) ? clippingRect.topRight() : clippingRect.topLeft(); int prefferedWidth = 0; @@ -70,7 +71,8 @@ void UIHorizontalLayout::internalUpdate() pos.y = clippingRect.top() + (clippingRect.height() - size.height())/2; } - widget->setRect(Rect(pos - parentWidget->getVirtualOffset(), size)); + if(widget->setRect(Rect(pos - parentWidget->getVirtualOffset(), size))) + changed = true; gap = (m_alignRight) ? -widget->getMarginLeft() : (widget->getWidth() + widget->getMarginRight()); gap += m_spacing; @@ -87,4 +89,6 @@ void UIHorizontalLayout::internalUpdate() parentWidget->setWidth(prefferedWidth); }); } + + return true; } diff --git a/src/framework/ui/uihorizontallayout.h b/src/framework/ui/uihorizontallayout.h index f0826530..90fb2548 100644 --- a/src/framework/ui/uihorizontallayout.h +++ b/src/framework/ui/uihorizontallayout.h @@ -37,7 +37,7 @@ public: UIHorizontalLayoutPtr asUIHorizontalLayout() { return std::static_pointer_cast(shared_from_this()); } protected: - void internalUpdate(); + bool internalUpdate(); Boolean m_alignRight; }; diff --git a/src/framework/ui/uilayout.cpp b/src/framework/ui/uilayout.cpp index c55b2dc0..cc42b4ac 100644 --- a/src/framework/ui/uilayout.cpp +++ b/src/framework/ui/uilayout.cpp @@ -38,7 +38,7 @@ void UILayout::update() m_updating = true; internalUpdate(); if(UIWidgetPtr parentWidget = getParentWidget()) - parentWidget->onLayoutUpdate(); + parentWidget->onLayoutUpdate(); m_updating = false; } diff --git a/src/framework/ui/uilayout.h b/src/framework/ui/uilayout.h index 28baf1d8..5960018b 100644 --- a/src/framework/ui/uilayout.h +++ b/src/framework/ui/uilayout.h @@ -55,7 +55,7 @@ public: virtual UIGridLayoutPtr asUIGridLayout() { return nullptr; } protected: - virtual void internalUpdate() = 0; + virtual bool internalUpdate() = 0; Boolean m_updateDisabled; Boolean m_updating; diff --git a/src/framework/ui/uiverticallayout.cpp b/src/framework/ui/uiverticallayout.cpp index 3cec4460..48808259 100644 --- a/src/framework/ui/uiverticallayout.cpp +++ b/src/framework/ui/uiverticallayout.cpp @@ -34,11 +34,13 @@ void UIVerticalLayout::applyStyle(const OTMLNodePtr& styleNode) } } -void UIVerticalLayout::internalUpdate() +bool UIVerticalLayout::internalUpdate() { + bool changed = false; + UIWidgetPtr parentWidget = getParentWidget(); if(!parentWidget) - return; + return false; UIWidgetList widgets = parentWidget->getChildren(); @@ -70,7 +72,8 @@ void UIVerticalLayout::internalUpdate() pos.x = clippingRect.left() + (clippingRect.width() - size.width())/2; } - widget->setRect(Rect(pos - parentWidget->getVirtualOffset(), size)); + if(widget->setRect(Rect(pos - parentWidget->getVirtualOffset(), size))) + changed = true; gap = (m_alignBottom) ? -widget->getMarginTop() : (widget->getHeight() + widget->getMarginBottom()); gap += m_spacing; @@ -87,4 +90,6 @@ void UIVerticalLayout::internalUpdate() parentWidget->setHeight(prefferedHeight); }); } + + return changed; } diff --git a/src/framework/ui/uiverticallayout.h b/src/framework/ui/uiverticallayout.h index ceeb4e39..33445b7f 100644 --- a/src/framework/ui/uiverticallayout.h +++ b/src/framework/ui/uiverticallayout.h @@ -37,7 +37,7 @@ public: UIVerticalLayoutPtr asUIVerticalLayout() { return std::static_pointer_cast(shared_from_this()); } protected: - void internalUpdate(); + bool internalUpdate(); Boolean m_alignBottom; }; diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp index 87d88515..1f19361f 100644 --- a/src/framework/ui/uiwidget.cpp +++ b/src/framework/ui/uiwidget.cpp @@ -726,16 +726,16 @@ void UIWidget::setLayout(const UILayoutPtr& layout) m_layout = layout; } -void UIWidget::setRect(const Rect& rect) +bool UIWidget::setRect(const Rect& rect) { if(rect.width() > 8192 || rect.height() > 8192) { logError("attempt to set huge rect size (", rect,") for ", m_id); - return; + return false; } // only update if the rect really changed Rect oldRect = m_rect; if(rect == oldRect) - return; + return false; m_rect = rect; @@ -752,6 +752,8 @@ void UIWidget::setRect(const Rect& rect) }); m_updateEventScheduled = true; } + + return true; } void UIWidget::setStyle(const std::string& styleName) @@ -978,6 +980,9 @@ UIWidgetPtr UIWidget::getChildById(const std::string& childId) UIWidgetPtr UIWidget::getChildByPos(const Point& childPos) { + if(!containsChildPoint(childPos)) + return nullptr; + for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) { const UIWidgetPtr& child = (*it); if(child->isExplicitlyVisible() && child->containsPoint(childPos)) @@ -1010,6 +1015,9 @@ UIWidgetPtr UIWidget::recursiveGetChildById(const std::string& id) UIWidgetPtr UIWidget::recursiveGetChildByPos(const Point& childPos) { + if(!containsChildPoint(childPos)) + return nullptr; + for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) { const UIWidgetPtr& child = (*it); if(child->isExplicitlyVisible() && child->containsPoint(childPos)) { @@ -1026,6 +1034,9 @@ UIWidgetPtr UIWidget::recursiveGetChildByPos(const Point& childPos) UIWidgetList UIWidget::recursiveGetChildrenByPos(const Point& childPos) { UIWidgetList children; + if(!containsChildPoint(childPos)) + return children; + for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) { const UIWidgetPtr& child = (*it); if(child->isExplicitlyVisible() && child->containsPoint(childPos)) { @@ -1342,8 +1353,9 @@ bool UIWidget::onMousePress(const Point& mousePos, Fw::MouseButton button) m_lastClickPosition = mousePos; } - if(hasLuaField("onMousePress")) + if(hasLuaField("onMousePress")) { return callLuaField("onMousePress", mousePos, button); + } return true; } diff --git a/src/framework/ui/uiwidget.h b/src/framework/ui/uiwidget.h index 530d4706..37a614db 100644 --- a/src/framework/ui/uiwidget.h +++ b/src/framework/ui/uiwidget.h @@ -113,7 +113,7 @@ public: void setId(const std::string& id); void setParent(const UIWidgetPtr& parent); void setLayout(const UILayoutPtr& layout); - void setRect(const Rect& rect); + bool setRect(const Rect& rect); void setStyle(const std::string& styleName); void setStyleFromNode(const OTMLNodePtr& styleNode); void setEnabled(bool enabled); @@ -240,6 +240,7 @@ public: bool isDestroyed() { return m_destroyed; } bool hasChildren() { return m_children.size() > 0; } + bool containsChildPoint(const Point& point) { return getClippingRect().contains(point); } bool containsPoint(const Point& point) { return m_rect.contains(point); } std::string getId() { return m_id; }