From f7374aa7b7a75d2ed3b2b9222b4d6990967e3dab Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Fri, 28 Oct 2016 00:19:38 +0300 Subject: [PATCH] Almost all icons moved from sprite. It is a broken build, some of sprite()s are in stickers.style file. --- Telegram/Resources/art/sprite.png | Bin 22300 -> 5286 bytes Telegram/Resources/art/sprite_200x.png | Bin 48811 -> 10769 bytes Telegram/Resources/basic.style | 113 ++-------- .../{box_search_cancel.png => box_cancel.png} | Bin ...search_cancel@2x.png => box_cancel@2x.png} | Bin .../Resources/icons/dialogs_add_contact.png | Bin 0 -> 124 bytes .../icons/dialogs_add_contact@2x.png | Bin 0 -> 163 bytes .../Resources/icons/dialogs_cancel_search.png | Bin 0 -> 197 bytes .../icons/dialogs_cancel_search@2x.png | Bin 0 -> 273 bytes .../Resources/icons/history_action_edit.png | Bin 0 -> 445 bytes .../icons/history_action_edit@2x.png | Bin 0 -> 1011 bytes .../icons/history_action_forward.png | Bin 0 -> 311 bytes .../icons/history_action_forward@2x.png | Bin 0 -> 600 bytes .../Resources/icons/history_action_reply.png | Bin 0 -> 446 bytes .../icons/history_action_reply@2x.png | Bin 0 -> 864 bytes Telegram/Resources/icons/media_video_play.png | Bin 0 -> 419 bytes .../Resources/icons/media_video_play@2x.png | Bin 0 -> 720 bytes .../Resources/icons/media_video_play_bg.png | Bin 0 -> 899 bytes .../icons/media_video_play_bg@2x.png | Bin 0 -> 2591 bytes .../Resources/icons/media_youtube_play.png | Bin 0 -> 286 bytes .../Resources/icons/media_youtube_play@2x.png | Bin 0 -> 530 bytes .../Resources/icons/media_youtube_play_bg.png | Bin 0 -> 812 bytes .../icons/media_youtube_play_bg@2x.png | Bin 0 -> 1731 bytes Telegram/Resources/icons/new_chat_photo.png | Bin 0 -> 642 bytes .../Resources/icons/new_chat_photo@2x.png | Bin 0 -> 1268 bytes .../icons/send_control_silent_off.png | Bin 0 -> 518 bytes .../icons/send_control_silent_off@2x.png | Bin 0 -> 1029 bytes .../icons/send_control_silent_on.png | Bin 0 -> 685 bytes .../icons/send_control_silent_on@2x.png | Bin 0 -> 1487 bytes Telegram/Resources/icons/settings_close.png | Bin 187 -> 0 bytes .../Resources/icons/settings_close@2x.png | Bin 296 -> 0 bytes Telegram/Resources/icons/simple_close.png | Bin 0 -> 178 bytes Telegram/Resources/icons/simple_close@2x.png | Bin 0 -> 354 bytes Telegram/SourceFiles/boxes/addcontactbox.cpp | 2 +- Telegram/SourceFiles/boxes/boxes.style | 32 ++- .../SourceFiles/boxes/notifications_box.cpp | 3 +- Telegram/SourceFiles/boxes/sessionsbox.cpp | 16 +- Telegram/SourceFiles/boxes/sessionsbox.h | 6 +- Telegram/SourceFiles/boxes/stickers_box.cpp | 1 + Telegram/SourceFiles/dialogs/dialogs.style | 26 ++- Telegram/SourceFiles/dialogswidget.cpp | 51 ++--- Telegram/SourceFiles/dialogswidget.h | 9 +- .../history/field_autocomplete.cpp | 4 +- Telegram/SourceFiles/history/history.style | 39 +++- .../history/history_media_types.cpp | 4 +- Telegram/SourceFiles/historywidget.cpp | 212 +++++++++--------- Telegram/SourceFiles/historywidget.h | 28 ++- Telegram/SourceFiles/intro/intro.style | 7 +- Telegram/SourceFiles/intro/introsignup.cpp | 2 +- Telegram/SourceFiles/overviewwidget.cpp | 20 +- Telegram/SourceFiles/overviewwidget.h | 3 +- Telegram/SourceFiles/settings/settings.style | 6 +- Telegram/SourceFiles/stickers/emoji_pan.cpp | 6 +- Telegram/SourceFiles/stickers/emoji_pan.h | 2 +- Telegram/SourceFiles/stickers/stickers.style | 9 + .../SourceFiles/ui/buttons/icon_button.cpp | 6 +- Telegram/SourceFiles/ui/widgets/widgets.style | 6 + .../window/notifications_manager_default.h | 2 +- Telegram/SourceFiles/window/window.style | 15 +- 59 files changed, 316 insertions(+), 314 deletions(-) rename Telegram/Resources/icons/{box_search_cancel.png => box_cancel.png} (100%) rename Telegram/Resources/icons/{box_search_cancel@2x.png => box_cancel@2x.png} (100%) create mode 100644 Telegram/Resources/icons/dialogs_add_contact.png create mode 100644 Telegram/Resources/icons/dialogs_add_contact@2x.png create mode 100644 Telegram/Resources/icons/dialogs_cancel_search.png create mode 100644 Telegram/Resources/icons/dialogs_cancel_search@2x.png create mode 100644 Telegram/Resources/icons/history_action_edit.png create mode 100644 Telegram/Resources/icons/history_action_edit@2x.png create mode 100644 Telegram/Resources/icons/history_action_forward.png create mode 100644 Telegram/Resources/icons/history_action_forward@2x.png create mode 100644 Telegram/Resources/icons/history_action_reply.png create mode 100644 Telegram/Resources/icons/history_action_reply@2x.png create mode 100644 Telegram/Resources/icons/media_video_play.png create mode 100644 Telegram/Resources/icons/media_video_play@2x.png create mode 100644 Telegram/Resources/icons/media_video_play_bg.png create mode 100644 Telegram/Resources/icons/media_video_play_bg@2x.png create mode 100644 Telegram/Resources/icons/media_youtube_play.png create mode 100644 Telegram/Resources/icons/media_youtube_play@2x.png create mode 100644 Telegram/Resources/icons/media_youtube_play_bg.png create mode 100644 Telegram/Resources/icons/media_youtube_play_bg@2x.png create mode 100644 Telegram/Resources/icons/new_chat_photo.png create mode 100644 Telegram/Resources/icons/new_chat_photo@2x.png create mode 100644 Telegram/Resources/icons/send_control_silent_off.png create mode 100644 Telegram/Resources/icons/send_control_silent_off@2x.png create mode 100644 Telegram/Resources/icons/send_control_silent_on.png create mode 100644 Telegram/Resources/icons/send_control_silent_on@2x.png delete mode 100644 Telegram/Resources/icons/settings_close.png delete mode 100644 Telegram/Resources/icons/settings_close@2x.png create mode 100644 Telegram/Resources/icons/simple_close.png create mode 100644 Telegram/Resources/icons/simple_close@2x.png diff --git a/Telegram/Resources/art/sprite.png b/Telegram/Resources/art/sprite.png index e8c0edafc83ff70bc7fb89b08fae1f6d319de58f..d76672e0b11f672fbcdc43c98d539ad48c70b9e1 100644 GIT binary patch literal 5286 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 literal 22300 zcmaI8WmHvN+cr#higXExfOLbTpdg(h-Q5V%sic&2w}9j(q-)dC-Q8W%{Z6jye#d)1 z&lun582bl%uQk_<Gmi5(k7bCWyd)+X2^tIx45rkFcgip@uwmfSgn|UVL85#s1_Sc~ zM(W*LRoB%01vgi1Gq20XOQ943tAvuy3hT~zTD!l^v^cUaM4u_68OSJ8XU3MrcIF=c zMy!t#vp~N?*zhBe&O(ZYLj07)3}3V&JnO!t)>yQWif8VLHaQ>}a8DN*>^G0+<dhu! zKq0j>^<}5RX|rEQ(&*N6b1^Q@0)@)|g9pztkG@bD+%E(IST|AA<y3ZkoNd@yKN(S) zVK~=(cUWmS@n9_l2K<xCyB0FShsFM}OA|!<Ps>Flf8Jtavo6E`h7$Usd1|x|5+kv| z-NNZ5yz-!WMkMwV7B%c@(?Q=Fjsi{>^*L-h^pmUTOFRr5kLA5r$JECN_MX{<Fa4<A zk^F!L+fg8OJzG{<7S@M#=Zs-}Z=yAl0+H}F^R<KhG$5=2roi>W4|horJxl~fID&#C z$JZxWw;RqlC#dt2Uq*^sG(sSbg(w_Nv)eNwVkn)jh!{5NB}P*zypW(biYKBy?VJBM z21=OcGW#;-w%q%%k43@VUl-5L8J8=eqK$a8Z2lkMpAnr5oIwA;H)G6)P!QDY5~^-z zop>w{jRb9WmG!UVqf+^!^dL0DG@^NJ@0G}kGuvZA(6m+ZMx?-^Q5>xHk#vK+bL0uz zx2Jy3ZNEjupz=?2yM#Ylo#YWG9vO!0=xk3By@eA;p)#E`JX1LKHf{bk7q<N6K%!+5 z=bx)JC`B{O*j2>M=-R`*!zocj=>4etaX9m_Txo88HmZI`XjZm(ey=%&jQv3$g{q_9 zjqv7pLY4bHgWTBN<88~M$6qs%+ZieF*S5H^N^7Kd$q|}Q`SUnt|3s#wAlxOg<e+jg zS28a(m%_=w3Jff)h`5A=NA)qT`uh6CsDy+Bsa?39@4~mY2Fn%WZ2mZgri~QzFTNPy z8dlEis})V8?|vSERKeWO=1NI}Rrun2DW}p+ATs8b%~&Td*k+XOCLrI>mQ-7~!-9FQ z#pl@hb20lFly7I;fAh&p1ivN7V1o7M>5<>ayN$6QiB+mIc^6F-GUVpv#IH!UT)ZhT zK%pAdbdq#AgYk2U`YGN_;?*}Ei(X_PyA=#Ws>lq?COPpCS5$&`RzrB#oTuR3lAgc@ zoEOp6{lgB13acW6AJr>b9g&TIn3R=yE}2JNnZ&>mrOZdY-<l=KorXz+j|sw=@19N} zPmf~kx2>vc{v{VuAmyI~Xkt#D2eta^-q6d)+k*V`LU<BiWJ=d%zw~z|ck6T_46x}4 z!Z%QOY%YcCZ2v?G;xUaYuJDNOn?ID49b@w>Dyw#}Zt~6`u->OJ8F$7?jWKWr<=D08 zSF;#8DL9<WD{qttLf@l%(xOK&KzM2Ws76Nw{8XTCR{bT^)r(=1eUZ)1&;k;Pre3D! zz+4<HEx8^qx5jM8JYp1WNEf^tP$Gc-9hG5C^IQoaB!Q=VNjK)a5f8<&pc}?GC&?rh z;<^Y33Vf^H$fGe9hf_2C0`Jkcv{4tbCr)`Y{4mwH$<5k)HYyVof=8lOgdf^z$b~Hq z8&9a~x-z_{ds$Do^!RXjbm=N+o5K-Z1_Qi-ni&ypndNL)J(Plk_8Ea;{H{dHjDo*u z<xEBMMHR%xiH|J)_Ne8tqxBoIkyyK7IRZS*%{5xt;Zn=va?0Xao<z}v<$V`#bNQle zjTy%YKdD-#7M%Fcl3&SPn#;T&)PrXV(n1vG$6#!xN_FNk+%}WK2|@#I4;zlIR@#HG zk$ces0`n|J29(jtC<I-Pk4cxVx?-dm(!FnX&Rv$gE(b-KjkEm>;7g_TgMVLugK^3U z>asW+{!xZgIr9D$uY&@-XU&rLZA6pDrLD5G1Gt4;#Qkg=w@r+u&^ZfcE{aAHYYB|h z4Vw-gj@jURFdHH)=**F0&<I8R$0NPvplmUu=09PZZRV<NmKt1+OhY@{gf8bD&#q3^ zBw<pNr8P<>^$)~gtBtxN$m=c_Jt7%%r@?i30*AFm$T#Z^J^hH~2&GL@VCCH3ghN%f z(d%f*J~O^cuEWrVd(~hTfaF?ZyHI~HW0tXCSfyFFmF^M2!_7@zrCGuwHx}DzsKk>p zFgZQ#dba3sBvcqXdU3eWU;!RBH_~ocv9^EUXO(~%`|gHgcUi(NU7BxQEtqQ^-n)Ap z9v&{M-0gI;#N+aCp)hv!9O82ym7wQ+UAtggGkxH^_i%q3*|LIZ#|L-3UpWNk@MX{W zZ1ZP<Y;Of}=>nbB??H!F`7)<Fj|g5{?Xlnf;%4wv<=9OMImERxH=NNioyc}|sx~8q zFmpXIbdd{=Lqb6f_4WJC4GVb|B)X6(Eltf`w~HCG8r#|57U(M2=rh?Lf7Td_o2_Bi zHQ`Ua?m*C%c>I~p-}#vf+F;NgIMDKN4ypO1rsgh05xIHpUPUVt@9KSCq-P_eq>fWN zxs;{X(0@i?u_F~77RW*L`F1@_Hw!1`6kgxIV9A3U+5nay_q5n%>zRu3T$zM78D1AN z2YXYHC0Wb1Hn^~CJ;!ZdoSjXhZAX@8SZSD~pBu2R{ycf7$_UCG+#mV38YIg)m8JuM z;1CW!4v9S8m44Zqw0X&G0DHsz0C%4Z`$IU4-<D@z3s>$zP9A%w{R3&JpU}34ajlA~ zX&I-`M~^^(VYB=xc=Fb7%I!E}!ATQ-&7Lg*;|t$}ezGuqoth9;SBG*PurvB6lK(_< z?-L9c=DKUzj#(YuNKl5tEjRopN5B^}MoBC!xAmp(q%2uC%nWvkruZW1qaMG}-zLzL zQN%j7I<pF;l2aDzFI(PJt323bR<^~s!ni4$nAh@T&eUr^8irW(ZzJrS5wwXG3eP0p zKjy|JU%(`VOns<w8&%4{zJqs{Gm5pCy%m5(zX|@O2cLn6w3_yma{N>gB(5HrIX9&A zJCf=AU~l%16kvS(DToS4gyO>Bh1fu94R|R4FC7z`SkwG?e?-adahNXTA)A4YhaI}? zCRIJlbw2N^M_p3q>w_R1E}Y68w9_P_1qT@+cOCHQ=-{aUn{zsP+46W#!;@lz4i(21 zdhW=J+0rWfaJ5F_JGCdIsi)V%eKYU$Ao862`Hp9a#HJD^&HO)5;S5*CNY>_{z+UZa zL-@b3Lcf-R;K{pfN*^b41UuE%G8osZl^{%!y!_KgD%3Cy8@yv2dpgBGSK6T=`-%B* zdKb`7l*b;+sLNOHSU<pt_gkHai8GkIW_r<Nr~iz|u}%6c_ueH7;+pbJn6|C&N|>;f zmzD@;vdl4Xgb>>k)|H}`Z3aCGigTK-WbRKX^PJ$vA}<?i7=I_yJW?@op`Wxq?vJ2F z3oLh$ju*q<nj^2?pH*dQCe9O-<Gy6`f5GvhjTRmK!x8DUHb$6J+~!dUT(jRI#(4>< z@THPI&2c`!6$tNw0+Y&o&zhA!==Y~``Pj9fdg3(g?0!qc4wv-v5ywvTiOGHIk5j3c zo%?AttC7orOo-{ZJB;YxVH9k1Og@%VHh*ZX)a%AEt$vDvho2dn+{l&9ovxTPL?n@~ z_(a|?38Q$*fVF#!q%E%G<eEB~_eUvosXS}8{q)-Qu7JfZFbNa0y$mL4hk3KkwcWD) zmK9usf=jDm-hqh@QlBA3${yb3X4{YPp5oRx^Xsb}CcF5i8i`il*79I)EL043)`6hh zw=daVvPB1DVSd0Ncp;~3nC`wFC0Xs>w3s7dfP1hKM5%VtCN{4r!Mjs1U#p^{n;dGJ zE=@%6f*XT9@^0vel<t0>cd1VJ?A|(QjxE88Nab2c`Mw#UFU97_M%0xV9_;6brkUaA zRDK4{^Qy7DbBkK9Mqbk5T>=#IAT_yT!&j#Ol0N(1Pxpu(!Ia8q`)wvvG4UrHuo-D= zfP1&d#s$W}G4%dGK=9T<9Q+c@kZd+UTr<wJuP#q$+D`rFKUW;i`Cpfze8&oxd%}I} zmtK6wTkm)k(b5@7=~1IB$GGkED<A@6Q&E<cCeiDjR5ITH+-7_K^eBIZr(39GqvY)X z0xt*ujt2>t_lK4fM2<Jm?{+Y6|H2%WLCT>Cocp&UWsoRnM!SIsHu4}ToVK4)76%6> z=R(YN)6+z$&pCW$UoakTeTA0KLx=eNjAs0fD%-uWyiFwHlwkPUn)kOakCzh=%a9&^ zvo#yL*{_RUp?sB+qli{g7W?@lELxhGm^M!LC-#5O3yLF#V(=YcYB3a*r>BS|Qa?e^ zw&zdT5GU^mcK+|BRQ>c%lr(;HV8?$7c;N0Q<X9<DKlx*`FFW`@-~Bt{PbuksdQLgC z9mOVvsXS~dTiPeM2L`kx5|hnIDrC+TFOlu{`hVk~oOa+TAcz#o&;{Zs{S5r?nZ(56 zi2a<dX+AGWG>R0y*=DYd9*-vZ-xD8OACaU?!;@2bI~qh~TbGpXM8M<3Q`$}GBY4P< zEpk_eQHOsT{WN3h&Q0YK>eO+zj>gkraqP|#Dg-M^<xm{z_;EJnB8*xDbE#$)*xZ_J zk^me-<(F*Abd=NROuP<<f1!15WA5+8P@=@15fwzC-jPkS`E6Mvcq19h_JN||-FGSd z!~|GR{B4@*kRH@|{tym5%rN3uUL05EZdF!I6e{KSZ<+>f&6bTg&otc(Am=B<?gJKd z4bvgl)U{l}BhRQRlMn*k&TF>0w`BEE*!B7+463A^cR3E!nv@(jjocbZB;Gub%6_z= zC->o{dL?5?G?q{4ie(NzzfF^)i_X*-M@Z|B6GQ74<t_v@^F4x1|JA(@ZSZA<qviC_ z04B^m`qCsliMNor7P~fjy|EL@>i6YUZ|tiAEz#tk{=u|<2D%lzg~-#ruIj4rl!(>H z-XLgT){<S-!SP`+Nh_BkbTPjG$ealk<21TSDH3i8%kz<7+2IV;Yb6ybFhX|?+lYM? z`Eo;Ae;y8aKu0u`jdg@{B65*#<t;>m3zwAOZ4Q*=Y|vg{`0Z+hJ&4u%ERVKg2tBe# z<E{}WScj3%M3`VI{2~#WFJW%;PU^vVnSe9MVcx$za2O(~q1nHcVQ3}*6&C?Ggq8F* z$1T~I7#u^}80d%aW7+}iWWL9ZvZGHwuQY*=YktVDaSK`eMY`?CD7d}ifcEFR;~|@S zzKa0(&?%;7?(?g_C-srHJ6^lsQGc)`Dk#VCLgL*%Wm*goCV4%}c8qlfk_&c7J8<UF zz;U*InG1<8@F~MVJ#b9ol$iMY%ihFSZ`KUT5xiD)E2?sT2C}2~Z!F0LzW_Vb->8)D z>)~r9HK_Hqnd=V;o=M(E{jl)x&PHtSmW<|RVNi|zDk<qSCDqIB-#h<&v9HnF+e`oY zb(>*G$+)ShY2L&UAMrCHL*XA#wxNB}3HUqwGUT;R<Ry4d*wdoPyomv>H*8#TYt!XM zXXodzirU(;Ha5)84djvC?RAb@+Xn}TnVFfs11Y@S{t{|x@!we-tDmyi+kVTcR-dcC z*j}RqS*({Q@6V*%5{B(=7=0TOjl2k?3xZ+5y(W(j_gT;nPNg`8&QTi!`9osM2Q@d; zc`11owF~8AirMXO&;#cji)8DG*Bwl>l$ZUajfjvLA9UR@F1fMo{e5F|^FQO)G&D5Y zP44(DOO)=-IEEKLNCMrK;DveGA=eAU-c3Kb<Z=oMP;;N><m9j$L}g?sI5@Bq6BE~J zv)C>+O8Gpx9;OMnL|9FgM#aSi3~d>$b%k@@Gonzvl7ee*R6u+vMn=oKuDTg%UuDg| z{_@INU*Gre@Gx-=6d1F!ny+8KrjB6MYfc>;lpjnN3LV;l*LQVITv;*jRWz%^%^in_ z^2?1SuL(92{F>l8po_Wt;*W#(!p|UDxfj!u?CQ$XR@%bKic?TmMFkI!;O)l7hIw+= z&RD)&0--(DbZIR08!k}%k@FcJ_6Fdn;PbM<JxZDV)ifQq-gZq3X@Sp;B^N?Dg8#dk z%7Y>Z?^)H*kTNo&Bq1RohP}D5QEuE5?GLGRJu!Uq<_&dnJ^_=usGOYK{FZt0B-xe6 zca-qsvfxj*AONP@@XYgd{=OkP){l1l3%6DK+0jv>#aoEAMX=d>wJl&XFP2I3H$64m zBt&oMD<b+cVLC9gmrVY(h{mzwf|;@3uhCAsmU)q}DT>3rZO6-NV2n*oCHgl9|NLS5 zLcX%4!9+lY6;!Z=_;m%xUGalDibLp242&F7xzv=1#HPQZ*ntOgHCz73{;lPLFd0LH zyHF&IEdwG{k)fkY(!mKZMb-j?pLJ4!r-o;_vOGy%Z4u-GgXC|V%=w6LTFdyHwug_O zzCj#1brnn%^5Ds~+vo}>&C{j1X&lQ};N;<nKXX$epAQ;N$)8MiSE72?`-i@u&WwF6 zl#;>-&PwTEx_nKWjUEP=-SXY_DSNvmG7{4E_O|}XYNtbAv-kZQUc1FGzR9H}JHF4a zQ<acwlq73$3~!|L`<Yh^U~$+7x$$XA30QSy&CJaDPaL-f4a(K&85u*}iov09nhg@g zf6~w(zN}ge5B$#S{yOew&&ObOfDVI{)SWu`rxaZ|pNp2cy>5(GQdAVx)uj;5z)t83 znA$@;^A1<Zmme7!X>AKYci<xfWtY2$hj`Hh(u_4vMP=m(7xN5Ck>;wCeNcb|^NT7B zDpP2zu*ATo8%gB>p7C<iqW@z5b8;lqcIpwd4(S3K9Abi2U$!@!PH$=uroR5Y_SCNX z91tH*FxDbzVnW-Oz}jtEnPovj5K7COz^gFP66tiM<NpC4L{sWx-Jq70R>cpRl^>oF zwNP3ARCUUDKVJSef6VRE*%xv?`xl1PdV*L%-##_}jjJ>i!2tQ*P|hND+>_X_$YM6k zGYMyr&LJGt|2<p_iZ>oP0aEt^-Hk)8>S&M4TMZ43Q%i6QI{VZIN{MHj*BOf)y13-q zSvVLW4CfjMo|sK}7N!<I?BMh;eMHB82lEqyTZ%QSzVGi_YqJn;4P}_wE9wz19$of% z6N&X3GTdee%n8dSHCYUt9hrPCQWztjFKFf$NE=M#?btdUnVajYvYJw_vcw1DWOWNt zU=Iuo#3m$E+OLQet69k=IaW!%CiljsQkH_F3E_HZB7lFy^7KXE4oyM{E0Df~1~;ek zAKOU=ODX-0)C^v~&~4-^*jiB0Nn2&aU7bu45&8iFd)_}R(Laz)c2sC$Vs!oGCO+7g zybogH{e&Qm{q!B@>F|6?d}vbk!F95M6KMYdGfxojzoC?Il_r%en<mLir7h=U&m9;- z#}I&s7`SG*^ZgSspRg+|DjGZG2g*Pkm6rxoo9F-+u}eLBZrB|4KOhY#_Y%uQ;}&;i za8~1E{>M*#R2?rD>ZlV0KCLhA_Td<I0j$RU{uzm3^A9KvHR8`|s!ez>dF2mZ#rsVv z*3zF4-v2~Y|6;p%B-}RtB|Vbw{PDjW1zek*d_(KNMg%|SKqH{qM0*-S^s87uGQd+E z&!yCZuf?9gTQovIqTT-(?$79pe~|9~n&kgKmi+HM`~QTWojg1|rnTA!!^1dfX=xZ3 z7;HQ|f!%AZwly(HNmAb4!XO&2Z^~PLyWOGZ)RvJ!x3RII&sDFsCjR*GV+@N7(ca-< zUQ<(AaWRuxsdfn9Ehne?`ukPKZs5dF#$v~I!cZ{s$9e+L3AYaq<!{!bqo0B6q}0^Z z+D`Lw`puh~n#e@F1y`px2T~Ybzm~od1bKCPoBsOxI!~_%1Pzc>QswEK8`3&M2~~7; zg|qh3EXc{pfB*iisHg~?t+Jx~7}&S5nwy~8c613}=6U@&o>kBG<~liV<=h<>aH;fh zg6L01L5ZvN`{LqabbS2zjY5-g&$HgXzMlU64%?cw6IUWq(wxf5n4(XR(S?Npkjx8; zigIder;icABr~(Js5G^-POd$P4)#VSC%fVpKb2{gsDAuNJgHl%T_>icMGANkvz4|0 zR6P)?9XI=l-v|iML|mSqXT@fNtywv>i;IZB8cgN?mS@42CjXj|v8S(3=0>n)F1&pO z<=(nnU3Ou8jhKXFwIc)%#(KVXWSkqIA<18XBV%LYMn*Krc}i+(5+HAN3{WS}9c+T= z?DXYJR;=Ou&G}POT1^G#^JnAp$=^QKps)1ADFa>PF7vpjH^^9IAR7~fc1Ck?f#<ga zU&o+iWMVSzi)Y5|1~Jsa#>PZnAEszRT1iPs);>HUVsvs+LQjuU7m|R8PEZDRN?Jz7 zNVgrJr}N#9WLU`HY?#!`UhEu^QxL#_lOY#y{*jbKe914L9|K}M8ylM_FdTk<esGoV z=%_Lh5>l=E`Rk;lBqqJ)d8e4zslD8il5h}gVQd=?c;cD00tez<wcLQ8MhOFx8JCch z<aa%OA)FEU{X3c(MAxR?cUf-SvZ}(U8w<pG*n5e@U5@rI&d#Ir^JEVFEB1<NYJl7X z8?tiZN=>0xW2+;}yxd8sXKZba@xs6y05^xT?UCB4)R>s|!88GJk(%o2&pV^JiOG@5 z-vNY)XVPdp-<z_qwZ-B-@h>Va{#jkkv#Rds==koS%eF=ZBqOjQL`1~(jSYkHut*~| zv{1Pe9@;zOC15T|oMy+af_!9H^R_PA<xhKNIq@0|9equB=}$N*FF<MQAPZl43d0nu zF`^T){A_F#H25H+A6#d7nf{8gEHkUw)*eZZ6Pw857vxlK^P0dHWX_e-YkF4JNDm{Q z!@4b3@G*>l=r$$){rlNdm~v|{4V|1<#Z>U57b77m3iqV4eMKM8nB(K)idtHIV2wt? z_Yxw=!B??|m$w$y)=x8F-_ikSW`#Q_NYlrs#X#M6F~a9?o_}_3ZY>Z|)WbsnI3sR1 zuuU4<Ns7pz^mGaq-NrwF*S$Kh^XUUDa-IDOTmq|Jy1n}Es;ZIc>EHoVql4M1##MZX z{_Vv<mgdZ#KPZxs6ejk=^DTCAV^60JOja8_^*I3yI8NXtW8>o;Pd2#3NVQqG;E~MX zN9T9Wc{jS}M+XlPF^F$%eG81Tr?=N|qVQu({nw90Y5<kKx3gpY_U)UjWYWm@@88uM zT^+W!Dk>_1MgRQy6Z}g~RaKS9o1?U_@Vj|JBq0e)0^`cLnyRXQvz?utf-5{mphROC zO1=BJWyg@4n;RfB1HkDKUvyvHdjsP%x3XIMyU~Y-hCZAU4$N%;Y##$FYqw?9=-3#Z zQXkAJPv3h|BBEsgJ#gRR4s4w|th6DHQN8T2uJKS%fh{9+onx-|uYvV|pJJzqFD+$( zAz;?@pRi0DFVZTRRMZpy^oj7Kx6x_m8Q7(@(OenaA>KC>I(bpYq_!0bzfLGvfj<r; za|dSO3K#bM(qQ_PolTwnt+}N|WTh&Rn~hE1wXwD~5rD%=z{>v2>9OWXDJX+cFE>QQ z$H&iVsnowhFflgPubJD~-9_VG>s&j%HU}#wB6tg!<Fh)ke$$3au8%ORFb%dRx%+Us zDB6)0@yl{Ozhb^nf6dsuy}b?jWD24fI3mVRrHOASbWMLRE-nVY0ONiCg$U}Y_kxQf zBX9NeGFGZUYpW8F`-#Km78Y;ExU^XkRvhD$Rn^qG#<R0Uq7>AeC}q#A65`?<ZVzfy zz^E>4ZzUwUeoD}|2~x;s2$SRXf>OhzCz=+xgnYVS5AdH_05)XhP|l!imb0Px`T3H7 zM6&>ME`ifE+)T+@)xd6iUdy6l-Ky|CL}I`{^su`Yv^HSHGMv)n&3>(M*Y}(B#XD^D z;>WY-Snj&ICXHmL1Oq4oq8~~?m{Pt=wrTG2X>v-+2v<13NdUk{cCW2~Sc`#)`BV@Y z7*K)W)!#2GEiH|)WjB3r5$hkAg!=(hIK92nFzpZNQBhID2t6U@AX*w5zdUo4l0tp| z{{2&gTU^wgx8>!vorfBh{{R6dnpTE79bz%-5BFkm*qmzfE3k5BI0g6-N5tl84}~%Q zWkGu+zHvo87q@2{A_jlQXMbfRz_K1Ljyd^=doB1GD^w%eS%(BRd|foNKiwRtjYPKl zKoLoICM8tgkI$%9X4v^XajQ$<>5x`e4Xt^!I?6O7yTv^`8dlC{tgC;<T!9kz`1T%@ zgmIXpJo@G8e9rqs;^N}#>+5B1r=}_c&LD)Jot?cD8j|HVb#ijDf4IA@jl{;lc$sGO zjJZ+5q;f{R?lW!XlzO$z9Ehy+xp`cy;=$MYm+5)8ew45h2eT<~dMjHsFd~Q#O<Bz> z4?g=Ju;o{th5Bu|99g)Vfpv_9$o~e|92|l!gm)!>7$j9X&(38zp}SX<I;LfL`s0VT zXX;K#D;yjg(-kJ@B_$=m9q+t-`hR7EWib)Rn1ga(5kai7x=GiLo=Mcsbob~;;Y|{b zK8V~5sA0$Q_paGNgR|Dvi3)r7_xE_$l{M!7R||lK0hyAKlfw)T4+o_Jh?w~b8F|&! z@u{g~sAyEOvrYLsk$ygOmeEenYG5;9oR1dA&R&)^fJnT{8{1LgmjRCB%rEe!{xQrY znpUZD=$-%4@mieQY6mJ7`I~nh9v;7Xx(=KjK}N))6edeXv{p48ZuYu$-N{Wbx3vX7 zseJm>9f(N^ppr&EH?vlC7&wYD+l4n>U0r-%cAv90ojpYZnX3j@!E{CS=lJ;L)-xQy zkmwZBxh7cj)YU&oNlA^KKI<78;%)4~#>5O*YycSI$${8OEP-9H4~U<<843p$>~M8# zz$Iq{nrZ;I=U9+<d3llXfA)`$kN=s|;Ez)VjE)BC!&Y8~Vg^frgmthurkYlP9y)|{ zC%If7u0T&uuWxVvqqMY?fq4RFU!R43SkjU>PD4ql_4;&+-{p`DKtoW;a`5mFkSG&- zjYYEHotd)akA;lw`~;}!?#^?vSVLS%33p;*B1=gKAVaVmb`B0PkU%@i2Hw%6YqNZM zm+@Xlha3<mxzE8-bMf#bYf2b{7!NS#OY#V-4$G=8r#A6*cMZTy;F<(srwt4aZr+^l zW$6<W5kZeGC1rQvy`psiFabqj#!%4Io(aG;34NV_DX6=@nA2!*W(LW19Ypf5urT|b zQQE(!r!hQ7?_1)DW85NeEcO|e$)WcuO!;V61BXI#TBezKC+KH;JjSTb7xE^t--ou) zxm#o7;&37Tpxsqr(nkPrkHecZCl{ABr#B4D%pk-t<ND$1m@2xu`g(H;I&I^Codz(l z+-iyiM8r;TPp#YOs~{}$@5F1A5W5$GOlW9m)3pvpzxa#m>yrx$3;knm+xW?_KmZb1 zNy$|H4mx7QfuP-wt>e*H=KDt&d05gDF=evt%a<=Bi;MD-lE_mKz5JRQUR7I=Nw;TZ zWMsrc8E36|RN!9*1_cc~^s2Z=;OrCv!+q|Ge%$o@`6pCQUc`-;e}$Hr{lMb9_RG5; zYyo2f600`L)X!vPfC9zAE_QZyf~kYB_O_9uvZ8{XnK>8a&yBtWm5(3aTUc1gwn#W7 zWuaGV8f}`GCrh}v@Y2%K;#NjSk_(s;edXrnW`_`x6Oi&)2k!^~<POmH*wmDyi;IhS zc&;np)&aoHX=s=mM|qL^+-kBoM4*G8hUOapbe}(eCZeFgIzLeb9&*>TvAOvfSo5%F zNNQ?oVkQ#<LsoY7R{$Hq?rZ!u$9)1!6%`!WNch@LBWov$A3w&OEq(Cu5iuJ|m*Zoa z{<FONqOPtE*Uz|e=D}Mm03}M|a7J-=$)n=d$4_=S&OzQ0{@b>kVn{N?@*;g-*lj3q zv~mP{Uufpu0&2F(xcDp02TmAd>4dT-H?>mQFTk1Fov(pWgV=|puU-k$6j%X{DcA^P z2;jW_2DpbHg@XbF1lC_gMWGF%hKgW1z;9(;;j7e{inVG6o%9<PY=P_`5?Cp)arS$H z%u7kKH%=&WWAqFR2KP5Tn2&%$%PTLB0!hdDa6ZYY73y_+Ay;2*3EI|sr43>teVWRK zrPEFM7QDy!FYcDkE<iMDH`p?U-Schmy@VOz9bCga{}Lkkg0?x(2AWkSPI4RqE<xfP z;?*vxZfr~iWy&iZjSGNUoSdDLK?nS!$yZ$uz!Lpfk+T@flQT~y81us-Li&+sku_+| zX@L8jg2ZLsL2}eI8SrQFseG;5=GHbtEB0lepNx9Y1A7ywl)$3%os>w_e4!A`Tlc!x zmC}B7j4K@U>qn-hx|6xBWW(pBX+fVVVIKrgHuo{*V~N`4tmaaN)@v6yAGF4_6LRGv z>t7HLhiHf%G8dA!6a0}4_;Y^$RGbo@kXiGcj*gD``*8q26z9HxI??>-yS|xYnF{yx zTPr7{j0ldmdTjQ9p-km-pnmlvw!uj80l1o!*EX!6gg&?Spn48eedCjp$?410hMj0! za_zP?q%4+1%mM-_KzJ|$YKD<Vko4^=L$GON5?FGZnuJ#99zbTb2gQ_>-7y!4T);tQ zW@c1okJ>>!2lCBu@%`7YaB9WsROAbWx&Wtpc!FF=x=r54|7!42==c^Sd12%`@|!n` z*sw8ZVQlSCEz;dRZ|*3%fnD-TKt}R;-8j8FjUD;12nGW2GREF%To$!-d3JPE%+2jO z)-D;qRttTQuz*jp7u4Z_gq_Oo7?_-#oCu4I2e>F9A)!=ZFOuBnpiDI#$$l>dk+LK* zWI^M?yoYnO$tDSGJ#~hqv;%X~kA`R=3t~62H!}1WCqhxs4qFzMmWDuGtqUPc8IW*x z<^jcw%IugxoJreNy)ww2u7VU?a)3vs`K{nuL6u4ECG~H8l1FmZ#L&<DDEJ_#CGM40 zm$qh@q2<?%95h3`j=PE!h_fRK2#vEW<5phKQ8N7yne#-3ylUtQ!4d0c?BT&ou{Ev9 zOqBnpy(hI}kC*X}!Yc~N`{6XBo7A)!@rv<<r@#covYzi!H{;R6?U91&rVg~m?>IcT z6qXX{fmb&P@FV^>J8Lq~Zr^2ubrHDcQVY$3Jc}WC5d`lL;hm$55xZkt3?z<wva8S2 zMi~g+ITo|Za%0|M6oMiMfBiCG^};^o{nMDjM6iToIZK*{moCt=Ouhi@G;6H#qdpD- zCBh;m8J1^20^UOto|kx@ZtgfXx7;mZ?)YV_@)0-v=_xedZwpQj*F^eBbv4>;Hf;5r z62ZGLc2`_aipObel8gB&<Z;e#Yd-B~zY9#pDA&QMXpwRu>6K_I$0N^istXA|5bF8k zSiIODd%%uU&Or0bfHw{hp{Raefqe|;kkE(4cq$`Zz>C;CgdJ<8nn!qyGo$zHpPr$` zi$cen_sikia;hx|lYvu6ZDFtuyc;2}Pq#!hmie2Y5qu^QaDj6WX+S)^yD5j^_2Y$| z8o5Mjks15FjkAp?CQwSNQP)mFZ-qLHMFz8Isc1@fgXP0+^3M$<sPmck+cfcqh>I9^ zSXW<_cj1-tGu~o{`QLIN^qyrQchW#dMXw)AVsC<ejYT3*M9wsV9zWQI56ffT{EBc0 zm(maDV8ee}%zF3^Ar4J&+4wBaO&AP?7g!)fe9D?)`Pz`#q%rmz0ydp^Ii!rk2lvWZ z%PHx}ETWLIZU0^(Nw5f!0utR)QQC{bmHgOsc^U$bO&SsV{q<>-Xp%=;?|ezDJLU0< zVKTl8<K>maDCPg$e1l7&Cat3;T_u@z!F6NYG&h`5AbQmAEznV-f#9Xg@I{*83sqtN zBZ4kw@!KOD<SVS>k!=njQ^cWeYNYU5A9Km3M44}lg!e(A*Qc~+KR%`b)UZ0%y1`kL zf)8bWKjE-IJu?(#?biG8z3abIe#Ir%H^Oyr<TnPj%clG!jYv211>OaYIXUlMV|nE= z=hEX{LJ}wfu>HiLK6Lb_uiYgtE#$_UNnEcSx9=%@|1n0uq%{}B{<TWJ$RCL$maTxl zGRhqv^E*1&-jjKsaNQu9<dVeXn4-KZ0>30MEU5xp5&zVvMFiuZsxszYFyuOCLtc{3 zHq2!vF_3x<c5DF&oE}^i^b@dL*UWxG-*f4L{8;5nm@nI$b!%}+@V{Y?#53|wnDsf2 z8Rf=wS)c52Crg~63bzUV4VM(FyP?jN15EDtt7SWGxdyB|AL)Vv>4J%EM=s4+We6O_ z3+w1~&~in*i^{V&fL2NuOflqE|7${u(n3ggjP9I2MC{>R7;>dYw&dqwilrGc@+{Ef zl+(7k!$>k=_%dT}XwGtbd11|fSHTJ+8vDoXs7il?>+{2c=EeTCOjaw6wR{gTuzshP zV+m2VBzMO&O?YZ}|MY|A-+6yqqmeG~L5Md`-uxu3F`R(lCU7&l(fwk)(TUj0xt6iG zpW+(_a;&lf?1X`dGc2Q@!E%j(2~UnoUZiw>4HyMBC+!5T`wqI48RU;hq$KTyCB#IH zkQ{sSEs~bu)Zpw#8O%570{62rw%3)&L`qTwMbE@gV4oU_WGQwY?*Aw*{Tcp=M;6OF z`56(H!}7~YaOfCF+7cP46r6R~%TEzZZBqzp1f481${(iNy?;FEjRkCM@YzRfPZY1i zj-%n*XJ{kh>!;hHI1hUWeRqt@=)R;^lxI=Op~K?q-OvO-1ri~pe;jN~`K)Xj*>iUJ zL?P2fy9IhRtI#u^8Pur)ox`AbBst!KD)=R2Q^pDdO~D6+R-xMPHn?R*Kap_TyOTSq z=q*pC<1NWBihrN~`%edd&Z{BxLN<p%#m3VoR+w5SX@|p}z5Ld-twb9>_5aTF_cO0& zy41YHOP?pg!net{LbN59G8qE@If;DfWzT5G!OWvua)I2rY3b#6(T-R-L5i~fx`y{x zQYv!U&x?J2BA=4zIcsr8Sz}Ubc#pRxw~_yO;{80{)#>%iEkyXWfmgkrpO%Lx>G+S5 zpc#=8BA@{PEOHB1AE!x#3YYGt_=uO5AA6Z~_*QT>CYATA@ZPOLHYH%;!EXM2bC!1W z(6xRYiTL2j*2<5aeUx-k*2A#`h97Ff{x=ks<v_NaqSo&T-<pl2<OyRvClx$|Nf*t) zOfP<<-ljihx><)-EdL`g{y_Qoz4@q<2G4Vm&X*C&8{7mDi3DE+qQ<*X-q4p2el_XU zR0i>if<iLm(H^G>PrwImi2N-it`X^q_!!x5Z2<J$lRJ^wO8q)GeRUb#NbT{}nf_VP z3dhY|5V;?u=QtBta+u)^$6b8cibESJ1$wo>EJKH~U1SA@YZNhi-|Ed-u<fh!+yv)0 zml+Y9(e|~Q1-0OL8S0s;CS61S{@U8g=G6%pLa50^miR}z{O%3ACfYjEG40v#an4f5 ztzQjH`E3`8h=?ZgF_*hJLSG{+lepgS@DC?<bdVf8FlwJ)Jy<TAaT-MZY4Cd`DsI>1 z&WqXxCu)(*(>e8AEV$0jn(5*pH7Usry>xx@KV1{hkmw)-Ekx6+jGNvc8TV<rEN8cM z{CVvABY(;nzjNR-qBG4a*&10Kb_k2hOD6S@?OdGP;j_}te6NB0jxpkGP~1BME$@x} znaX0FhWM{vzsAP86;5?y57uABR1vEZs>=z{adJA&E}?+N$Y$a;blbu5Zo4tXXhHbd zz1=71<}=2lVuvz%#*-$qH@#drOSvb6tZy8UyKe7RJ`33C8kj1)NYneK1o7^i;R&Ec zteK9XQvej+H|6i3{{H!rtJ(W=Sd5Tv>{kVw9>d&_;lvOq&|Hc28^|>YH_vQ$5!XsB zR&{hS63o%}s;<xCi&KQB7?H4kah-9Q=o_)6%(sg;$vVf{{T^<oJf@U~i%H~cwf?5- z=o=3@ZUfgZ)J1A7<a@4E`z&9Px!AWK7so9{SQ0`3KXmWT9Zn+|@kG7=`tp^IX@*Qr z-4rQ3-otfpjL1@IXCd|J(Sp;{PCLq$1v)f#cTXwQA6u1G_II^cT?D7t{idqvTH6vN z+x}~)bR30AY_0j+EhagFBm9hyyV+%SAQzUB@ox!Jk5VjaSy@hhZ!WAzi^ZjKYQa@I z{$|Qgi6)YvYInE#PI%~j%}iZQuSB)YU&{Wu+1V%Nt^cG%t46*)@1&21_tC4B-0_aJ z+LYEhJ^B>`Rfj)7q!v?>+z%JNcnR3LO&whgp9Ew@9$N-$uMa-5602P`q-n&O>|JK< z(2xBAyR;;9VA_!rb)<+<+kK>j&rd+1v5{GAZ^->EhSzid=xo%reMmjiG}c1JTK(5$ zWw9PmlO6rrrr_JG?KCt1v<P6TWNZ6d1lW4341D?>QV@k3gi^kftu1-If)kgJLS;w3 zKQ1Osz&@mp^fB@|f=Id@L5zYHT0E-03G~|3dLCcRoG8?r_J+~vCXJ+9oFAXZuvFL_ z)9sPnjWJeU?HweoBU-Xg1>Sp}{2?m&R?e$RlZ<p*>V9pS6DqFLtf&qX=EjZXe0^ma zLt%<{zdt`RVn9Ry10*GD-I1VQ^h$Lzl$-)6`HpY0R%&B#he~dLfMnW1Huh#azhJ66 zo9X>Mg5Cbx^P+S4-8@~&l5Y<d3}eB4$VVD$%jI*GuJ7x@F^Y5rh(1d$zVz{!u-fHj z#k#s4aTD5JB|f#hyZRa=^GY1$?BV<5<fQ)=P-@7hy)mhm%|IHeeub6jozPXIAorzt zaa{^DCc7KwbC+a!St_F0d%Q<6iXJ?D;dK^kO@zOUv?Kd)_Noxl*f~jb=k#&?jmLL( z{x~fLaVTFJ;w(uY{!siCqZ6)SRWu<%cWtDdiiJ{e>QD;s#`2IZyV<6^LBuD*(}`>4 zr@1KQ=ef~Q!@_>O>iQiDISS2zCSmW9XD#tOX&|a68nImL@urcRsE{JmaUS0}dOg&d z9NLW8{b^}lW&a}B*l#Q$NCHfwi`02HXOC>Y>Yd%}%@iI>v&ZZ}<e<m2nc|xLHJAKF zqAbiAmRAC+n`7kML4;PrpWa?-0Re&4X~0ax1omZWg=#gZ$C_j@3H(*Nuk71wqn-HY z@wQ09ZiGqu@R%1S?=CH3k>2Eaq-xG{9BG)+wWC3_EP4N#12BbAb`Ecqd1XVBFHvz* zOyv$*=>b%c5@VQ@lJ!ko3&EI38G$<_@Y`}Kul{}oEh<mpwXcB2nyGc5d2QVYN!l#Z z`&~;Mdb%1{M<86!&S{8JZkl~<`R0${Q_N}=_3-ijx>5>L6k42GNBkI3|AI~XOGi$? zt6Bi)CM^Z*N+Qzu2#)|m-II#dP|cLGn#S$EBxR7d3aK$$9fM|{)e&)WPt9$7b^x7~ z+DMNkUC{9=C@5H&uXD^=1GO<=P1fu?E*>#zxx9Ut9|nBJi<F{mR$7xW()qT~$VH|% zR+uLuhJAgLKrZbdi!o6NbLC3aWp?_;^Vg@^_$3pas|t2Yk7UBk+W4^Vvu_&nLh_i1 zOc)+a_5H3OPGC>)UAgCkf_RgtuqH6T^5nhL-Cvd20(S6XR!^_DcX!*4BA1>6rVLRO zNF_is7Eq9|H@^x%30~%UvKoBa?MZ@M-{|`6H%px94(3}(!S7SUpr8w?d*et-`Gw=p z-G--}3;EJO4wq>3RmR>a#r#5Q{pJ_JYgXMP%x)b)XZx_Nxu&e-flMu<rH`zU<Rm#O z{*1OsC%-XouJ5P_y}2ITJzlxQ&JA-lEv=mf=?E^YhHOtIGJpmaptawTsYpkqrIA~H z?H!_A`uGKO8gRF;u&|yTI6)#~gre?Q2@rE<;uT9uU;EtgG+9X*^Zl09H~#ec1EzQ| ze_r0O*j{D^e44IpU&=g=y6-o?DA}q20xmYD(~tN(>4Ha_$Yu+T(*_0x@vDI<=$I)@ zkY0isSznqduhgT<m9wvN`738)w`Cc?OI=bHJRc&M7Fz~e0|V5&ooB?mgER73+|{G( z48BC?a*)Mb@uhC_gHj)GmhZ?aXRJZ*HwvUJK#D&rfB6S+H|6R~StNjI4P&VE`lGP* zVO>t7FYju*OZF+7mEww6eeYUo$3(Xgv~UQ3tLz4^?D!{so$Ir{D;(%Mp`gT8<t)gm zV#yG;MCp>`A&$EaG~p@y%e3FHyP^sa)-&?cDQ_C@wR(Mk%UKcLD>$4B;Wk;%(hO>L zeqPqpFC95H<fC^6jOe-9D}`^2;&?4dy2O9GF{u;!@HuhqK+D_M%nV2cLh>wdZ;gzN zjen%1^g*F8nU{9&_FQ%t?*fao%yYTs+S+6T^eW$BaMAx!RNd6HARb<-WOp1>QkDSh z0e{}>Au*luI1ng325a3O>qDkEnti(DB2{uqr%5z3fmwh9utdkZ4C-J!ZQtYEcC<LF zJ9~&?hX`vH(5sa5SZ9gVQ0ndvA4Nd)EOTDAj#9&H-QL|T?{`Sz-Y*vixj@v$iI{{8 z%heU7ahp?>Ei4#d0QJMo#M&4$XBfgfW;&9Rd1sJR-lS^hT<=lPZcn@1xZO!)_TvnQ zN05aYd*24)U%0qmLpbqL*3b3K<{QTgAh&17g(swoPO%nBim3&^2B*YrwF=?{7_D&) zV27vIa;#Lbqo-J99{4XAySu3a*OMpMSGO3u!_Abp*4O>tRKe~$3j_oNz&s};RMFNZ zJ54>->;$?pLkh^Ba>ZzFZ_>f?$e@W?L&iM}wM$IB#h;$7{flk6Pe4pHzT`?&2T4z4 zXSL>2Q?1vrzTDq9lMKNl1E2inihbl=4r&6_)Ci7&VJ@#O9%xF!oLmXZtsSIC-hJ>L zJ|Q7sw1MUh{tQ~CxmI)O*0dO0l}Es$P2@OOZ^+1->Rms3X5UxN$WeUaBa;6qN65OQ zpk9h4nNI`M-2F-^1RB@JHyF)cy`2y8tRN9o$7|N*%u85QH+OUeORnAg>H^<OmfjNC zTN$gb-0y`YPyyyHrjBQIOFJV2yp?&d5z}Jgc6U4`Los;1bMRP%R?=t^u;5fFuck%- z8VH~%wS3}gU#AUH9|uQR%36IxgSZz3*sVana<;xUp^sR)yT=^+BegrD0(a;fVd879 zH3=i48Qq0qjC+KG`^?($yo81kA&U->xq_3m)5F@dzLn}&bvMcIc6;4Urvze!xgQxv zY0jtiCEwx@W9+`3SlJiPb^D|{8!6pT2c-~d&^7KY0#gpcrbN=8sW2(luH(3<y7Sic zzBc(+k^+Pe@0@}q8@QI&LW9ngR3Un%TL+9r;(ykHTHM@XN##ZOojdi8{zPo!B;12q z3oqVU;mFa;yIztT1lk#%_fpl_)%KPi?)eq{GteEU(dp?wK!{Vb;7rP>R*WLF`MHkI z^NP*L$S5mUY;{7cZNdKLT4IgpK-~MVVW3q@E$s6Atbyy{<d~kfn=5`(6NH80M9pAO zr5U!ZA_jhFy0~x#Vv2&25=?R+)Y$~Rkz)1oukS+%<ZAnuetXmk?`~zyp8VinJlHTx zSh!n3Lrx(e<`oC1g6dVjtUidVD>G`W(mOGGhegSC8?>g3ElWe7eGig=p{pz3A)NmT z;9h~$17rgrAHn7PJ-HV|Sn9?%zOgY|wlr>8N38b#eMG>436Jx~u*=pb&HF1R4gJ*J z^OFsuC>du@OBp1q=>AkJXH(W8-lYzw-&#u~=QqD3BFF(y$s2bN!t?f#Te|cx@r%1G zam*Y}Ndm+)t|qA^M|Mj7jSh*PzzRkQCO7d@Iwmkrj|P>YY@(9>Z_I1A>WTKmPkI-( zs&?!7YhOCux9svT4<QvQ7Q;tRc9(8*{)D8ZE}<7!D=qSSj;z^UWh~#wO*jR}#*3Hq zPX8`&9u7N~_%zVO<nr5twm@KD;Ge<4JkZGj{dw!^_13L(_d3w<A!OAxc5;fHpVxkB zmr|nZ@d--b{>X^7Mz<?*F020|9Unr~4iHsRig0@UucHv9B&(INxr&~ibZvb=lN&$D zKAswoJj)rrk8_H8mvMkiex6CPyC)VBzo^9OpI8BMi3qvF%30T=JrTtVIo><Z6Z|Ch zK2yrQi<Oi1N1>fng&6-X>_L(sL}+tSdLq>P@ccx!C?y`2(z(b`E-KEWhzyr}QzysU zdtr0MIs+RxwWnXeC)V=H60Qp#g88?sLs{xd`dOZSv^&qXM-0lLrGLKAm+CZ-poIeA zK?>UU7l1hax9bfW8Nomk1%B*8>@}zStCDO3)>A1vz>L~k!N8L+t^Uz?gA#j(J9bIu z)PAY=DyM99rYT<vv2FDLiVcH&yaCpSf*yXdWYz|G;h*?1+3v=$je06;nz+`YWqv1A zedy251Xw{Q7dc{|J+jzZJ1NJsJ`Ty&&E4Ih=H2@Ui5#_kSD?*))OHGrZ#}-^j?ljR zTs+tJjhlG>qs7+o7uF?yZi4dGksov2*TR$uNc)27c>HKPw`M|(WCZHKEqme6ClCn= zPfM7FYTos?06~v}?O-OKibGuyy6^7pE^5GgKCs{~U${a21C&J$I9~Ey@DmZ>`&#Ri zRptq-<{7@ORu<OF&WJ-fb0Flg0`#~YXbK?v9_0kRSET2n_KuX&DZnwDqz^7+Sby`} zr-d`74O-UkkzjE*;8z|zOwXY{525ZBJ4)2WbGTh0br4(APra}ICf#o8uD5^r-v2#c z3z9;rV-_r^%J5xy8@C{?zZfI5<=4+;Z05;MgQ~xhUzn2}ogfm3oat9?TiJfx((3u$ zI>h1uwzGEeW7!h5C+%zx3JW<07gq=V*(LkT_lBNg)Vsk?fv?J{^hIAVEk;lfNUV7q zJ-xmY%x`N`9`}i*I)LD4PQw&40C8Jj`hcnOuXe-3Rnco}+@gM@g-<5=byI}(4nbl@ zUPz>EruLV0&n`n3HQ2r9K$&a=Y6p^c`y7Nrb`W=JxSZERZF;r?KTiT90qQYSD?PtC zZyNgM5r_Of2oXm!U9i!aor~+aCf)1WbfEkKdabawwzlERw>&A~^YinHZml0Mk1BzQ zagzM%oFLe3k%5d2g|mmxidk*nW?HA9opX22QNEnU#{Hsh^$RlQ48#Y>K)+uWdAO7g z14GdF^#1~&+=%#ska!w^ly^~x^|zb9rh2&TcJj?tq^Zj`Sq)|L$oA^}7h-FM@@(G< zYjpj)5SLE@%-Kh4o=Y7f#H4kC`r3mx0cyM7OUN1zH}VOEP<i8et2+bVb3vy1Msg%+ zBxHclLHB<5)7Z>R52#b>fHp;Z2^pV&;Hit;&LP=EqW6Y`U-LBpZnH&%$IAH$8G6pA z2Mvy5OUM(?HLu6xnR2MxHG<K?0&m{fsSi+(D0fjT<E=dLWr=Ia9$vTy*Q_o#wJu2# z2KtI}M~Pj2r6;6^q2#){<<q@|ZPT04`k-BFes@<9G!R;hQOi9@;_s_`JWI<%Q5fDR zg6Oi7Qn)Qdo2}<zmK0t>%cEPnxv`ZXghAA3Ymf(C4TAxiUx4D3R8-nmJ3~)g1p{xj z5f;2I7o;Hf4FfE*L3fRnuf7Qo%-OqhN#On7^}0Pw{b>?7LWGUMTul6Wx|KYV)YT5C zKGs%{0kNLAc9WAF94O?T@xE;ARy2WiGjJ|J|Fxu(d8`Sea6Q#GP;s?85ZZ`)7oIYY z6KL)@-!KgRF3TO4u4=stw@#6Et>k5#p;*a0B0rgxCM7v;uPpDYbiueKK6$x_+?1am z^kgLugfRyQ*e==KGICjQ4GFt3bd@&WrvpawnTQCEpxOi3pznAn*-BN@`tLqY;_t29 zwo6K5di++*c>mivg=0R5YW`q@$CE^G>2Sk{l(S50Sw`}_Og-9YB}R)w?%?c`j{e5G zq4An<t#rH6)2qv=MnUgES5|DyTE1movTJ;nX)~ZKRJysj@x9^>0WZ3;oTa+TDYGq_ zov=!#WtrBya)(@s<g+H(R!E_BwXfPFqK95`jZfX90Byii<BT8jLi{8_ixUL1Z*%#V zW?YNG);xub)rM8uT98E_tyLkGuex>9U5vdpVXjqxmjGuAc(>?4Ea+bRtjaSY7Z!PM z#!!kkDK;u$*S~{>Q_$~w;Ay6Pz)?PR`GFif(!-YRW%R_mulI!5lg9R?L*0>s-ACJx z#xGv3Vs?k83$Q1d{(|0xB^G7?FL4|Pl!0`*xDr_T#b-v!;xXiQuFD%kxV6RCq@b!b z7aha&dbZH%O({-swW)I=(uw89)$G}iKa1|6Q5w)>L-BC_ZhxDBhC4uwCvKW=QRsRY zR68b3tzSKDzImf@;=5tx26gV7tTeQaDBcP*-QDzFS%GK=donel3Htq@%lRb52XbG! z{TAPo*$>pDgfo02Ya4Zp6o=~8Iio4Hl)00cb_~+Las-B3ZSshF(Hntq=dfqn^q2iV z@YD_KJt!TzcQ!WUS^G}UmE^5LOB%g$)66u_Qx-_!4IFHyhg^~ueq%%|F+Mv;Ti6=C z+I0|ODnw_x+i^!m-$yG#^d4DVAr0RYThl4xFeg8z1qzjy?S-yG$zh2OIpMsXTx3&Q z_Rme}Z*(+e)m1k%=zFRi%lZg+J?)5(*Ur0_7#s5P0?W(U2Qx%6%1qgDu_yVq$xlyn zPD}l{Ls3Uz9)SYo99knqL2&L@R>m_v)k$9e>ZxA;sH30T&HsRU_18CJh@5O~jg+$% z(o0b;cCeEo-0a*Iz__bcUID!_UD_HIsD)r$YiQ`N0Mivq>$EGH?BgaSal`5i;xYc4 zn<GDuM`U89bi?9pf^@67#s9qTlv$hPSQ0_$OfVGWFmlF&JITsL$jZf@hi8YDK0A0( z13+4$!FC`#<-HS5T4h4_sic{+r+6~Iz$H4o#vK4tRAv5_xheo(#{&XAjgYiTT!X^{ zYifU(<%_@5DWQGHdO|DNM#hZ<V4LkgXsID(dPYP}K)ICoR(||XcFo5*w>6uKVZm@b zp^%v6YC%Ry-Hd>Rb#kdCcGeh7hl{{py_Lr^2T7jB;z*(Ga2wbOb4G!Ki{;Y<<uOYE zzj{1dX?xmJGQi6@3`|U6C;`RA#lu4@OUQ@`;x(EjStPPoqW-<wUd9@(^v}&S#6*I8 zD4%O%30YFwKW+NulP+Nw=p=?<GP>2vOi$WHTY@rN@yy|#Vr>ox@_`w#I>J}B%Xn2t zp7}F2L<E4?#;weUwdFHvr(R?m2MeeZ!68|){y)u}`9GB3`^RUo?_-_p1|dSolJ%2` zRFrp%Y-6&AnIUTkQ;j7gM3OBPDoe7jGxlU_!PpIwBxA|GG@sM^m(M@&{oy-5p2s~i z*M07D?sJ`UJzuW?=Jfek0$4FG`t+YWg&xKec?aDx?T+3#AD2d+$V6mX;|2#`Mg^DL zx?k<p^hxS=cFU15AfUOh7aF&*wFUbN3x07pykqF^?<FAe3?6TG?OOuFnb`lc24*}C zzz>j7OnMLp&KM4H8}Jv|UIz(bCCw(Eno8kw<_Vj&i<wy+j)zBBZSHy2&&2<zVEb69 z^d|)O?Exaf(up*D;W|^($zxifslS%5fY}T(PQ`BR=9BZM1arqyI==J&E?KPO=`if! z&n0V7TfLPx{q0^%B>~n30=VCd%2a(xu)cwLXgZHm`|7k*C^Grny(ms})9YX(U-F=3 zU0Unh8=epFoGB2hKL~Xi=ER2K+4C$?=+iPK{TrlxqY1fOjMPcAa%$&V$-D5(dApPA zWB#ee;~ammb=l)RIK&;{?#3#+6}8)WW0K|3R}JJxg^iky$8U1V64q<x?RR^tRq&d6 z3#bXP^wI9%qWj8i&9_O}1~Icj)}{f<$BupI>vIFiw`mN|=gCQ&SB>GPXV2>yPGP}P z_E)nP{0<HqaL->I$8rk3jxsaR4nlf<x-{pb^Jw(5^*w!BJ`dLQ%dh_Riws|Zx!Dh% zt|!_dovJq^eTU-USGnA8Xq(x4WkH3zNk{CTM9E6q-Aq>fWWMJcx!<MN@sC|-SZ;sa zb_B*Eb?a7W|90@%m4zJt2%w)4Hww=Htls+ix}vITLF0(6|2GHoSP|Y}ejoZP<=$QU z`aPAF?-*@y`ZtFdP5P_Goy;6Z%_#oueH4wCp4Lf*GI$Ou#sjO3Ra&i7j_1jxI7i!= zye>Cv_vW4qkGN^VTO@vuxt}+~>E>2D#GBq|q|%5bj;V!>guQtdR_M02T71G4Z9Uwf zoE|63bnX0;`GRs5P0tEfJHN8^#EUi%eO6p3b1k9g=gLssI9KC)Hg0NSkUH2gKB)W5 zU$QB(r@LV(r7(FySQu&CxyXH0`{Z1`hwys#CB=3dr#l@$_z3u7-Z0A*u;(eT%Kmt~ zW<p~lbINJc_lE=TbmjOv>PE93^_{1e@O+H}xgdC6EcXvbk+04Q#0dTnx&n=)us<Ls zBZII-_9bUUm6UqfyqT&U)cDxcT{;uq{yy7r+8vVK`@y+8VTP5{Od3AI6V7$OyGs2N zGnz&S7o{w63n3hD#GV}!t#$A4bn{4xuo!eLROUih*e5qGnhR)jTQ$8zqvcdMxDW{T zc$g^~-I`C~LnOabRR2F~w)4A){&MY9S&j%hb9C&>MEM3ICtl>XxqXH6@LtQfB0Acm zxC%p+M)3#ZuN$!5hj6+=$l~InGc0Cu0C(3nY~xFQtRt<m7nKWBo?OZGXIQr8Q9zrv zqRO?Q;*6>a_m1Lh$}vIF7a;cJ$0tEEwK!vQ|4*bp*(vd~tPi+53yXWLvvHY16;q;( ziTh&$idz4>Q91d#rre0QuVOzpL2Qgg8g7D$@yL+8eCzn%fQ!XQ(XGxKT0Excf2L>) zN9aAK(WK5BTo;MS&Y9=Vn~%wHUWbHBWw3mM%@O@fcpk0bb#hkB+T9zRYReLn96M}m zX<(JoCo0poW%7m&n}vS(G7dF9@o2#!Ssn^A-!t?pviv8Cg?{GmFXH)-%oH*t2`(UT z?UJ)2(-iE_3q_>QT0L?tx1}jB|EVaNi0F|Jy9^P8rV>wQ>AVily7=B@qOac1=y>() zLAev8A8t8pci3W%jisnljG<}m3m+*-s&M<L<ufgLMu_fr`A>Du5fRJ%2}&$@W_Q?E zKfE70UqF{L3u<NWO@3%WyotSpb%kH098O)Ct7EVXgCH|4t;}#Q)vdAU_iz^tVjV?% zTY1={oKtruLZW7Pt22b5<Yt0(h3H2~h1w*lg+q#!I9T=@RnaN&u(?ocO9DPY33|>K zCX0DbyiKS2xm;+fsy2GqbzX?^pcR(ozbd$zLM5HOWzl7Vv_RV+J2Mt_4RPO7cgn?O zXh`2dyD;sRt}VlDj=5_z*(^zGn4!sSYxR(^rPJt?(W0qeiF0_GOkO}GSxOeVJ;Hm$ zg|6M1ksKkzZJ5~VoTrlIk3w0q?Q^stHKB@d;f|{O&-zT_mBX0zdOl;%W5*?U!ymw0 z-bvEJ&a}|x5jBFzGNeEfHsR?5f3*?94XBl+ae%kr^@LVuMO)nkGc-!e8C&b<CNgI* zvGtZ8TW;@N-_WxJ3%{^nCdZ+}#kGAoOwTIVmi!F<c<CIR^nEn|kIq;3!PX9_(B<`7 z^QXmWn3}DCw1q&ZQGvfKKS>7OwtV|aG?`$^UC5+(es1crbz+Hy-zgoGHImLTr+Tm( zrSA}bc6xtkSC){H(>qeW7(TDWU$q2llXzV7>7Jc4?)i9nKx*<2ICxq*A`(UhCmF8` z*Ddj-gtA}1(v+J^Eai@H1(M1k87V(b&tf^O?7vu+Dwy~6YRyST8W6tZ7+waVFe!7& zlX$&Qe?0o1_LGrA^odKq4d2L1es92~FtG~?vveB&?!DhSeTe^(!OW>8iIyWdaB~F@ zkMcWfO?KVmHPYQDvPx#8rl!u#KQn_U`i&oDf2<dbAGRd#_PvaIrfu0<yZinA^ii?s zP>VS94Xkdjd~`*BdRm&$%4EZKIbeUKrv17kQk|=&+1e`|Ehxq{jtMt@rO4}%RvI<+ zRu+s0G)G4<#-^)#J17er7TX@scm{Chyp+_7MtbCe0(UnzxA}af%LO5u?&%j?Eb`|Y zVpxwVbbY&a<=e%v3XfY`huhx$p2>1TQE$ISwl7;&)z*fz0$p9?MhmM{v0b&#=rqtT zB_7$WarSyxz`cgSetew3uGSoKx#gh*$u@Xuv7_W;xup1IIk$~S(WbPKvd6*M!1GAx zs*R1>bh%5HDX?l9NC=T4MEPWCKj3xk%QY^bZBi8yfkcU&c=s+EgHTdO=YL{!ozlF) z%EbgrGFU%r;pjN|6TttBLmW8RynL4@`<-^EPa~E2zC53_$Kn^i)TuDSE&4!2y0^xV z+JD+tV4WE-=^6M0(D!HnF;Wk}Xvv|V7#6HR+wBafDVdc$s-yF$CTMx5u`t)_VV;16 z3p9`I!`hoDASAI0-yE`8nXd2{FrETtR286jHn(Z5$y!)4YucF$KSaAmLDWZ=P!J%I zaQ`)4vr<mQgy9xJou#m2QN7vIJB!q)iq-M~e1FNCpSPAe6H72u6iP=J!qKFf?<CE~ zX0Z3;g?v?2)mx{K8PYo7Xgl__NrW*`a~wv5Fa1(%X;YYfvt#{6_&y<W9N*B;X0Lo5 zZ6E+S8tT}N1-c6tYKi@JFyOo2g5>2KCkKafU{7x_&eGhl>tSGx!CHIGlZdtW^Uu@M zL3akquU<zfDMTd|w&fUx1<h<Nk4wENE&XEwWK1fddb`yni_(J=6Tyq49%|Law*Jox zpFi)q$6s%#TX6Ox8)U9gb=EB5go^EZ*Wnnch}xfhI@1R+;E|sBO&g=)5|fR}IFY@W zI_L4o!=+(@RK!j=wfRmqhAN9nW{1Q{21)=txi<lT#Qo#sNX8q0K_5!DPRgCJe=#@{ z2(_{8Nz2Ua=j?fsOBk;%=?e<HeVB!MeTpe|$MQ>J`Y}bt4^4o~7dSa`5j7aL?s^e) z=ac#*$<5i}ufAhVswQ$z-DW4Kn}_#(pI=g}1a4CU)%eLh3w7kd(bmZyl0jJ{RR^{z z-1OAgF1<nG{ss{vm*zS<(YhLl9i&oq%ACl}^uz6GhPS=Fy%u5bPo1NH@l^N&`f`=T zO5@kh*RBqEjgL1qZ)#-)>@Y;)o?XZjTAhD<1d#MNpuhN%3!wd>Pa`A9c%tK?x~|F$ zZ_~4L=VhB_&sSo~IQcBxpHj|*YoBleDza&y2@})CPwW(eL*Va7`kph__PkB^3Eu&+ zzi+Y+OsXM{Xk+i=U|{4DM&8Ys;DD!+u6U~sE>U(m@a-ldTP#`86}Hf%3Zs4NP8HF{ zjRjzVyA}h~)cMPr_x_H&S8ceOvx^h4Xc@2@Iko25IR=XV%JwyQ!&<;CzX0cuPv%03 ztg@;L>isbyG?#z>xN^7}>C&G<3oJ8zeyOOwey`%MD;W)__Cy7IKU55lr89|ld2|20 zKKHg`)LD%ssoLOZCYDZMG)E5qv%6qi`u45<<j_!BQI4_)e}H(|5L8%Qk~*U!JhBpq zKy?=zt6R<Wemg>4LwfXQ)zyL#e~&;u3^D~(aa0#)z)a-{iEwt1o|RBZJH1_Cm3e{@ zkxA**fEHIdiMd!oe$V<n%E`%T25-Q&vc~m~3WZkLd*l#t7bXR8MVPNcnGYl)s#Igo z_TRM(sr%&01-LAz`O6A&j7~NL>j1spd@7ukCuDb#em|ybtJNtgo8p2InH3<baj-CE z|3(QE4&uS&@14$FPT^}EuK;Dk0P_SNd+St^=Vp!aWO3Ur*?|@)BdO0}umryFnsR-A zveLLSgP*3L`!%QVF5hZtRrS=;Y5rHQD+6dr%#>#@37+E2*MykwEq>CslB1Whvur1B zW|&vCx0MHQ#LHAddZHL|O~ZHDW-4z#Z9Od)6kVU9%h7)8&(Siixk~xTK<EG@o_Ocw z)&}y9F3!P0kjv<@AeR?6AsJbZhst{|+q(23XkC(n0_V+(t2~-iTg|N?LKML~@f{;| z?hhTd_1c^sm0;H0hhh)%?qtYd;;VXen=)C*!;z%HL`^R;t4IBMP#$7ObJf~fJ%d9k z2pztd>4CIy(&~g5!-VA<^G9@<8VNC8S+TKb*AFq{bg||CNFP~YP~qTk5``*1=|fQT zUY4gN$x)Hf0u-squ`_77X#B{XVY@J%o!D<|i2@XJd>;zM?_z4yR*RQ)DS&Om<o(JN zH8yo^ggH17$-3;y>X3vJ0#O<V+tLSo{hFMU(fo+G7w_Qk(yg3&&g-#X4Zoi6qabJk zhBRSB9NC(=bI3`<{ZxN|z;BBKEtE{w=O5-L`%k0g{7@VTZ^^%U4X>U~II6<c=9g#G zSGdoISVLbSLa_<m?Z6F;Zc{9B<7ew4G!UkXFR>itxPwAzm<$sA`u>;n6=cSu6?}y~ zY=^$ytlmkEjaBQ=QZF4XKf!E*P(Px`bQHF$`&)Q(zy@@p)FowKL@gwXHM6)X)9s2} tqG9vg^<jJO@7p1cF|q$|J|VvtP&TH4>BOi<L%{VGVsXX_U3waO_rFQ+L8brz diff --git a/Telegram/Resources/art/sprite_200x.png b/Telegram/Resources/art/sprite_200x.png index be3a0b00c91906868a53733b5ea9d56947e77d71..d689e0f4e2d92022493d261e9ab339d8a5375609 100644 GIT binary patch literal 10769 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 literal 48811 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 VO!Xy8_;F%J5sK;xdGZ$i{|kilPSgMZ diff --git a/Telegram/Resources/basic.style b/Telegram/Resources/basic.style index a3cda0de0..cc07382ad 100644 --- a/Telegram/Resources/basic.style +++ b/Telegram/Resources/basic.style @@ -1027,54 +1027,6 @@ btnUnblock: flatButton(btnSend) { downColor: #db6352; } -silentToggle: flatCheckbox { - textColor: black; - bgColor: white; - disColor: black; - - width: 33px; - height: 46px; - duration: 200; - bgFunc: transition(easeOutCirc); - cursor: cursor(pointer); - - font: normalFont; - - imageRect: sprite(354px, 242px, 21px, 21px); - chkImageRect: sprite(354px, 221px, 21px, 21px); - overImageRect: sprite(375px, 242px, 21px, 21px); - chkOverImageRect: sprite(375px, 221px, 21px, 21px); - disImageRect: sprite(354px, 242px, 21px, 21px); - chkDisImageRect: sprite(354px, 221px, 21px, 21px); - - imagePos: point(6px, 12px); -} - -replySkip: 51px; -replyColor: #377aae; -replyHeight: 49px; -replyTop: 8px; -replyBottom: 6px; -replyIconPos: point(13px, 13px); -replyIcon: sprite(343px, 197px, 24px, 24px); -editIcon: sprite(371px, 286px, 24px, 24px); -replyCancel: iconedButton(btnDefIconed) { - icon: sprite(165px, 24px, 14px, 14px); - iconPos: point(17px, 17px); - downIcon: sprite(165px, 24px, 14px, 14px); - downIconPos: point(17px, 18px); - bgColor: white; - overBgColor: white; - width: 49px; - height: 49px; -} -inlineBotCancel: iconedButton(replyCancel) { - height: 46px; - iconPos: point(-1px, 16px); // < 0 means draw in the center of the button - downIconPos: point(-1px, 17px); -} -forwardIcon: sprite(368px, 197px, 24px, 24px); - historyScroll: flatScroll(scrollDef) { barColor: #89a0b47a; bgColor: #89a0b44c; @@ -1179,31 +1131,7 @@ contactsScroll: flatScroll(boxScroll) { deltab: 0px; } -btnAddContact: iconedButton(btnDefIconed) { - icon: sprite(188px, 93px, 18px, 18px); - iconPos: point(8px, 8px); - downIcon: sprite(188px, 93px, 18px, 18px); - downIconPos: point(8px, 9px); - - bgColor: transparent; - overBgColor: transparent; - width: 36px; - height: 36px; -} -btnCancelSearch: iconedButton(btnAddContact) { - icon: sprite(188px, 43px, 18px, 18px); - downIcon: sprite(188px, 43px, 18px, 18px); -} - -simpleClose: iconedButton(btnDefIconed) { - icon: sprite(167px, 130px, 10px, 10px); - iconPos: point(10px, 10px); - downIcon: sprite(167px, 130px, 10px, 10px); - downIconPos: point(10px, 11px); - - width: 30px; - height: 30px; -} +simpleCloseIcon: icon {{ "simple_close", #000000 }}; boxPhotoPadding: margins(28px, 28px, 28px, 18px); boxPhotoCompressedPadding: margins(0px, 2px, 0px, 22px); @@ -1243,7 +1171,7 @@ newGroupLinkFont: font(16px); newGroupPhotoSize: 76px; newGroupPhotoBg: #4eb5f0; newGroupPhotoBgOver: #3fa9e7; -newGroupPhotoIcon: sprite(74px, 104px, 30px, 27px); +newGroupPhotoIcon: icon {{ "new_chat_photo", #ffffff }}; newGroupPhotoIconPosition: point(23px, 25px); newGroupNamePosition: point(27px, 20px); @@ -1449,8 +1377,14 @@ usernameTextStyle: textStyle(defaultTextStyle) { } usernameDefaultFg: #777; -youtubeIcon: sprite(116px, 338px, 72px, 50px); -videoIcon: sprite(0px, 340px, 60px, 60px); +youtubeIcon: icon { + { "media_youtube_play_bg", #e83131c8 }, + { "media_youtube_play", #ffffff, point(24px, 12px) }, +}; +videoIcon: icon { + { "media_video_play_bg", #0000007f }, + { "media_video_play", #ffffff, point(12px, 12px) }, +}; locationSize: size(320px, 240px); boxOptionListPadding: margins(2px, 20px, 2px, 2px); @@ -1501,30 +1435,6 @@ mentionFgOver: #707070; mentionFgActive: #0080c0; mentionFgOverActive: #0077b3; -sessionsScroll: flatScroll(boxScroll) { - round: 2px; - deltax: 5px; - width: 14px; -} -sessionsHeight: 440px; -sessionHeight: 70px; -sessionCurrentPadding: margins(0px, 7px, 0px, 4px); -sessionCurrentHeight: 118px; -sessionPadding: margins(21px, 10px, 21px, 0px); -sessionNameFont: msgNameFont; -sessionActiveFont: msgDateFont; -sessionActiveColor: #aaa; -sessionInfoFont: msgFont; -sessionInfoColor: #888888; -sessionTerminateTop: 30px; -sessionTerminateSkip: 18px; -sessionTerminate: iconedButton(simpleClose) { - iconPos: point(3px, 3px); - downIconPos: point(3px, 4px); - width: 16px; - height: 16px; -} - webPageLeft: 10px; webPageBar: 2px; webPageTitleFont: semiboldFont; @@ -1575,3 +1485,6 @@ infoButton: PeerAvatarButton { // forward declaration for single "title_previous" usage. profileTopBarBackIconFg: #0290d7; profileTopBarBackIcon: icon {{ "title_previous", profileTopBarBackIconFg }}; + +boxCancelIcon: icon {{ "box_cancel", #000000 }}; +historyReplyCancelIcon: icon {{ "box_cancel", #adadad }}; diff --git a/Telegram/Resources/icons/box_search_cancel.png b/Telegram/Resources/icons/box_cancel.png similarity index 100% rename from Telegram/Resources/icons/box_search_cancel.png rename to Telegram/Resources/icons/box_cancel.png diff --git a/Telegram/Resources/icons/box_search_cancel@2x.png b/Telegram/Resources/icons/box_cancel@2x.png similarity index 100% rename from Telegram/Resources/icons/box_search_cancel@2x.png rename to Telegram/Resources/icons/box_cancel@2x.png diff --git a/Telegram/Resources/icons/dialogs_add_contact.png b/Telegram/Resources/icons/dialogs_add_contact.png new file mode 100644 index 0000000000000000000000000000000000000000..0569c8732303693ade3a5a4c946cf16abde251bb GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|XHOT$5R2Zo6Ak$o6nL2U|Nl>) z6XV@}%%Z}0=Om>AJR5=zn3e4lb&cKkVv$FK_2+3qnL7eSEpk<-F8V(2uj@>U`sut6 X77K{~dMWuGXdHv5tDnm{r-UW|cb6&o literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/dialogs_add_contact@2x.png b/Telegram/Resources/icons/dialogs_add_contact@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6fca9095dd81bd93cd18068d16a86c467c18e9e1 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBvOHZJLn2z=UUTGXFyLW0=<?_P z^v6p%zHLfa`fS7Jh7B!FlLZ4Wp7>aP;7yEdz}J|9G`+Lg+ZCHT9FHg@2^e-rxELL? zHTi$*w)3&67xJ9hCjRE#`}F9J*>LGwth)cd#b<9{$jxlV>zvM7`wVC+gQu&X%Q~lo FCIEcWKMMc= literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/dialogs_cancel_search.png b/Telegram/Resources/icons/dialogs_cancel_search.png new file mode 100644 index 0000000000000000000000000000000000000000..211db7e3539f55466275cbc578ca63f407e8f43a GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rhe9#0p?5R2ZmlfC&E6giwv-}xVB zJ8iRp)E^O(jh)g5kNfjD9AvK5SK#h=^6~K8e8vEeY0Ju%`w5?{OE0ip)uUy6J8e-- z+oe4R?JYRBm_#4kl+%7Gq(oHXj7E=^g5rxXp(&=nIZVvWW<L{KvTX7}wg9U~4A&g% w$``$?xV<O8HvZ4Ml=N>?<v)d;|96pp>+0g^CIw8IKzA{Cy85}Sb4q9e0K|(-8~^|S literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/dialogs_cancel_search@2x.png b/Telegram/Resources/icons/dialogs_cancel_search@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f20842fbc65d666aa29f8521a84b8682fe414455 GIT binary patch literal 273 zcmV+s0q*{ZP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ0002kNkl<ZScUCZ zK@P((2&4Ov`TrZ>N!ew+v`b6DTA5T!kt&rq4un7!5gF15ue$|o@d!G@R1g3GKwmJz zJGKMBSOH-7KRbfF^GQrmQQpuQGP6?n0En4|?L)iCdMd$1BVuvT39EDY#6|CNT~7!# z?>vx_fs--B%)DegU6>^1x}d12!tI`#bSSD)YTC6QBL5z;R)@M(+PAtGTa}Jh#kE!Y z(W*gf)xt8xWH>{mLsiAyBc@;B?xLz;`@<dm`k}adK6Y5&VHMA0c&CEyLc8|k5p;$( XJtplI-O0}p00000NkvXXu0mjfJlJ>C literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_edit.png b/Telegram/Resources/icons/history_action_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..27b1e77a918e59bc1a2055bcd57a9799c5372bee GIT binary patch literal 445 zcmV;u0Yd(XP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0004mNkl<ZNQt$U zJ+6X46ot=RU+mn1wXKD{iH*I)V55agU<D?IHJG>nH)125g_VgtrHL_tsOJ^FnFq?x zpy4LB050ddoI3+307Q);b&7ul5P9C}I1Wyy6Fkp*yQYJmrsFt_qKG;?&m#beNV2Y) zsJ?kL8l}WvAs+*>Ixm6bcbZInemou*ij!m*hQ$C8VWZJVrA_A~8OJdvlZib*cW)ye zMbWExF+hvk*b>JvUDvf+MM>X3w51&Ir7iD(r0=%2+-|o#Te1PVXgZx*iR;b_#F=_& zJRT1KK&R6|v)M#m-0yeHW;1Ly8;A&$Qn|IM84QO*_WOMT;BvVv?c6f|57z57&*w9H zy&eH@u~@tf)WY+8z;3rA`P}N=ZkGV)`+lb9l>zN`o0rSQbQ^}Dc@p3EIiJrnH=#Aa zb=}N0u4j@IuLAhdlO7BPX6o1L6^FwC`~4oRR?B>$%2rEO7=Tg=tJMnI?G`~0;CMWm nA`vl5xN0c;`BYcb{#Wq}%RU(QrQn)>00000NkvXXu0mjf$xz9D literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_edit@2x.png b/Telegram/Resources/icons/history_action_edit@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..13571d1b258174f243ca849684d1c46ae530c92d GIT binary patch literal 1011 zcmV<P0}T9$P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm000BJNkl<ZXo2ln zJxlCB6g`>Qr0`eRSP7C82A4$(|AOrzf`3J96dOSsOR==Ew6n3%6=Nl8vn+~XC509m zH{RF03Hi=UHoJMkyAWm#!*I?$=ib~z4FKU62WuL@xbdGr)6ob4##n5%EDM*Hm+1HV z=ytoA`^4|8plM!=F=C97VHgB}Ow**7mlqNd1OausT>?P5u7`UWW5hYnI&-=N0EFNd z78YnQ7*H}sqY<sIuct`loHrfNx~|8-o2HowKB~mV#zu?;W2{*P1o*|pMS6XG%>`dX zqA>!pna?62?9{jdrfJgi^RqN~5z(5EA|R?=_*SgqzVKu6itb6Swry7eFF_(Lb+mN} z?{Ut<OWaGgxvW)WUdHofF>w6p#U51Ud<RoXkh#=H^CT0bSQ)z@vo9NC?YWmZem% zMKK%>snh9{6R2XFByr(+*L7<F@47D8wk=o0|B~mE;H5^1sC{HXPs;P2=Y`;fvQi3E z_58T4G8(SyhMpIAq!p-Q8{4)gVjJaQuIW}e91cV9;^CMxLgW)rv5o3%QwDx{dAX=y z<t&t!=}ETAXyz5b=eN-&TV+APR##wJt+J$G%Lz==^PcC?%F0U2HqnW<_8PElJN5!T zPPnd1?RGoWI21Ckra-&ho=B?{;1z9?Paul~0NUT*uLZp4d9hZReB#%pfH+JLFbsoE zPEN+od~!UfSh(d12+v1f7a3!8e0*F9d{(PWw(Qz#;Qs!e_V)HtMXsuZ=XtcWv{VSb zHU&hs=jP_f_kAKF+TPxd?ctnDlSsD8qA^AB37kzp$hfw)76Y=gvlAmJLn5zL7Llk; zfup0N6riXQ0z@8(tX5ezrqo7&F-Etyx0%4Uwzf)1yuH0CgRe~i05m&0OCKK}xz;FB zqNr6)MF9Y`xw%>BZK8Bd=(<h^2M5vxoA&{&76ONdhouCfc1mVX<#n`n1vux_>-D4v z5E1R}?$XT6Ol*!X>hoovF2^P?KR-`jUtdz-ecz|Y$4BaPI!azof)`&xDuAaJ5@A^u z48us?1_1cJkB5f`IF5s}voko3gQuq__`VNK(+~s!IOhn00IgOFqtPgL75g+z!_UtT z0EG8cB1K?zbv5?)-Q69oudi`+b%pcubM*Ute13k$_UO7^2|VXK1kV`5_xHCFcmUAw z*GD2wPfzjw{*H@_3pkF0UayzR3S$hKrh$kGLHoWB!!S}ACn9K?1^}@$IOobFQUrcm h{QpmV)A8#G`~d}~!uw$HEdT%j002ovPDHLkV1f<j-4*}< literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_forward.png b/Telegram/Resources/icons/history_action_forward.png new file mode 100644 index 0000000000000000000000000000000000000000..b48285c295d39b733e00268b18250ca09c96fab1 GIT binary patch literal 311 zcmV-70m%M|P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0002~Nkl<ZNQvc@ zF^YyT5QXR0Ml8fWy`%})q_Vft0|<6rz*~3>OR@F@cD5eDR<P3|AiS;oVc8YpZUPJY zV45&*KA2%9FCqe2lw-5_KLrFqK#rqtdkhdlP~Z3Dd7ichPa;VY0Khno2*Xgv^D_Vd z%<~M!m^}ahEXxAU`ECB|qI6xS)lbej#c}-UZQC}=vW%u_x}U*sbsPusJil*|37zMO zs;cY(E|q0z4=@Y^eBZYNXxkR9>we!NrIc3Osc9NBdmyF!QoOEfbBiW~co$Ymp(qNo zn|uNGeMg$6=5LV@0_(a$N~!C424IXKiX!d&_bsxezxQQ6)d%EX-|dGOmfQdU002ov JPDHLkV1j1uhDQJZ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_forward@2x.png b/Telegram/Resources/icons/history_action_forward@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3eae397ea13b7130bdd80ea83d58e06e96e1b9e GIT binary patch literal 600 zcmV-e0;m0nP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0006XNkl<ZXo2mR zKa1)>6vfYmR|Kn|g@u^f#`OLn*a_)GLB-N4U}q(^`3Pd=2hh?|Foh7(307KISSTVE zS_Bk@aJSmWzV)GNj2QzSxXqB9oFB~0oyi9Pf{(?q4)Cbn0Ic-}V68X6ZzM?)0)fC& zygdO(rBWCUhX{p2u6uhng%XJb48wpZimv*4x&~sg7);ZIBuTD$dcKGwkqAbk5oB3* z#gEA@BnScqg8>SK!oyz7wo#tv(d+e~s_H{NO#1-GacH;O&@|1thl_a}tJ!R#)9HZY z?vL~5=Rl*;a3$1tWipwY&s3{bgu`JJi$xp`hr9ggd$E>jniLEM>1VDh^;!T#M6=n9 zL{aoF01?q@wW4@D?q2{RqWykPvMl=-fQaaLJW@WN_b&huk!{<gs_K6MKE5daZb|f- ze_3|B9pdpg*6Z~@<1f+3ZfUt(BArfOg#Xe@Poe2_O3`T4pKHJ{3=#yvpSw`M-zT2u z{n-aPoepsv=g&^8Y1%#Kpi2O^i|2W&*XuWf+qO-$TFuEfo(lkg%H{Ia@Tb#>N~Mw` z?~D6@*Rm`Nxm*sqt~+|4DZqBSg`y}JkH?NZm;o#n3uLod%;)ome3%?1CX)%0$>hV~ z0R{lNu0xh(Y&IKL{5%EdcDqm%1(s#G=II$gtJOlKQo;FrcHR5wec%@dGRJjsq4Ar1 maiO`UHvntB0a)t|z*?VlC%C|0+Cjqr0000<MNUMnLSTZTPZ^8= literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_reply.png b/Telegram/Resources/icons/history_action_reply.png new file mode 100644 index 0000000000000000000000000000000000000000..53f921e0f9ef667180bbc84b209d928f106664ec GIT binary patch literal 446 zcmV;v0YUzWP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0004nNkl<ZNQvc@ zudBjP6vw}AWf;UFD9a8FGYA(1QA}%sRj~OFESX=kn5{NN1dB$Ce}P!6qH#ro3j@dZ zg~uMsrp_PZh4+P1F6W%jz2}~DZwvqtp`<92{}X^DNk}9T(Et=h!FW7|uIn!YfS)e% zSu&aAa=9c)mdoWppOEHXR8^Jh^_reO3drSh-0gO})H?tfz?WC6QmKT+Vu4I1b5+A) zv4~o&hC-o$bUF>&wsAZjpSy#4y-wS<8CKivmc3q&nx;K2QM=vd`FswY{8Fy#ayT3^ zl}ZHzTCLVgiGxm*&1U_8cs$P8Z1xeze!mYo2`I}l2ZO;!AoKbBcAIv)-J5}q<M41e z&~coHkVd0%dk##~^aThZu6z_lp%8+dPKTS##^=9Ut?o~9v)R1bsjlmHTd`89a5Ngx zb=}{Xi{T6oG7N*K(<v0dvwS|!$z(#3?DzZk0RSk3pk-O10iIQ>RZgeV#{dA-G>xjN oKK};EG668=QKHh{f0^&<8#_n(9Dd1JU;qFB07*qoM6N<$g2rjhMgRZ+ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/history_action_reply@2x.png b/Telegram/Resources/icons/history_action_reply@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..84fbad64700ed14843b8ed1df88433795deb56f0 GIT binary patch literal 864 zcmV-m1E2hfP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0009gNkl<ZXo2mR zzf0?E7>4hYb0VRlL<=I8cBz662E<8(F5=)KLPg^26c88xfg=_dU8E3DT%3x7gWysq zh|qQt1VM!iDToLbiV*yPqTJu`(T{5BXObq(InWE9B`wc;Uk!bq<oyAF_=^#O4$v%Z zfuLy%1Wj82079V<6h-l(m1CL~2#3SS<#L#uob)1(W113(#bU_k^O%^J@G6gETni|Q zf?~0V;o)H~^Ek$pKq8UA>FFsVk%-rM9OGDEetsU=Y!<RC`;o^njs!GK!@<D;BuVls zk7H~Lq*5v9x(-43vqs0S@4g@i0(N(Iv9z?*iad__3E+354@0344i68Zs_M6mL{UUE z8pYt?AbNUw005R{f%Nxv;|ChN(De59;`sQusXhMr`5Bj&m$<mNK%r1Tp-_Nf7_R#@ zf?q2Zi}CvUntpJ1cSl{<IXyj1Q55Uec2S=%jE;`-_V(77@LwsH%iP@DWGoi*Mj(+$ z@ZsU1CE;s%dwZj<>kNm(?gf&`Bwt=$S{}ZZN~OYNGU;4E(=>j3d;}W4mbJAt`vL<4 z1FTdkL1(Tbole`o10y3Nyt%mvI&&Qx8yoij1JP)dS65d-XRbq4Rr|Y;EX&O2^Fe3+ zgk@Qb$K&?rfFwygIywqE_b0O1tbG9h6a;~LdwW6W{>0qeoPB|6rBW%!3q3wQvQ#S3 zG))?YLDMu@E|;4YD3wZ-B*~co04^^t+nN!ptE-I`AOMP@$ap-?+1XjHudlOMEIOV& znx;7y06<k$`TF|$zs(mH7oAQ}_Vx8~Wo3nDXJ@tq48x!x2+jonaB6CbmSuS=P+MbT zW8B~0|MrKPnVE4X0D$A;<GjDW_eG%gu54{>HGD41WHRmr0B~q%h^A@!CQz;Z{(f$6 zZ`X-DJw36rv(vpmwfXt^xvv7%ibNvRb)E0;@Bgj!WlMF}xT~v+xm?b7fods=!jqE| zlH|_LPV)i)*wN9!OeWJ3fod%*EHIbLc_RS)JGIm4bjt()u)Dk4JArD+vfMI(+G=>L q^0)A3ofEpCEf6$qfuLy%1kFGCtxuAmha+?V0000<MNUMnLSTXlDwy8@ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_video_play.png b/Telegram/Resources/icons/media_video_play.png new file mode 100644 index 0000000000000000000000000000000000000000..1d85bb194fe11b463080690bb1f0e806a1e08851 GIT binary patch literal 419 zcmV;U0bKrxP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ0004MNkl<ZScUDE zF{;8q5QfJPf`kx)h*(&qNFgaiEX6Vh@CcSEQh5uHkRw>+0I5@2*$F9AcmPQu^1tFS z51tQRHZkjN;Rn+!3Hy=E&dd&o2&55)YJq1yLQMz@O{Y_uOeQj2h^U3oVzHp>^-8<l zjx5WP=|m8T^?D8FbUI<VT*5F6p?6zGdm-j{JYqJR=_3RH_xm0D{T`0v=pn@1ZZ~YV zTbQP)hY(W~1;Q|VCBOO=V$w9lcs$le2>8ygBuQY~wjM%ERaJ<hNFO04&vVS@^QQcI zpAY~%9uFK22Y8;RhY(ZOHR3qNa5&UMh$+hwo6Y8DALZkR@B0)4!LKzXUx-_d>$>WH zS(au0HRbmSozG{iRx9<#o==ozS!xR-*PPL4B(#TAA;GFFU#Ml@k|)%$v&#{BVfN`) zsE6sWAE6%S=k7vL6v?<@{D}cuHNg$=a=C~+-Wg$`ccFazc;+M2#20-u$Ri7-+JyiB N002ovPDHLkV1k%Jw|@Wt literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_video_play@2x.png b/Telegram/Resources/icons/media_video_play@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2fffaea0a9a35071f7d6ef5fb3040e38576a41a5 GIT binary patch literal 720 zcmV;>0x$iEP)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!0007)Nkl<Zc%1Fq zA&W9W7{Kx827|$LNsNNQDx!#BP^^9gi^UIMvKx&C5tG?$60M5Gv`L#`#Ud++!uq^H z2JT+(edpBOoo8m}4_j{G?);rM+|4}u0RRZ5f5v2g1JpA>f((!#10=`*2{J%}43Hqt zff!>Di^YI3J?wpX6^`S;U@*`I3B9}+W5_$7&)90UkTK@z*9iFX4~VzfY%rNjstV;l z5N|e{VI&e!4JtSwUbov-2`P9WL`27NuwJjL03`>AXIT~|5(&ysa)Ef0$%HBr4Io6s z%jJTdPKO#49U$KEc*IhvL<Nc-5O2L+<LBq6Y$&=wywPYR6Nx?$;(dK;x7#wH)Bxh` zc00^uGC@MA1;kq{78s32gMd;Kh}ZA;{YFw72=TtH(rh;Uf>Ixd=hL=|K0v(bbc&2I zub}h;;(4^KqAw8Q{oj^at@aL--atIdvM?TxzXBBwAl`U9eikWQK!{IotAr1TXWO=L zTjhf*c@<*}T-WvTQ~KU&wSs&;4*&qS+wI#uJ&r!#ESt@O>$=eE^&ajSpf8on<%f?M zAOJX>PEf5@A)QYDct5m@G@|&g?T9}=6Z*~PbEs4*0Pwgle=T%C+wB$#g#sK7hyTLx zLbC>4uUBX^8jwn*V87r03Wult8Z;aZUw%DW|B5Y_ODGnLPrX}yO1pQEZQGd3<;;fJ z-}!X5uLsZz+Zf>h3ShoSO(4f{-rY*o7bxHvM|FTaKF-kxNb;ODT_B&2l+^|bU?@RN zpa92O)B=()7^Mb~#L+tXK$3?u=>icM@1+MsY(Sh25Ya~rXaEs@NJTD?0*^V#15)Hc zxnEtLPj~26XwJo6%>W59K!OaAAOj@G00}Zcg8l$RAbZ^#X72z10000<MNUMnLSTZ; C+&l*W literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_video_play_bg.png b/Telegram/Resources/icons/media_video_play_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..151473b9b6c46960c3d58b1839484741a0b8d13e GIT binary patch literal 899 zcmV-}1AP36P)<h;3K|Lk000e1NJLTq002Ay002A)1^@s6I{evk0009@Nkl<ZXo2OM zF>AX{7{|XoGB|Vy!6`#<h>L?bSr7v5eF5=B_+ESgjt-K^LAnP5LOUwB#KFl)G=oFH z!2O5*64LgcwzPVe#t%G04imoLd%VkeK6eLzq6g;lIaF1Jq9~AM8ImMnI-NokMcm)t z0|1()L0Oh4iUN6_W4qlVO;f~ij4aFgkcB&RXjs>En5K!vVgbW2Fquq#^gC5mA&Mew zHXE$hYrMR?bR`kMtKlDqAPCg5Eb4h4t?Qb0O<mX2^E_%<78L~HS6ctY&%bP077c=+ zbCZ_{f`D3<#on-C7}RxL+O{n-vq##trLOBz!!Y_cObDU2ZPO%4m>Ydhk|fl&ZAu8~ z$M9@6qmJY7_W1$Fap-I|>(;QQY1H?9-rg?a`##k)tsBF-uG26Kd3*YjFbt`#>%TLs zY1*GKdn63Q?_~P&n7!uP_!7SFe>JB6e>T3x3F^Bzj`P{<{jt%uZQh!HjcwcCGi(^f zRs7HXmLy3oEl%DxxUS1vYiGEw`?+DuvbZc4`=V{z4{L9Ne+Ytr<#LJ9XoOo~G#X*K zTtX0pH|?kF-YVx=K4tjv@sVx!GvvKDs_S|$5AWAPUDu~&CjkJ{G%+5Jd2~J##^W(e z(*ytz09Y&*JoPZ)=<#kopVQ~(=O1sl{S~UJ!o$M@h^neLZx#S1lL=H+1yK}*w-#n7 ziUK0bGH)HskYyP}k|f?bm?23L$aFg8t%DiU=@dj1Mcz7?A&MgI+P0;)^uX{Lhr<En z>&tEn(liZk4a{ho2Ba)Y-a433mL*706ufmXqbLfHJkNRSU`C$jAlvPhw+?1(w_A`j zO?m5JMw+G|aU7$nD&AUpr>ZK%aSW1W8KNlSt*3XQC_<KHuM3aOX2V-g?;Jf609dcr z*zI;)1@*~px5Ik9K7FPDsONdSHy3-u^SqDy(oauM%zK^{@4ZprwZM#J%@r$xAb3;I zcFOR6zsG8|!r^dW+x<OqI2^EAt+3zk-?R_+bt#7ULL5UYdB6~hS}?S-rDF`LFzpzF zDm^^U^flk!ofem#kLhci$a*OsKA*h@Qy_jGgE<25J_d8h<2?S_F`mI4)aummIoEm= Z?>|QPX^jsa8OZ<u002ovPDHLkV1k!;uZ;iz literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_video_play_bg@2x.png b/Telegram/Resources/icons/media_video_play_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..14d50e738e84c291981eeae05e575d6a306f5c8f GIT binary patch literal 2591 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 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_youtube_play.png b/Telegram/Resources/icons/media_youtube_play.png new file mode 100644 index 0000000000000000000000000000000000000000..9cf8ff40eb25f05d1dc92847c49674138511a31d GIT binary patch literal 286 zcmV+(0pb3MP)<h;3K|Lk000e1NJLTq000;O000^Y1^@s6t-qY}0002xNkl<ZNQu>! zF$#k)6o#L15G1pk;1%3Fi3jiyZXQ5z6CAvN$8dJ>5aIy@aS4RKLrEzul+yO6_(32; zcpu~?f8vP<got7m|DOPW7-OWaYtdSNEy3fsXI)nmMFFMM)4DguYk^~$CS+O0699m< z7Q-+gj$@9%vF|&oszMls9D!q57UX%(6FA0kM4F~N0dVb4*L8@Zh$C=p+lI0%5d;B8 z;Aq<xA_7`e_`ZLepJR)xwdnhv(`4E)rCqe+I5<(^!Y)aY--q2i&z!iXJvhb~G))7o k^{0g)BJiAr#reN27i2Z#eE4$&2><{907*qoM6N<$g70*94gdfE literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_youtube_play@2x.png b/Telegram/Resources/icons/media_youtube_play@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9aa7f511753e2cbcd5f9eb3a8cc575c613f641ee GIT binary patch literal 530 zcmV+t0`2{YP)<h;3K|Lk000e1NJLTq001xm001-y1^@s6%#*v30005mNkl<ZXo2mS zudBjP7>197A*gvp1dGkGB4$C%B3Nu@vj(vVViv?=w)qEG7KgAlEXFYe+hk}M9Nrt` z$mMe34)r=;@PU<a2Hz9Do$p6V2mwKimUIA*@)1ay*aEt)3&Sw}GnTtSoab;j;Cwz~ zJRT#L%f<TUMNhng-|>APolXaurX?NxeF6&Gwo$26cm)7JN{QuiiF`iKDWC|$5X0dR z>2#V?K(XKN(QGz(1r(dj2IX>@R{#K_D8g(ugJBq)0*d4Dh+eM;UDr7U6t3%{Ua#{C zDAwyWN~IF70C3HZ$z<}3vLqP+h41_5cDs+1CCLgXw%aYL)he$5a4kz#s}%}`0;hl? z3`2}YBV;leP637Id1$p-yaEc#vS6AfuK;k(kNJH5TUo*(pa_Bh{eJ%zS4vs@1rY1l z%gAQ4;&Qq0j#W(46haWrg-)lF7z_r&ah%&biX4zqVzF3oCNb@A)bl*F+ikv!jJA|e z#ayvij1|*c2{?|!Sx(b7G*J{`I-PR1l(bE~>$+$(8qW&+bpk;Ua1OSpM~jwaaSnHB z$Ls3)r(1APub6DxzW4fny?~VR7C7aawN|TPx7)qlqC56f;$5L@>VNVPNE&*9FLF1? Uizp4#IsgCw07*qoM6N<$f~9xuo&W#< literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_youtube_play_bg.png b/Telegram/Resources/icons/media_youtube_play_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..76e71cfe0832a799ea00c9cd6434a49cc6218326 GIT binary patch literal 812 zcmV+{1JnG8P)<h;3K|Lk000e1NJLTq002k;001%w1^@s6|5Tme0008>Nkl<ZXo2n9 z&1&jE90l;>Fdc?;kTy`-Rr;~%!liZPx(lDjS14Kd0Iqxlap5*^5W8{NO>4W5LKike z8YCu}ySP`mtu}JuwlmoIK|sWh!yz$-%)bIap#)<LjYb1kS64VaJ%tbg)oK+&2sn;| zYPAXgI6ORDy~lAJaLxe$gpk#1{<qiH*VW@BNid(!0RTl&Ac`UYfRqw(93x4R)#Jy< zN8H}tVl)~dP1CL4qc&}>>#9ztqh_<2+EugJOm#XP<+|?14*qQGPqy1_6-ANm{NE;u zBGqoUw->}YSA)SocV2A<gMs3lZ!U;Zs)oa%?u^<EheJgvT`$P@ecjoNadUICDyRZL zU0ht??(Pnh(tkUR?5HfuaCv!&`}=zk0Pua^mh%@%DSY1t08|bR4%Exbi!JDbEX#0o zbOh3BwQM;XP)gBiwLqH9rtU1pYBrl7p6BV#VJy${K!gywa~Mkq0m2y5ox@m+F_5pi z(%uEf$HyRhdwaTb7%R&%`x{h72=V)$wDmb#PzfP~J;cfoLO=+yJ5d?iP6^JrEvO7* z3>BqR>205%&h9~5*n+koMN#O^U^EiPvF;2;vxiuT`Fw5*DwC!uNS0-~a~O>zNuoQ0 zv5KOwhgg|7j%`8P*wcK8IF3OUi-qnS##$^EAW}-*IgBNxw5RzpS(e#7sEm{nWICPd z&S9+SbP6&ak9FrT)_6Qd<?QTCJv=<<&SIqV^K+2NWP%_FbZ0S65CoV^CIA3cuh(@i zEHzHOUVpy~xYz6H&SZ>UueZKV+Ho8ehN13k+J#}L9LL!_ir~8Lk1i<;!%c%N?}s-y z=c?Q7syxqi=lwQ$o~v%RyJ=2i^Ry2DRjbuhzu({KqVhaf{eEB7YPC<tp(@LkK67$% zg6r#RG#U+fp0^sLV~k;ce;>;=j+D~1!MU#-rdyIy;^VC=DJ7QIm}#2g?d=U|nj%RO q#Bq$Lrzea?BLqQ!=jZ3r&;JFUzxyXec%VZ70000<MNUMnLSTYqe1Hf5 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/media_youtube_play_bg@2x.png b/Telegram/Resources/icons/media_youtube_play_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5698c6e6c47a09095409c006619f6a9a5e0ab8 GIT binary patch literal 1731 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 Z{{Xkbo3;j4WHSH&002ovPDHLkV1oJkPPza9 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/new_chat_photo.png b/Telegram/Resources/icons/new_chat_photo.png new file mode 100644 index 0000000000000000000000000000000000000000..3487852470dd88294003875e468f38cf00e38e5e GIT binary patch literal 642 zcmV-|0)737P)<h;3K|Lk000e1NJLTq0015U000{Z1^@s6YyCeF0006>Nkl<ZNQuRk zzpCOu6vj_vjbfpKg5qC@K7-a`WntkXh@{g85kZ_M&<7C$X@ZqPv`mrGC?qN>#Nyjx zuLHaHn#Aj_`@z70oP0lqbI!~V5y5X|vsoC10Y4drflMaj>-Vv|6B3C8R;!gS^seP{ ziFiEz8aNt_LRHnk(7O~xK_n9K21g<hFveip_S1l8bvPWr7=tK^Aja4~2mUF>7zEq4 zkxVA(opKz91ORv|^+P|N{lRe@n$PECnkKofOOhl}v)QC{I{lnc(7ITb1zDC64u?N= zXgC~3x7)>byA53DK;ZRyjZ&%PJDa&&4!W-Y9k69tzd@_jDi~wXG!2@jVKSLOk|h2; zpU=axtk=P^EOXONr-SSD`YGpfxuD%{^SoZK_Zrx?ZC=xAwfZIWuJiefa=FZFzT53Q z!6C24o6qNTyWNP0XfPO1G#Y)F8;ixL-|rI<(d~94MNvGP+7oP=CXZ{inx_#FQN3R0 zv0)hB2fME83wtC%5WWwVB#Fn1#ljb+X&R3!m5O(=R|D*JJKkK9B;j(oJj^|vPAC?O zyt(%Ky=Qazj#IbW<zv!rw{bq7zl640EuJUKvY)L#c)Q&qm&<X}a=DDrXarSNp{go| z!y(@(5us2h_>NK_FaYSfj(k4vdt??01#C8(AeO<vz^|jT*XupJBxG3*w9~tuzK{3& zJt>MphGCE(2vn(5sL^OpDwTT1=KnneLdWCr?NG;YC^VbR-VUBlr$nMCzU_Hy+cw7I cF+@?sPp*R`V<hN+Gynhq07*qoM6N<$f~7<;hyVZp literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/new_chat_photo@2x.png b/Telegram/Resources/icons/new_chat_photo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3410ec20267a3244f367b1c607f69141cb1427 GIT binary patch literal 1268 zcmV<Q1Pl9#P)<h;3K|Lk000e1NJLTq002Ay001@!1^@s6n`inI000ELNkl<ZXo2mT z&r5n)7{=cky_X^oN)dAt*`-y`LfjPLO4>vaNZVWmn${xSggN3m__pXTC<KXuphdK5 z)8dw*`2zxRSt^!Uf#&trJB!9<N^SIe&ef=S;B1cgoaf`!^W!}N03glgbUKlioK7dz zY=1X;W)_Qu8Z08>%gYNcEG&FY;Mv((6h)CLFd|~5Qo)&-nXd&rH8q8$Qi(cjRmEZv zCnqPr2Jra!I2H;8$zZFxySu}&v9Znq>vTHIWHOS&R&{-SjYC62bbuL#LA%|KJkR6f z<73+(q|(#V69$7pTv=H`mSx`qYqeU8L?WHeD4C+sC~CFZS73%=zBO!B7Z(@EFbw`- zwOaqQSS;|}rB<uq_VyOKc%Dat!O-bEZBZ~7gs#WON9^nC>vWd3s8lLJ7b0S(gS1oK zoet1${WxHm)B^~D07pkhaD03Wp->1?sTADb-va=ELZJYiP6v9u9!w?^OixdPTrQV3 zkW}klKA%Uo+l>PQ15I!Hlu9LfJRV8+=8^#W{eD!bRKLC7Rjbt)2n3{vMi*EVMO<85 zq;-r#o6Sc3j7<$#6h)kyo1+F>ZDzBXDm1l8%Vx8|{{DW$*IAYYqtOTkg8?)e4FCY7 z(`n#&9!^e9KoEqw@7vwo1(iw#TU%Rng3|cZ{C<DKC)C^9i|gy_czb)>@cp@54%gP! zu&1Y|p%1O!G%;{KpKmxpjgF4u<>h75UWr5kIgV>Mk<pmFiGkg2cSG1*F4wYOHk-wf zk&(KdUayxlE*WsST&}y$_V)I+^khFO7K?qXQoOCxf*_DYCIdb=IH>z1+-^5fC`3e; z%T?F=@bHkxmk8Kqv(*G*S@zQjs##?+8I;LnHU18VgUFZY@DK`xYWj>uBlP$8lh^{l zYlUKRa<Zv0TM-d(DwV3~qgg$v=aoz*i9CsbtEZlStGcP6A+1*1)R?X4$DN0XfE5Zw zO<y{lCb4{{tE;P~#%x7Iz&f3-rjO@&63hSe;y8}TlL%O^*Vpu&oSeYT%?*hy003k% z88|&XZEDO`L<DRynQHn3L4aSsev#M$0Kmq^28g2A)R--aWDzfy%cxW;Yc>ZxJw2F6 zB!1gB5{V$gFg3m^l?p4B3Q1)0!-L1;sk;T_I1aPfY|DPv*Vi~aJY3h)=kt-qB?m4P z3aD1A>joSd8NpaA*0fh75@`sl(P;4D;ej+Rof1zV5NLRCXIU0qF4w0Q=jn7BS65f- zevPYbZ*PxARHSy*vb41HX&FW?m&3%w1Q-m4w;j~g)fMnO52vT6btkB*91aI;Zf??u zNvFhv_*%p>o6XdVc=Pk~`274#D<=Iit<`F!2J3J*sKO#jREQ4*0u3j!W|~H$q4t~o zD9Nr`3WWlCz23U(bfczHsnF;1QJIY!N%H&QN~HqF$H#A%X~|^r-DMibac`GtCX)$d zGHLJk{=X3a?)rJa<#M^x8QP{&sRZ5ec)Zg&+NO9s4&6IDJDtwaHf?Wj1F$TM(P&h% zb?>Vv91d3xC$E1ly|}pObSB9Z4u^4YaIm_;`R5q7yu6I(=jT`~7CW7hSjA!y&(6-! eZnwWXcK!t)SfnY(G(FY;0000<MNUMnLSTZWr(?VT literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/send_control_silent_off.png b/Telegram/Resources/icons/send_control_silent_off.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0a88d5ff223b8c99e4f318ca6542b63a8af011 GIT binary patch literal 518 zcmV+h0{Q)kP)<h;3K|Lk000e1NJLTq000#L000#T1^@s6sTZY|0005aNkl<ZIE}56 zy^6w65QQfj5mW?=6cI_G2-*tiw6RlLLGUr`#8=SD!paAbfMOT1wo4@m2mx&k82kan zi0Ij3*DUVFB+Kr=Dela@A9LpnLqwo|jyJbrxm+eiQ3!x7P1C4Wt9gRqq*kj10JvVS z7>~#3^?Hyb3CH6R0MO}l9N&HFXEKw?004%=q2r@&w+jHs=kxxd?RFag+&TdO3<d+o zn&V6piG=6OPN&n$dyddRAm9l-pU=dytbb@Omm||OU7?0yP%@eH4^5}jG@s91p^Bmq z&-27Ej5kye1R^4uOeU_-M_m*}$NH0V&1Mq-AP9o1`;kZl0MPIEy;tgRIAFWox&j~4 zH0{;ueI4rcIsl+lD*1wnq6h$JG#bv(U@!;(P*v3z@F7{20RTMD|AfwFGZ=>PE8s)A zu0z*#Fbo4C0z*VtEEbf_W@$Q|(r7dyj^ke2{w?<VJr#>Zs#dFH7zV}T@elVUNrGir z_)A<a7s#^w)hQ7X$8i)2h3Iy>*<Hk9F-oOUwA=0MTr?V`^?FU4&Bo5LEK8PUJ>^{I zwOXy7Ix<ZY;c(b%&hF4cp#W7?alhZOTrN?mR6LEdzyF`{4$!XNH{6;W?EnA(07*qo IM6N<$f;R8y@Bjb+ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/send_control_silent_off@2x.png b/Telegram/Resources/icons/send_control_silent_off@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab33c4fda5b8d0a6541efed7995f24714cf8f311 GIT binary patch literal 1029 zcmV+g1p51lP)<h;3K|Lk000e1NJLTq001fg001fo1^@s6#ly*4000BbNkl<ZScTP@ zPe>|J6vodyMbgQknxrX65GsUdV+n3VkZ4z%5Q4Tr+pM+QqK%ut7STG|v`BK3LJ%bc zEs7EbLo9<Liz2OzYR=odxzDjbUT4O7?}H0RX1;TN_g?4B6&V0P_z(2!rvYeX)SAHU zcEiBH0QmiWaJgKHYoaK^_VzX;lS$ax+R|DIP|fgoJeWu%kX8o=2RJr1rmEJTQM)M^ z41Ngn{QQj9*VmZO=kf9J@xyx}k;wOePEJlL3ZI^yVmKT|uh)x$ARx=KXt7w(X0xH& z?Z!|jghxk53eV!=VtqmFcKf@6Mx&9+J3T$E@b>rj*AH}IVSyBi$Ky4x%Ixec@o#Q! z)(<q5N|8ccU0tfaYsF%b<luQ;e^8$1QIaG?M9k%KsvrRX<MFtv?Wb<|9LE8}FaQ8> zb#+B+d#96=6B1jkR%#zLs3b|X5q+Z9*Vn(rf6>1fsqZux47Cw`qH@rNh6ZXMHK^Ha zCUK!qpe|6U`}=zmcXoDC`=~+N+uKQ;PN%60RO;^Tj>Li>Q2VGs`}+Dwe0Fw5U7%98 zx3?s2X=$PMQG=FmQ$C-kE>NlC<6{y#oz9xPRDG=cq~!5<RQFMaVes<u5)lzgr4lwZ zHR;#z1wkOq{`~x0HKaT?Ha5tl2L}iBYxq8&k2L#aGD&0kQhR%QirloSI-8Z16|w>o z6BC+O)a7!Ke4;4ov-KvENpX;{*=(9Y0RS&9E=bOvo*wO69|#11Wmy0Kh(@EDp7?UD zuC9`JYHEtg^W{vk*({m4*Xz|~H30xSIyw{wX^JD?=NCsuM@gb=Hme(?JfhJk$sZ1f z)qxs~M$G5)BvBv`&>gh9yIZlUZEbC}gDx#Ckp%nu`?^EQBNB;_I=j2OwSoG4KE+IX zdwc5!%CfAY*38Td9jL?Mz?YX7Vw{_ss~e;|Mn*;yutP&bUxPL`H)AfBBZi%wow`HH zqx=`HBuVIUxjqJUI-NfTDUY?aH3h8S?<dz7nKqNjfWzScS%-&*kjZ3#=Xv-J6^li% zSS*Tn|HH!rG&VMp&j<iGKR=KEnqslo$KTQA<z;f5`)MT-3A9?R@3&r--EIet<KXS> zt?G6a3I*zSKgV&<+S*$6K7+vkrBX@p`yT+{9cV2wnM@!ELe)tz3<FP3PjGW{qqY<P zXn0D8hli=RG877F?F!mj%KG|xRmfB-g=Vw)XF&m!r=UuSqKF*F>CtEPY1ZT8;~0y@ zP!vT>r_-27Brq5ZBEvAc<k$2teW(7L|CxRRikfH_r2|U-00000NkvXXu0mjf14QpA literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/send_control_silent_on.png b/Telegram/Resources/icons/send_control_silent_on.png new file mode 100644 index 0000000000000000000000000000000000000000..108a85841aedb96bf0b1bbe6d650d7fca193e2c2 GIT binary patch literal 685 zcmV;e0#f~nP)<h;3K|Lk000e1NJLTq000#L000#T1^@s6sTZY|0007XNkl<ZIE}58 zPbh406vw~wOq5$Tnpljclod*9N;XO)3pSLpWMyN+LdnXMQi?69NkkS(%Erb<p)BOz zVpg~Dr&vr=#I4);yv1wo8_)b(yi=!p@Av%9r*qCd_l6{)|7^cX1$%pYl}e=q1pfH= zsNvz^vS1`}baceZ$_lyXnVA^?JkMiqZ;$2WWwy7sd4GQgU}<S7I9tH~-0bh~128{7 zPb?P0%t$7a1(Onq1OR<~eWjtf>dXv)*Vk97tE&qpg~MS0Ha0fOLnSdZGz7rc*BABm z^+j9sJdfk!<I13tXlQ64lgR+k)zwunF_Xz~c6L@7w5qBKNjQ!}I-Le!WMt$=;={uO zuIpA_X*!)|YHA8e93CD5kVquHo!Q#j0w^~3??NmV17LA+G0;|5S1~hocXtDAY-|jG z?(XjL(1nEs%#4<nmT&sR!~_8M_xFJYu(q~V9-7T&xw*M1IIEtXo?tU1vAMYkP#QWu zJ`TX>=xEVZibkV&p2x?>2h-Ej0L;zJ6^7Q;)nR5_TwD|d=KJO4W$>YRo<}qq{RzFk zzQ)X`t*xyHn%_Ra)zwv?hb8Is^i=Kb?K(I((BR;p+S=OW`@V{q<2Z6%SCf;IIzK<x z`ue&$J3Do9a-#nJen}F^WD+1~=ih72@^v#~XJ-dV3=9kev3NXAC^v&hB%+#{8kw0S z>GShbO-)T|Zf@4|^RvR?uzcTFV`HOS*OlwK>gedu-QAtu-rm&O+N#^zTg}eS>c>ju zdngnll}Z8N`#u0qPfs|GQ}BEw63N9%zl?Z1&dbXSW=1xfE%gumTTHI~|7pJg6tt^= Tk_K-Y00000NkvXXu0mjfPZ3b2 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/send_control_silent_on@2x.png b/Telegram/Resources/icons/send_control_silent_on@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..58a7460a484eecf25f6a5f51172c8bf9b3c3ad09 GIT binary patch literal 1487 zcmV;=1u*)FP)<h;3K|Lk000e1NJLTq001fg001fo1^@s6#ly*4000G+Nkl<ZScTP@ zUr3W*7{|Y_)r5u1wJ2J{ATqLvM4`-O7yUsILJA^+GN_xmn?mfOux<*9goHB2E`t;y zgV;raOmHy5NCZbvEYp-Ab*_R~;=AH}yXg0x-`?EjyFb4_J@CMJ&v~Bbd^~@ibIw!% z5PyJ_{MP_RWo@AWoK7bi8yj)x&>>V;SIhc!>((I}jbeCs7@<%IFJ8PTv@0+l-Me=$ zCnhFnR6cz8z~<)Wy!!e}S62FbK3=$RA*0ikD_7FOsH)0%JkG_%MJ_EZrM2<<{lx+G z`Ft{HI#{pQtLu1vex6-jU97FGrNv^Q*=(lSY-U+m8J$iiJ3Bi$IXS8G@%em(g9d{^ z8Bhqpd-v|iwq3h+Q3xU1A3S(qxTB7a4xR7e!-or>`ktO1-3UB=`jh~8?b<b27YGD$ z9+j@HE(!bW*|Wky0kFNjT?ZQo1Q-g1<ab?NUCy8mhl4+U{Gbqm@pzmjlc{h}0BmY% z(!mNLD1=}%8qIe@Fc1jHc(t{)hW)Z8{Gp*C?AfyipFVxk)qno{Ih$KnnVXvfNdSP= zYBlV)>dExx%^TS5c8raUK~WR{fXn5=)vH(Y0u@3)Q52BGnl)>R2MPemWD<3Cbr={J zkg&II-Gblm&l&Xl_wN7zMNzPJt?`2~r?dXlsZ+Rn_pbc*csv*!9LyyImY0`hxxBpG zuwTxXlFOGb<J`G(005F`Zf?fx>@4hdyCMHrEGElEU89<uIB^1Qw;KTP=+Pq_IB)>V z%gZ2%ii!%nd-o3Y_4TX9nVFf9<%)_5!=Qk{^w8hmPm-*usgZSCwrt_l)RgYTX>D!I z8pr8$O54%V(c<LMRE<O;B*{b~L95j&>lH=O9RwtK<Hn7Qamvff`R&^`3L&VfDs47f z@jxvW3loV1Nir6Tr9Dv|K76P<7<zkqGsb)V{JFHNudgp2XlrY$JeB(T`ZC&ebad!O zc6@xCrKP1A?Sv4#dGluRKnDf}WMHq?o7MK%v12;ecs$Oksw$mLLqmgX4~N6W0kzp| za@xOs{i<7^nY5;+M*3)S<j4`7jdn*BLa?Esp>R--$0Iv?^5lupzn(Umjc?z+)xoy4 zwaNB7ckamg)H`q9pi@&*GGI$fi(ybrQ*TQo+0)ZQ0Nl21n;g+ZBEe0YHsuehZ6cC< z`SNAXkeYUPck5uaOLOW4y}P?RKhX8-*K>Y;UIsdO@?_qi0C@iVd6_v#a%5zL)z#IE z#bUCLojZ5t4w^a&Iqb}=+Su4AZ}>t827^J4jEqS5p`oGNKwDZ`bW^o||Nf$Y0$^oj zB^MVL<@!`rRrVu<V0(MJG0>{2DxLH7>(`40sj10iVmKVu0j8FlnwqkMTCG;j&dy4w z;o;$;L#Aq9Utd~SRaLof-@f#q4u?Z7Y#{_ECMNz-NKHFCJ6C{e;&!{Goubi>j*i0R zasdEHA`*$<)vH&itgMvJhg1<lproWkS5B?VBpWww#Ov3uarW$4B$G)1!0FSc(cj;{ z!uI|9_t>#xhx{f0-oAZ1<C^(hR;x?b{<}<0PSS3-%Mo+AT)N+@gb)mcLh09NZ*T9a z9T<hmWb=FZ;K75sJ))h2n%%{V7il(||DJkHwr}5#4I4J3o$gdAEiFYX7Q@`!984xt zR@-DUiOrigW9!zfP*oMcuh;1A-Mg`{uz<0#F`a!d7{t+|M}JK>39r|S6`;9@!{I<# zSsA{3`I7OCP7-Fb8B0q``1tXo;n;q^A0Cefmo8nx{rmTS#mZNYA3wh863`?|BF~s> z-EMd4Yof69^7!%NRo8SR5-CP1D?Aqt4i097j7FohSS<e!Pyjr0<_yE(FsG-dIWsfE p@$vDTr#qV#w3+@*`D6ai^b;8FI<Gn_2%`W1002ovPDHLkV1ii2?qUD{ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/settings_close.png b/Telegram/Resources/icons/settings_close.png deleted file mode 100644 index 7fa112a33b2e9cef41f273abc62eb07b4a1839b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)4CQlc~5RHkYlP+?y8gj5qzuvy= zzucZ6AMIlK<9me-ofKa1om^E^uEb>Qe5vA0Psf3~7fWLqQl4?ll$^=w;G$5T{@&Ip zbk5B4+>>T3X#T+%w}OlB5&w$|j%WN;8NNysPd-?ce|Proi?)9k#;vHATWGZ-Z-cX7 m<F%;!H~3e7Tz5XITbjpNtC>-C&U>J17(8A5T-G@yGywp}X-3=t diff --git a/Telegram/Resources/icons/settings_close@2x.png b/Telegram/Resources/icons/settings_close@2x.png deleted file mode 100644 index 40d3def3d2c56edb57dc818be15c1add75a32652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmV+@0oVSCP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0002*Nkl<ZNQtGB z(GG(k3`IMmzf7y;*}zAW?!mF)5N)9eFVLJrA@>CU0sydW8>EyV#t0+joP&9uVc+-f zo-niILPYsU&C5CW<uLQHU&2QuCA^eODWz)65CR~g=~=FxHnW9@D!X=)tDB365K-<q z8ha!P_)lP!Afg6-7HA~~crAF67~$7~JBbnA7HB08@O#0NL;;tnO2=P`NY~k^ueDkq zT9zV={cxp34=19Y#M={Ulyt@4BI%01MbZaXOGe;N(<7ox%d%9#Sl1Oo2(8>y6=MV< us`fKmy!Tx<znjE+fBs}<9)g#W0xoaV5m>`KwVn9@0000<MNUMnLSTZtaDGbw diff --git a/Telegram/Resources/icons/simple_close.png b/Telegram/Resources/icons/simple_close.png new file mode 100644 index 0000000000000000000000000000000000000000..07e1c0c58feb02ec5be6fd3ef0923e5602afc8d1 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4ReHKOhDb~;J-?CnhyqXR!~Yz+ zcP#j>;4|f?#>5x{X61k<U6Ylk{D_JCw0!w<|FvJGk`vNgg1sDFEP}k2uiA7i>D*7J zRbKDszVTeeRiJL2wKg&B$=??@%H0p}yH&U|X#P={VO{uMr1V_i$GyuR|KYc_P8Y0P ds4gbB?`Nj}=c0M@7Xlr@;OXk;vd$@?2>?z*N0|Ts literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/simple_close@2x.png b/Telegram/Resources/icons/simple_close@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7825b270a12b2ea01fb0a82e7228125846fd0146 GIT binary patch literal 354 zcmV-o0iFJdP)<h;3K|Lk000e1NJLTq000yK000yS1^@s6jfou%0003gNkl<ZIE|&$ zF^+>U5QX6%FnuD0#5G4D6~{=Eb8xFv<R};k32^`#1j?j{K+A40hMmqM`71nc?A`Bo z>HD6?<3ZCj>?y4^X_^v-A%0O5gkeaUrf9AIg%w3XP?lwOI2<^gPQ-Cc(=@bgy9>+n zoIpgfvMkw(e#1nB0LVmyE$9*kd_VwK)P~JK7jz8+@PK&-@O_^oNr>Z^F;c)Pwg~=4 zhhYFfDP_d~{I6Z$^?LDqKB?;(r4&jj>bkaKRuJHPJ`+XJbdI8k%jIIbvJCzlfH4MR zjMGNVru+>X-^>`}l+!=pQZz&aV+_aR(TdJMmz=Gk6X=4upaGC=!Pd|~Yn^SyY^Zm; z-DD3omgjj~uh(f!Ro8V?RkaI)&xexdIq+G8HzU_L$-_0k>;M1&07*qoM6N<$g6pc8 A8vp<R literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/boxes/addcontactbox.cpp b/Telegram/SourceFiles/boxes/addcontactbox.cpp index a828db91d..df76cbf67 100644 --- a/Telegram/SourceFiles/boxes/addcontactbox.cpp +++ b/Telegram/SourceFiles/boxes/addcontactbox.cpp @@ -388,7 +388,7 @@ void GroupInfoBox::paintEvent(QPaintEvent *e) { } else { p.fillRect(phRect, st::newGroupPhotoBg->b); } - p.drawSprite(phRect.topLeft() + st::newGroupPhotoIconPosition, st::newGroupPhotoIcon); + st::newGroupPhotoIcon.paint(p, phRect.topLeft() + st::newGroupPhotoIconPosition, width()); } else { p.drawPixmap(phRect.topLeft(), _photoSmall); } diff --git a/Telegram/SourceFiles/boxes/boxes.style b/Telegram/SourceFiles/boxes/boxes.style index 1d0266b4c..c04b07c32 100644 --- a/Telegram/SourceFiles/boxes/boxes.style +++ b/Telegram/SourceFiles/boxes/boxes.style @@ -136,18 +136,16 @@ contactsMultiSelect: MultiSelect { fieldIcon: fieldSearchIcon; fieldIconSkip: 36px; - fieldCancel: IconButton { + fieldCancel: IconButton(defaultIconButton) { width: 41px; height: 48px; opacity: 0.3; overOpacity: 0.4; - icon: icon {{ "box_search_cancel", #000000 }}; + icon: boxCancelIcon; iconPosition: point(8px, 18px); downIconPosition: point(8px, 19px); - - duration: 150; } fieldCancelSkip: 34px; } @@ -206,3 +204,29 @@ notificationSampleNameFg: #939393; membersAboutPadding: margins(0px, 12px, 0px, 12px); membersAboutFg: #777; + +sessionsScroll: flatScroll(boxScroll) { + round: 2px; + deltax: 5px; + width: 14px; +} +sessionsHeight: 440px; +sessionHeight: 70px; +sessionCurrentPadding: margins(0px, 7px, 0px, 4px); +sessionCurrentHeight: 118px; +sessionPadding: margins(21px, 10px, 21px, 0px); +sessionNameFont: msgNameFont; +sessionActiveFont: msgDateFont; +sessionActiveColor: #aaa; +sessionInfoFont: msgFont; +sessionInfoColor: #888888; +sessionTerminateTop: 30px; +sessionTerminateSkip: 18px; +sessionTerminate: IconButton(defaultIconButton) { + width: 16px; + height: 16px; + + icon: simpleCloseIcon; + iconPosition: point(3px, 3px); + downIconPosition: point(3px, 4px); +} diff --git a/Telegram/SourceFiles/boxes/notifications_box.cpp b/Telegram/SourceFiles/boxes/notifications_box.cpp index 98e9a4fe6..dbd16898d 100644 --- a/Telegram/SourceFiles/boxes/notifications_box.cpp +++ b/Telegram/SourceFiles/boxes/notifications_box.cpp @@ -23,6 +23,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "lang.h" #include "ui/buttons/round_button.h" +#include "ui/buttons/icon_button.h" #include "ui/widgets/discrete_slider.h" #include "styles/style_boxes.h" #include "styles/style_dialogs.h" @@ -289,7 +290,7 @@ void NotificationsBox::prepareNotificationSampleLarge() { p.drawText(rectForName.left(), rectForName.top() + st::msgNameFont->ascent, notifyTitle); p.setOpacity(st::notifyClose.opacity); - p.drawSpriteLeft(w - st::notifyClosePos.x() - st::notifyClose.width + st::notifyClose.iconPos.x(), st::notifyClosePos.y() + st::notifyClose.iconPos.y(), w, st::notifyClose.icon); + st::notifyClose.icon.paint(p, w - st::notifyClosePos.x() - st::notifyClose.width + st::notifyClose.iconPosition.x(), st::notifyClosePos.y() + st::notifyClose.iconPosition.y(), w); } _notificationSampleLarge = App::pixmapFromImageInPlace(std_::move(sampleImage)); diff --git a/Telegram/SourceFiles/boxes/sessionsbox.cpp b/Telegram/SourceFiles/boxes/sessionsbox.cpp index 7cd8d1e25..cd3c10ad7 100644 --- a/Telegram/SourceFiles/boxes/sessionsbox.cpp +++ b/Telegram/SourceFiles/boxes/sessionsbox.cpp @@ -19,16 +19,16 @@ Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org */ #include "stdafx.h" +#include "boxes/sessionsbox.h" + #include "lang.h" - #include "localstorage.h" - -#include "sessionsbox.h" #include "mainwidget.h" #include "mainwindow.h" - #include "countries.h" -#include "confirmbox.h" +#include "boxes/confirmbox.h" +#include "ui/buttons/icon_button.h" +#include "styles/style_boxes.h" SessionsBox::SessionsBox() : ScrollableBox(st::sessionsScroll) , _loading(true) @@ -90,7 +90,7 @@ void SessionsBox::gotAuthorizations(const MTPaccount_Authorizations &result) { _shortPollRequest = 0; int32 availCurrent = st::boxWideWidth - st::sessionPadding.left() - st::sessionTerminateSkip; - int32 availOther = availCurrent - st::sessionTerminate.iconPos.x();// -st::sessionTerminate.width - st::sessionTerminateSkip; + int32 availOther = availCurrent - st::sessionTerminate.iconPosition.x();// -st::sessionTerminate.width - st::sessionTerminateSkip; _list.clear(); const auto &v(result.c_account_authorizations().vauthorizations.c_vector().v); @@ -258,7 +258,7 @@ void SessionsBox::Inner::paintEvent(QPaintEvent *e) { Painter p(this); p.fillRect(r, st::white->b); - int32 x = st::sessionPadding.left(), xact = st::sessionTerminateSkip + st::sessionTerminate.iconPos.x();// st::sessionTerminateSkip + st::sessionTerminate.width + st::sessionTerminateSkip; + int32 x = st::sessionPadding.left(), xact = st::sessionTerminateSkip + st::sessionTerminate.iconPosition.x();// st::sessionTerminateSkip + st::sessionTerminate.width + st::sessionTerminateSkip; int32 w = width(); if (_current->active.isEmpty() && _list->isEmpty()) { @@ -414,7 +414,7 @@ void SessionsBox::Inner::listUpdated() { for (int32 i = 0, l = _list->size(); i < l; ++i) { TerminateButtons::iterator j = _terminateButtons.find(_list->at(i).hash); if (j == _terminateButtons.cend()) { - j = _terminateButtons.insert(_list->at(i).hash, new IconedButton(this, st::sessionTerminate)); + j = _terminateButtons.insert(_list->at(i).hash, new Ui::IconButton(this, st::sessionTerminate)); connect(j.value(), SIGNAL(clicked()), this, SLOT(onTerminate())); } j.value()->moveToRight(st::sessionTerminateSkip, st::sessionCurrentHeight + i * st::sessionHeight + st::sessionTerminateTop, width()); diff --git a/Telegram/SourceFiles/boxes/sessionsbox.h b/Telegram/SourceFiles/boxes/sessionsbox.h index 0021162cf..0b32c9bad 100644 --- a/Telegram/SourceFiles/boxes/sessionsbox.h +++ b/Telegram/SourceFiles/boxes/sessionsbox.h @@ -25,6 +25,10 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org class ConfirmBox; +namespace Ui { +class IconButton; +} // namespace Ui + class SessionsBox : public ScrollableBox, public RPCSender { Q_OBJECT @@ -106,7 +110,7 @@ private: SessionsBox::List *_list; SessionsBox::Data *_current; - typedef QMap<uint64, IconedButton*> TerminateButtons; + typedef QMap<uint64, Ui::IconButton*> TerminateButtons; TerminateButtons _terminateButtons; uint64 _terminating; diff --git a/Telegram/SourceFiles/boxes/stickers_box.cpp b/Telegram/SourceFiles/boxes/stickers_box.cpp index 03c13475e..d83b2f360 100644 --- a/Telegram/SourceFiles/boxes/stickers_box.cpp +++ b/Telegram/SourceFiles/boxes/stickers_box.cpp @@ -29,6 +29,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "apiwrap.h" #include "localstorage.h" #include "dialogs/dialogs_layout.h" +#include "styles/style_boxes.h" #include "styles/style_stickers.h" namespace { diff --git a/Telegram/SourceFiles/dialogs/dialogs.style b/Telegram/SourceFiles/dialogs/dialogs.style index abf2223dc..ec82cc590 100644 --- a/Telegram/SourceFiles/dialogs/dialogs.style +++ b/Telegram/SourceFiles/dialogs/dialogs.style @@ -21,6 +21,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org using "basic.style"; using "basic_types.style"; +using "ui/widgets/widgets.style"; + dialogsUnreadFg: #ffffff; dialogsUnreadFgActive: #5b94bf; dialogsUnreadBg: windowActiveBg; @@ -81,21 +83,21 @@ dialogsTextStyleDraftActive: textStyle(dialogsTextStyle) { linkFgDown: #c6e1f7; } -dialogsNewChatIcon: icon {{ "dialogs_new_chat", #b7b7b7, point(9px, 10px) }}; -dialogsNewChatButton: RoundButton { +dialogsNewChatButton: IconButton(defaultIconButton) { width: 36px; height: 36px; - icon: dialogsNewChatIcon; - textTop: 5px; - downTextTop: 6px; - - textFg: transparent; - textFgOver: transparent; - secondaryTextFg: transparent; - secondaryTextFgOver: transparent; - textBg: transparent; - textBgOver: transparent; + icon: icon {{ "dialogs_new_chat", #b7b7b7 }}; + iconPosition: point(9px, 10px); + downIconPosition: point(9px, 11px); +} +dialogsAddContact: IconButton(dialogsNewChatButton) { + icon: icon {{ "dialogs_add_contact", #a6a6a6 }}; + iconPosition: point(8px, 8px); + downIconPosition: point(8px, 9px); +} +dialogsCancelSearch: IconButton(dialogsAddContact) { + icon: icon {{ "dialogs_cancel_search", #a6a6a6 }}; } dialogsChatTypeSkip: 22px; diff --git a/Telegram/SourceFiles/dialogswidget.cpp b/Telegram/SourceFiles/dialogswidget.cpp index eb9007f36..b6de91dbe 100644 --- a/Telegram/SourceFiles/dialogswidget.cpp +++ b/Telegram/SourceFiles/dialogswidget.cpp @@ -24,7 +24,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "dialogs/dialogs_indexed_list.h" #include "dialogs/dialogs_layout.h" #include "styles/style_dialogs.h" -#include "ui/buttons/round_button.h" +#include "styles/style_stickers.h" +#include "ui/buttons/icon_button.h" #include "ui/widgets/popup_menu.h" #include "data/data_drafts.h" #include "lang.h" @@ -43,7 +44,7 @@ DialogsInner::DialogsInner(QWidget *parent, MainWidget *main) : SplittedWidget(p , contactsNoDialogs(std_::make_unique<Dialogs::IndexedList>(Dialogs::SortMode::Name)) , contacts(std_::make_unique<Dialogs::IndexedList>(Dialogs::SortMode::Name)) , _addContactLnk(this, lang(lng_add_contact_button)) -, _cancelSearchInPeer(this, st::btnCancelSearch) { +, _cancelSearchInPeer(this, st::dialogsCancelSearch) { if (Global::DialogsModeEnabled()) { importantDialogs = std_::make_unique<Dialogs::IndexedList>(Dialogs::SortMode::Date); } @@ -51,8 +52,8 @@ DialogsInner::DialogsInner(QWidget *parent, MainWidget *main) : SplittedWidget(p connect(main, SIGNAL(peerPhotoChanged(PeerData*)), this, SLOT(onPeerPhotoChanged(PeerData*))); connect(main, SIGNAL(dialogRowReplaced(Dialogs::Row*,Dialogs::Row*)), this, SLOT(onDialogRowReplaced(Dialogs::Row*,Dialogs::Row*))); connect(&_addContactLnk, SIGNAL(clicked()), App::wnd(), SLOT(onShowAddContact())); - connect(&_cancelSearchInPeer, SIGNAL(clicked()), this, SIGNAL(cancelSearchInPeer())); - _cancelSearchInPeer.hide(); + connect(_cancelSearchInPeer, SIGNAL(clicked()), this, SIGNAL(cancelSearchInPeer())); + _cancelSearchInPeer->hide(); subscribe(FileDownload::ImageLoaded(), [this] { update(); }); subscribe(Global::RefItemRemoved(), [this](HistoryItem *item) { @@ -126,8 +127,8 @@ void DialogsInner::paintRegion(Painter &p, const QRegion ®ion, bool paintingO p.fillRect(0, 0, w, st::mentionHeight, (selected ? st::mentionBgOver : st::white)->b); if (!paintingOther) { if (selected) { - int skip = (st::mentionHeight - st::simpleClose.icon.pxHeight()) / 2; - p.drawSprite(QPoint(w - st::simpleClose.icon.pxWidth() - skip, skip), st::simpleClose.icon); + int skip = (st::mentionHeight - st::simpleCloseIcon.height()) / 2; + st::simpleCloseIcon.paint(p, QPoint(w - st::simpleCloseIcon.width() - skip, skip), width()); } QString first = (_hashtagFilter.size() < 2) ? QString() : ('#' + _hashtagResults.at(from).mid(0, _hashtagFilter.size() - 1)), second = (_hashtagFilter.size() < 2) ? ('#' + _hashtagResults.at(from)) : _hashtagResults.at(from).mid(_hashtagFilter.size() - 1); int32 firstwidth = st::mentionFont->width(first), secondwidth = st::mentionFont->width(second); @@ -299,7 +300,7 @@ void DialogsInner::searchInPeerPaint(Painter &p, int32 w, bool onlyBackground) c _searchInPeer->paintUserpicLeft(p, st::dialogsPhotoSize, st::dialogsPadding.x(), st::dialogsPadding.y(), fullWidth()); int32 nameleft = st::dialogsPadding.x() + st::dialogsPhotoSize + st::dialogsPhotoPadding; - int32 namewidth = w - nameleft - st::dialogsPadding.x() * 2 - st::btnCancelSearch.width; + int32 namewidth = w - nameleft - st::dialogsPadding.x() * 2 - st::dialogsCancelSearch.width; QRect rectForName(nameleft, st::dialogsPadding.y() + st::dialogsNameTop, namewidth, st::msgNameFont->height); if (auto chatTypeIcon = Dialogs::Layout::ChatTypeIcon(_searchInPeer, false)) { @@ -408,7 +409,7 @@ void DialogsInner::mousePressEvent(QMouseEvent *e) { void DialogsInner::resizeEvent(QResizeEvent *e) { _addContactLnk.move((width() - _addContactLnk.width()) / 2, (st::noContactsHeight + st::noContactsFont->height) / 2); - _cancelSearchInPeer.move(width() - st::dialogsPadding.x() - st::btnCancelSearch.width, (st::dialogsRowHeight - st::btnCancelSearch.height) / 2); + _cancelSearchInPeer->move(width() - st::dialogsPadding.x() - st::dialogsCancelSearch.width, (st::dialogsRowHeight - st::dialogsCancelSearch.height) / 2); } void DialogsInner::onDialogRowReplaced(Dialogs::Row *oldRow, Dialogs::Row *newRow) { @@ -1260,9 +1261,9 @@ void DialogsInner::searchInPeer(PeerData *peer) { _searchInMigrated = _searchInPeer ? _searchInPeer->migrateFrom() : 0; if (_searchInPeer) { onHashtagFilterUpdate(QStringRef()); - _cancelSearchInPeer.show(); + _cancelSearchInPeer->show(); } else { - _cancelSearchInPeer.hide(); + _cancelSearchInPeer->hide(); } } @@ -1780,9 +1781,9 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : TWidget(parent) , _dialogsRequest(0) , _contactsRequest(0) , _filter(this, st::dlgFilter, lang(lng_dlg_filter)) -, _newGroup(this, QString(), st::dialogsNewChatButton) -, _addContact(this, st::btnAddContact) -, _cancelSearch(this, st::btnCancelSearch) +, _newGroup(this, st::dialogsNewChatButton) +, _addContact(this, st::dialogsAddContact) +, _cancelSearch(this, st::dialogsCancelSearch) , _scroll(this, st::dialogsScroll) , _inner(&_scroll, parent) , _a_show(animation(this, &DialogsWidget::step_show)) @@ -1807,9 +1808,9 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : TWidget(parent) connect(&_filter, SIGNAL(changed()), this, SLOT(onFilterUpdate())); connect(&_filter, SIGNAL(cursorPositionChanged(int,int)), this, SLOT(onFilterCursorMoved(int,int))); connect(parent, SIGNAL(dialogsUpdated()), this, SLOT(onListScroll())); - connect(&_addContact, SIGNAL(clicked()), this, SLOT(onAddContact())); + connect(_addContact, SIGNAL(clicked()), this, SLOT(onAddContact())); connect(_newGroup, SIGNAL(clicked()), this, SLOT(onNewGroup())); - connect(&_cancelSearch, SIGNAL(clicked()), this, SLOT(onCancelSearch())); + connect(_cancelSearch, SIGNAL(clicked()), this, SLOT(onCancelSearch())); _chooseByDragTimer.setSingleShot(true); connect(&_chooseByDragTimer, SIGNAL(timeout()), this, SLOT(onChooseByDrag())); @@ -1824,12 +1825,12 @@ DialogsWidget::DialogsWidget(MainWidget *parent) : TWidget(parent) _filter.move(st::dialogsPadding.x(), st::dialogsFilterPadding); _filter.setFocusPolicy(Qt::StrongFocus); _filter.customUpDown(true); - _addContact.hide(); + _addContact->hide(); _newGroup->show(); - _cancelSearch.hide(); + _cancelSearch->hide(); _newGroup->move(width() - _newGroup->width() - st::dialogsPadding.x(), 0); - _addContact.move(width() - _addContact.width() - st::dialogsPadding.x(), 0); - _cancelSearch.move(width() - _cancelSearch.width() - st::dialogsPadding.x(), 0); + _addContact->move(width() - _addContact->width() - st::dialogsPadding.x(), 0); + _cancelSearch->move(width() - _cancelSearch->width() - st::dialogsPadding.x(), 0); } void DialogsWidget::activate() { @@ -1874,7 +1875,7 @@ void DialogsWidget::showAnimated(Window::SlideDirection direction, const Window: _scroll.hide(); _filter.hide(); - _cancelSearch.hide(); + _cancelSearch->hide(); _newGroup->hide(); int delta = st::slideShift; @@ -2377,10 +2378,10 @@ void DialogsWidget::onFilterUpdate(bool force) { _searchCache.clear(); _searchQueries.clear(); _searchQuery = QString(); - _cancelSearch.hide(); + _cancelSearch->hide(); _newGroup->show(); - } else if (_cancelSearch.isHidden()) { - _cancelSearch.show(); + } else if (_cancelSearch->isHidden()) { + _cancelSearch->show(); _newGroup->hide(); } if (filterText.size() < MinUsernameLength) { @@ -2445,8 +2446,8 @@ void DialogsWidget::resizeEvent(QResizeEvent *e) { int32 w = width(); _filter.setGeometry(st::dialogsPadding.x(), st::dialogsFilterPadding, w - 2 * st::dialogsPadding.x(), _filter.height()); _newGroup->move(w - _newGroup->width() - st::dialogsPadding.x(), _filter.y()); - _addContact.move(w - _addContact.width() - st::dialogsPadding.x(), _filter.y()); - _cancelSearch.move(w - _cancelSearch.width() - st::dialogsPadding.x(), _filter.y()); + _addContact->move(w - _addContact->width() - st::dialogsPadding.x(), _filter.y()); + _cancelSearch->move(w - _cancelSearch->width() - st::dialogsPadding.x(), _filter.y()); _scroll.move(0, _filter.height() + 2 * st::dialogsFilterPadding); int32 addToY = App::main() ? App::main()->contentScrollAddToY() : 0; diff --git a/Telegram/SourceFiles/dialogswidget.h b/Telegram/SourceFiles/dialogswidget.h index 930349072..e3aec8945 100644 --- a/Telegram/SourceFiles/dialogswidget.h +++ b/Telegram/SourceFiles/dialogswidget.h @@ -29,7 +29,7 @@ class IndexedList; } // namespace Dialogs namespace Ui { -class RoundButton; +class IconButton; class PopupMenu; } // namespace Ui @@ -221,7 +221,7 @@ private: void paintDialog(QPainter &p, Dialogs::Row *dialog); LinkButton _addContactLnk; - IconedButton _cancelSearchInPeer; + ChildWidget<Ui::IconButton> _cancelSearchInPeer; bool _overDelete = false; @@ -336,8 +336,9 @@ private: mtpRequestId _dialogsRequest, _contactsRequest; FlatInput _filter; - ChildWidget<Ui::RoundButton> _newGroup; - IconedButton _addContact, _cancelSearch; + ChildWidget<Ui::IconButton> _newGroup; + ChildWidget<Ui::IconButton> _addContact; + ChildWidget<Ui::IconButton> _cancelSearch; ScrollArea _scroll; DialogsInner _inner; diff --git a/Telegram/SourceFiles/history/field_autocomplete.cpp b/Telegram/SourceFiles/history/field_autocomplete.cpp index c217e8c70..d04c2ab2f 100644 --- a/Telegram/SourceFiles/history/field_autocomplete.cpp +++ b/Telegram/SourceFiles/history/field_autocomplete.cpp @@ -605,9 +605,9 @@ void FieldAutocompleteInner::paintEvent(QPaintEvent *e) { bool selected = (i == _sel); if (selected) { p.fillRect(0, i * st::mentionHeight, width(), st::mentionHeight, st::mentionBgOver->b); - int skip = (st::mentionHeight - st::simpleClose.icon.pxHeight()) / 2; + int skip = (st::mentionHeight - st::simpleCloseIcon.height()) / 2; if (!_hrows->isEmpty() || (!_mrows->isEmpty() && i < _recentInlineBotsInRows)) { - p.drawSprite(QPoint(width() - st::simpleClose.icon.pxWidth() - skip, i * st::mentionHeight + skip), st::simpleClose.icon); + st::simpleCloseIcon.paint(p, QPoint(width() - st::simpleCloseIcon.width() - skip, i * st::mentionHeight + skip), width()); } } p.setPen(st::black->p); diff --git a/Telegram/SourceFiles/history/history.style b/Telegram/SourceFiles/history/history.style index 7c1ff3156..eb07e0fe1 100644 --- a/Telegram/SourceFiles/history/history.style +++ b/Telegram/SourceFiles/history/history.style @@ -147,18 +147,13 @@ historyMediaTypeSong: icon {{ "media_type_song", #bebebe, point(0px, 0px) }}; historyMediaTypeVoice: icon {{ "media_type_voice", #bebebe, point(2px, 2px) }}; historyMediaTypeLink: icon {{ "media_type_link", #bebebe, point(2px, 2px) }}; -historyAttachDocument: IconButton { +historyAttachDocument: IconButton(defaultIconButton) { width: 46px; height: 46px; - opacity: 0.78; - overOpacity: 1.; - icon: historyMediaTypeFile; iconPosition: point(9px, 9px); downIconPosition: point(9px, 10px); - - duration: 150; } historyAttachPhoto: IconButton(historyAttachDocument) { icon: historyMediaTypePhoto; @@ -211,7 +206,35 @@ historyAttachDropdownMenu: DropdownMenu(defaultDropdownMenu) { } } -topBarSearch: IconButton { +historySilentToggle: IconButton(historyBotKeyboardShow) { + icon: icon {{ "send_control_silent_off", #b3b3b3 }}; +} +historySilentToggleOn: icon {{ "send_control_silent_on", #b3b3b3 }}; + +historyReplySkip: 51px; +historyReplyColor: #377aae; +historyReplyHeight: 49px; +historyReplyTop: 8px; +historyReplyBottom: 6px; +historyReplyIconPosition: point(13px, 13px); +historyReplyIcon: icon {{ "history_action_reply", #6fa1d2 }}; +historyForwardIcon: icon {{ "history_action_forward", #6fa1d2 }}; +historyEditIcon: icon {{ "history_action_edit", #6fa1d2 }}; +historyReplyCancel: IconButton(defaultIconButton) { + width: 49px; + height: 49px; + + icon: historyReplyCancelIcon; + iconPosition: point(17px, 17px); + downIconPosition: point(17px, 18px); +} +historyInlineBotCancel: IconButton(historyReplyCancel) { + height: 46px; + iconPosition: point(-1px, 16px); // < 0 means draw in the center of the button + downIconPosition: point(-1px, 17px); +} + +topBarSearch: IconButton(defaultIconButton) { width: 44px; height: topBarHeight; @@ -221,6 +244,4 @@ topBarSearch: IconButton { opacity: 0.22; overOpacity: 0.36; - - duration: 150; } diff --git a/Telegram/SourceFiles/history/history_media_types.cpp b/Telegram/SourceFiles/history/history_media_types.cpp index 490ebb78e..0281440e0 100644 --- a/Telegram/SourceFiles/history/history_media_types.cpp +++ b/Telegram/SourceFiles/history/history_media_types.cpp @@ -2733,9 +2733,9 @@ void HistoryWebPage::draw(Painter &p, const QRect &r, TextSelection selection, u if (_data->type == WebPageVideo && _attach->type() == MediaTypePhoto) { if (_attach->isReadyForOpen()) { if (_data->siteName == qstr("YouTube")) { - p.drawSprite(QPoint((pixwidth - st::youtubeIcon.pxWidth()) / 2, (pixheight - st::youtubeIcon.pxHeight()) / 2), st::youtubeIcon); + st::youtubeIcon.paint(p, (pixwidth - st::youtubeIcon.width()) / 2, (pixheight - st::youtubeIcon.height()) / 2, _width); } else { - p.drawSprite(QPoint((pixwidth - st::videoIcon.pxWidth()) / 2, (pixheight - st::videoIcon.pxHeight()) / 2), st::videoIcon); + st::videoIcon.paint(p, (pixwidth - st::videoIcon.width()) / 2, (pixheight - st::videoIcon.height()) / 2, _width); } } if (_durationWidth) { diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index e48517114..9cd79baef 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -2913,12 +2913,12 @@ HistoryHider::~HistoryHider() { parent()->noHider(this); } -SilentToggle::SilentToggle(QWidget *parent) : FlatCheckbox(parent, QString(), false, st::silentToggle) { +SilentToggle::SilentToggle(QWidget *parent) : IconButton(parent, st::historySilentToggle) { setMouseTracking(true); } void SilentToggle::mouseMoveEvent(QMouseEvent *e) { - FlatCheckbox::mouseMoveEvent(e); + IconButton::mouseMoveEvent(e); if (rect().contains(e->pos())) { Ui::Tooltip::Show(1000, this); } else { @@ -2926,21 +2926,29 @@ void SilentToggle::mouseMoveEvent(QMouseEvent *e) { } } +void SilentToggle::setChecked(bool checked) { + if (_checked != checked) { + _checked = checked; + setIcon(_checked ? &st::historySilentToggleOn : nullptr); + } +} + void SilentToggle::leaveEvent(QEvent *e) { Ui::Tooltip::Hide(); } void SilentToggle::mouseReleaseEvent(QMouseEvent *e) { - FlatCheckbox::mouseReleaseEvent(e); + setChecked(!_checked); + IconButton::mouseReleaseEvent(e); Ui::Tooltip::Show(0, this); - PeerData *p = App::main() ? App::main()->peer() : nullptr; + auto p = App::main() ? App::main()->peer() : nullptr; if (p && p->isChannel() && p->notify != UnknownNotifySettings) { - App::main()->updateNotifySetting(p, NotifySettingDontChange, checked() ? SilentNotifiesSetSilent : SilentNotifiesSetNotify); + App::main()->updateNotifySetting(p, NotifySettingDontChange, _checked ? SilentNotifiesSetSilent : SilentNotifiesSetNotify); } } QString SilentToggle::tooltipText() const { - return lang(checked() ? lng_wont_be_notified : lng_will_be_notified); + return lang(_checked ? lng_wont_be_notified : lng_will_be_notified); } QPoint SilentToggle::tooltipPos() const { @@ -2984,7 +2992,7 @@ TextWithTags::Tags textTagsFromEntities(const EntitiesInText &entities) { } HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) -, _fieldBarCancel(this, st::replyCancel) +, _fieldBarCancel(this, st::historyReplyCancel) , _scroll(this, st::historyScroll, false) , _historyToEnd(this) , _fieldAutocomplete(this) @@ -3024,13 +3032,13 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) connect(&_reportSpamPanel, SIGNAL(hideClicked()), this, SLOT(onReportSpamHide())); connect(&_reportSpamPanel, SIGNAL(clearClicked()), this, SLOT(onReportSpamClear())); connect(_historyToEnd, SIGNAL(clicked()), this, SLOT(onHistoryToEnd())); - connect(&_fieldBarCancel, SIGNAL(clicked()), this, SLOT(onFieldBarCancel())); + connect(_fieldBarCancel, SIGNAL(clicked()), this, SLOT(onFieldBarCancel())); connect(&_send, SIGNAL(clicked()), this, SLOT(onSend())); connect(&_unblock, SIGNAL(clicked()), this, SLOT(onUnblock())); connect(&_botStart, SIGNAL(clicked()), this, SLOT(onBotStart())); connect(&_joinChannel, SIGNAL(clicked()), this, SLOT(onJoinChannel())); connect(&_muteUnmute, SIGNAL(clicked()), this, SLOT(onMuteUnmute())); - connect(&_silent, SIGNAL(clicked()), this, SLOT(onBroadcastSilentChange())); + connect(_silent, SIGNAL(clicked()), this, SLOT(onBroadcastSilentChange())); connect(_attachDocument, SIGNAL(clicked()), this, SLOT(onDocumentSelect())); connect(_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect())); connect(&_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool))); @@ -3077,7 +3085,7 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) connect(&_field, SIGNAL(cursorPositionChanged()), this, SLOT(onDraftSaveDelayed())); connect(&_field, SIGNAL(cursorPositionChanged()), this, SLOT(onCheckFieldAutocomplete()), Qt::QueuedConnection); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _scroll.hide(); @@ -3115,7 +3123,7 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) _attachEmoji->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); - _silent.hide(); + _silent->hide(); _botCommandStart->hide(); _attachDocument->installEventFilter(_attachType); @@ -3489,7 +3497,7 @@ void HistoryWidget::onRecordDone(QByteArray result, VoiceWaveform waveform, qint App::wnd()->activateWindow(); int32 duration = samples / AudioVoiceMsgFrequency; - _fileLoader.addTask(new FileLoadTask(result, duration, waveform, FileLoadTo(_peer->id, _silent.checked(), replyToId()))); + _fileLoader.addTask(new FileLoadTask(result, duration, waveform, FileLoadTo(_peer->id, _silent->checked(), replyToId()))); cancelReplyAfterMediaSend(lastForceReplyReplied()); } @@ -4203,7 +4211,7 @@ void HistoryWidget::showHistory(const PeerId &peerId, MsgId showAtMsgId, bool re _editMsgId = _replyToId = 0; _previewData = 0; _previewCache.clear(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _membersDropdownShowTimer.stop(); if (_list) _list->deleteLater(); @@ -4363,8 +4371,8 @@ void HistoryWidget::updateNotifySettings() { _muteUnmute.setText(lang(_history->mute() ? lng_channel_unmute : lng_channel_mute)); if (_peer->notify != UnknownNotifySettings) { - _silent.setChecked(_peer->notify != EmptyNotifySettings && (_peer->notify->flags & MTPDpeerNotifySettings::Flag::f_silent)); - if (_silent.isHidden() && hasSilentToggle()) { + _silent->setChecked(_peer->notify != EmptyNotifySettings && (_peer->notify->flags & MTPDpeerNotifySettings::Flag::f_silent)); + if (_silent->isHidden() && hasSilentToggle()) { updateControlsVisibility(); } } @@ -4499,11 +4507,11 @@ void HistoryWidget::updateControlsVisibility() { _muteUnmute.hide(); _fieldAutocomplete->hide(); _field.hide(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _attachDocument->hide(); _attachPhoto->hide(); _attachEmoji->hide(); - _silent.hide(); + _silent->hide(); _historyToEnd->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); @@ -4561,9 +4569,9 @@ void HistoryWidget::updateControlsVisibility() { _botStart.hide(); _attachDocument->hide(); _attachPhoto->hide(); - _silent.hide(); + _silent->hide(); _kbScroll.hide(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _attachDocument->hide(); _attachPhoto->hide(); _attachEmoji->hide(); @@ -4597,9 +4605,9 @@ void HistoryWidget::updateControlsVisibility() { _botCommandStart->hide(); _attachDocument->hide(); _attachPhoto->hide(); - _silent.hide(); + _silent->hide(); _kbScroll.hide(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); } else { _unblock.hide(); _botStart.hide(); @@ -4627,7 +4635,7 @@ void HistoryWidget::updateControlsVisibility() { _botCommandStart->hide(); _attachDocument->hide(); _attachPhoto->hide(); - _silent.hide(); + _silent->hide(); if (_kbShown) { _kbScroll.show(); } else { @@ -4671,20 +4679,20 @@ void HistoryWidget::updateControlsVisibility() { _attachPhoto->hide(); } if (hasSilentToggle()) { - _silent.show(); + _silent->show(); } else { - _silent.hide(); + _silent->hide(); } updateFieldPlaceholder(); } if (_editMsgId || _replyToId || readyToForward() || (_previewData && _previewData->pendingTill >= 0) || _kbReplyTo) { - if (_fieldBarCancel.isHidden()) { - _fieldBarCancel.show(); + if (_fieldBarCancel->isHidden()) { + _fieldBarCancel->show(); resizeEvent(0); update(); } } else { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); } } } else { @@ -4697,9 +4705,9 @@ void HistoryWidget::updateControlsVisibility() { _muteUnmute.hide(); _attachDocument->hide(); _attachPhoto->hide(); - _silent.hide(); + _silent->hide(); _kbScroll.hide(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _attachDocument->hide(); _attachPhoto->hide(); _attachEmoji->hide(); @@ -4719,7 +4727,7 @@ void HistoryWidget::updateControlsVisibility() { } void HistoryWidget::updateMouseTracking() { - bool trackMouse = !_fieldBarCancel.isHidden() || _pinnedBar || (cHasAudioCapture() && _send.isHidden() && !_field.isHidden()); + bool trackMouse = !_fieldBarCancel->isHidden() || _pinnedBar || (cHasAudioCapture() && _send.isHidden() && !_field.isHidden()); setMouseTracking(trackMouse); } @@ -5244,7 +5252,7 @@ void HistoryWidget::onSend(bool ctrlShiftEnter, MsgId replyTo) { message.history = _history; message.textWithTags = _field.getTextWithTags(); message.replyTo = replyTo; - message.silent = _silent.checked(); + message.silent = _silent->checked(); message.webPageId = webPageId; App::main()->sendMessage(message); @@ -5388,7 +5396,7 @@ void HistoryWidget::shareContact(const PeerId &peer, const QString &phone, const bool channelPost = p->isChannel() && !p->isMegagroup(); bool showFromName = !channelPost || p->asChannel()->addsSignature(); - bool silentPost = channelPost && _silent.checked(); + bool silentPost = channelPost && _silent->checked(); if (channelPost) { flags |= MTPDmessage::Flag::f_views; flags |= MTPDmessage::Flag::f_post; @@ -5404,7 +5412,7 @@ void HistoryWidget::shareContact(const PeerId &peer, const QString &phone, const App::historyRegRandom(randomId, newId); - App::main()->finishForwarding(history, _silent.checked()); + App::main()->finishForwarding(history, _silent->checked()); cancelReplyAfterMediaSend(lastKeyboardUsed); } @@ -5459,12 +5467,12 @@ void HistoryWidget::showAnimated(Window::SlideDirection direction, const Window: _attachPhoto->hide(); _attachEmoji->hide(); _fieldAutocomplete->hide(); - _silent.hide(); + _silent->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); _botCommandStart->hide(); _field.hide(); - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); _send.hide(); if (_inlineBotCancel) _inlineBotCancel->hide(); _unblock.hide(); @@ -5664,8 +5672,8 @@ void HistoryWidget::mouseMoveEvent(QMouseEvent *e) { QPoint pos(e ? e->pos() : mapFromGlobal(QCursor::pos())); bool inRecord = _send.geometry().contains(pos); bool inField = pos.y() >= (_scroll.y() + _scroll.height()) && pos.y() < height() && pos.x() >= 0 && pos.x() < width(); - bool inReplyEdit = QRect(st::replySkip, _field.y() - st::sendPadding - st::replyHeight, width() - st::replySkip - _fieldBarCancel.width(), st::replyHeight).contains(pos) && (_editMsgId || replyToId()); - bool inPinnedMsg = QRect(0, 0, width(), st::replyHeight).contains(pos) && _pinnedBar; + bool inReplyEdit = QRect(st::historyReplySkip, _field.y() - st::sendPadding - st::historyReplyHeight, width() - st::historyReplySkip - _fieldBarCancel->width(), st::historyReplyHeight).contains(pos) && (_editMsgId || replyToId()); + bool inPinnedMsg = QRect(0, 0, width(), st::historyReplyHeight).contains(pos) && _pinnedBar; bool startAnim = false; if (inRecord != _inRecord) { _inRecord = inRecord; @@ -5699,7 +5707,7 @@ void HistoryWidget::leaveToChildEvent(QEvent *e, QWidget *child) { // e -- from void HistoryWidget::mouseReleaseEvent(QMouseEvent *e) { if (_replyForwardPressed) { _replyForwardPressed = false; - update(0, _field.y() - st::sendPadding - st::replyHeight, width(), st::replyHeight); + update(0, _field.y() - st::sendPadding - st::historyReplyHeight, width(), st::historyReplyHeight); } if (_attachDrag != DragStateNone || !_attachDragPhoto->isHidden() || !_attachDragDocument->isHidden()) { _attachDrag = DragStateNone; @@ -6150,7 +6158,7 @@ void HistoryWidget::onKbToggle(bool manual) { _kbReplyTo = 0; if (!readyToForward() && (!_previewData || _previewData->pendingTill < 0) && !_editMsgId && !_replyToId) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } } else { @@ -6175,7 +6183,7 @@ void HistoryWidget::onKbToggle(bool manual) { if (_kbReplyTo && !_editMsgId && !_replyToId && fieldEnabled) { updateReplyToName(); _replyEditMsgText.setText(st::msgFont, textClean(_kbReplyTo->inReplyText()), _textDlgOptions); - _fieldBarCancel.show(); + _fieldBarCancel->show(); updateMouseTracking(); } if (manual && _history) { @@ -6194,7 +6202,7 @@ void HistoryWidget::onKbToggle(bool manual) { if (_kbReplyTo && !_editMsgId && !_replyToId) { updateReplyToName(); _replyEditMsgText.setText(st::msgFont, textClean(_kbReplyTo->inReplyText()), _textDlgOptions); - _fieldBarCancel.show(); + _fieldBarCancel->show(); updateMouseTracking(); } if (manual && _history) { @@ -6455,10 +6463,10 @@ void HistoryWidget::moveFieldControls() { right -= _attachEmoji->width(); _botKeyboardShow->move(right - _botKeyboardShow->width(), buttonsBottom); _botCommandStart->move(right - _botCommandStart->width(), buttonsBottom); - _silent.move(right - _silent.width(), buttonsBottom); + _silent->move(right - _silent->width(), buttonsBottom); right = w; - _fieldBarCancel.move(right - _fieldBarCancel.width(), _field.y() - st::sendPadding - _fieldBarCancel.height()); + _fieldBarCancel->move(right - _fieldBarCancel->width(), _field.y() - st::sendPadding - _fieldBarCancel->height()); _attachType->move(0, _attachDocument->y() - _attachType->height()); _emojiPan->moveBottom(_attachEmoji->y()); @@ -6475,7 +6483,7 @@ void HistoryWidget::updateFieldSize() { fieldWidth -= _attachEmoji->width(); if (kbShowShown) fieldWidth -= _botKeyboardShow->width(); if (_cmdStartShown) fieldWidth -= _botCommandStart->width(); - if (hasSilentToggle()) fieldWidth -= _silent.width(); + if (hasSilentToggle()) fieldWidth -= _silent->width(); if (_field.width() != fieldWidth) { _field.resize(fieldWidth, _field.height()); @@ -6497,7 +6505,7 @@ void HistoryWidget::clearInlineBot() { void HistoryWidget::inlineBotChanged() { bool isInlineBot = _inlineBot && (_inlineBot != LookingUpInlineBot); if (isInlineBot && !_inlineBotCancel) { - _inlineBotCancel = std_::make_unique<IconedButton>(this, st::inlineBotCancel); + _inlineBotCancel = std_::make_unique<Ui::IconButton>(this, st::historyInlineBotCancel); connect(_inlineBotCancel.get(), SIGNAL(clicked()), this, SLOT(onInlineBotCancel())); _inlineBotCancel->setGeometry(_send.geometry()); _attachEmoji->raise(); @@ -6543,7 +6551,7 @@ void HistoryWidget::updateFieldPlaceholder() { if (_inlineBot && _inlineBot != LookingUpInlineBot) { _field.setPlaceholder(_inlineBot->botInfo->inlinePlaceholder.mid(1), _inlineBot->username.size() + 2); } else { - _field.setPlaceholder(lang((_history && _history->isChannel() && !_history->isMegagroup()) ? (_silent.checked() ? lng_broadcast_silent_ph : lng_broadcast_ph) : lng_message_ph)); + _field.setPlaceholder(lang((_history && _history->isChannel() && !_history->isMegagroup()) ? (_silent->checked() ? lng_broadcast_silent_ph : lng_broadcast_ph) : lng_message_ph)); } _send.setText(lang(lng_send_button)); } @@ -6553,7 +6561,7 @@ void HistoryWidget::uploadImage(const QImage &img, PrepareMediaType type, FileLo if (!_history) return; App::wnd()->activateWindow(); - auto task = new FileLoadTask(img, type, FileLoadTo(_peer->id, _silent.checked(), replyToId()), confirm, source); + auto task = new FileLoadTask(img, type, FileLoadTo(_peer->id, _silent->checked(), replyToId()), confirm, source); if (withText) { _confirmWithTextId = task->fileid(); } @@ -6564,7 +6572,7 @@ void HistoryWidget::uploadFile(const QString &file, PrepareMediaType type, FileL if (!_history) return; App::wnd()->activateWindow(); - FileLoadTask *task = new FileLoadTask(file, type, FileLoadTo(_peer->id, _silent.checked(), replyToId()), confirm); + FileLoadTask *task = new FileLoadTask(file, type, FileLoadTo(_peer->id, _silent->checked(), replyToId()), confirm); if (withText) { _confirmWithTextId = task->fileid(); } @@ -6578,7 +6586,7 @@ void HistoryWidget::uploadFiles(const QStringList &files, PrepareMediaType type) App::wnd()->activateWindow(); - FileLoadTo to(_peer->id, _silent.checked(), replyToId()); + FileLoadTo to(_peer->id, _silent->checked(), replyToId()); TasksList tasks; tasks.reserve(files.size()); @@ -6594,7 +6602,7 @@ void HistoryWidget::uploadFileContent(const QByteArray &fileContent, PrepareMedi if (!_history) return; App::wnd()->activateWindow(); - _fileLoader.addTask(new FileLoadTask(fileContent, type, FileLoadTo(_peer->id, _silent.checked(), replyToId()))); + _fileLoader.addTask(new FileLoadTask(fileContent, type, FileLoadTo(_peer->id, _silent->checked(), replyToId()))); cancelReplyAfterMediaSend(lastForceReplyReplied()); } @@ -7017,13 +7025,13 @@ void HistoryWidget::updateControlsGeometry() { moveFieldControls(); if (_pinnedBar) { - if (_scroll.y() != st::replyHeight) { - _scroll.move(0, st::replyHeight); - _reportSpamPanel.move(0, st::replyHeight); + if (_scroll.y() != st::historyReplyHeight) { + _scroll.move(0, st::historyReplyHeight); + _reportSpamPanel.move(0, st::historyReplyHeight); _fieldAutocomplete->setBoundings(_scroll.geometry()); } _pinnedBar->cancel->move(width() - _pinnedBar->cancel->width(), 0); - _pinnedBar->shadow->setGeometry(0, st::replyHeight, width(), st::lineWidth); + _pinnedBar->shadow->setGeometry(0, st::historyReplyHeight, width(), st::lineWidth); } else if (_scroll.y() != 0) { _scroll.move(0, 0); _reportSpamPanel.move(0, 0); @@ -7114,14 +7122,14 @@ void HistoryWidget::updateListSize(bool initial, bool loadedDown, const ScrollCh newScrollHeight -= (_field.height() + 2 * st::sendPadding); } if (_editMsgId || replyToId() || readyToForward() || (_previewData && _previewData->pendingTill >= 0)) { - newScrollHeight -= st::replyHeight; + newScrollHeight -= st::historyReplyHeight; } if (_kbShown) { newScrollHeight -= _kbScroll.height(); } } if (_pinnedBar) { - newScrollHeight -= st::replyHeight; + newScrollHeight -= st::historyReplyHeight; } int wasScrollTop = _scroll.scrollTop(); bool wasAtBottom = wasScrollTop + 1 > _scroll.scrollTopMax(); @@ -7339,7 +7347,7 @@ void HistoryWidget::updateBotKeyboard(History *h, bool force) { if (_kbReplyTo && !_replyToId) { updateReplyToName(); _replyEditMsgText.setText(st::msgFont, textClean(_kbReplyTo->inReplyText()), _textDlgOptions); - _fieldBarCancel.show(); + _fieldBarCancel->show(); updateMouseTracking(); } } else { @@ -7354,7 +7362,7 @@ void HistoryWidget::updateBotKeyboard(History *h, bool force) { _kbShown = false; _kbReplyTo = 0; if (!readyToForward() && (!_previewData || _previewData->pendingTill < 0) && !_replyToId) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } } @@ -7370,7 +7378,7 @@ void HistoryWidget::updateBotKeyboard(History *h, bool force) { _kbShown = false; _kbReplyTo = 0; if (!readyToForward() && (!_previewData || _previewData->pendingTill < 0) && !_replyToId && !_editMsgId) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } } @@ -7414,8 +7422,8 @@ void HistoryWidget::updateToEndVisibility() { } void HistoryWidget::mousePressEvent(QMouseEvent *e) { - _replyForwardPressed = QRect(0, _field.y() - st::sendPadding - st::replyHeight, st::replySkip, st::replyHeight).contains(e->pos()); - if (_replyForwardPressed && !_fieldBarCancel.isHidden()) { + _replyForwardPressed = QRect(0, _field.y() - st::sendPadding - st::historyReplyHeight, st::historyReplySkip, st::historyReplyHeight).contains(e->pos()); + if (_replyForwardPressed && !_fieldBarCancel->isHidden()) { updateField(); } else if (_inRecord && cHasAudioCapture()) { emit audioCapture()->start(); @@ -7505,7 +7513,7 @@ void HistoryWidget::onInlineResultSend(InlineBots::Result *result, UserData *bot } bool channelPost = _peer->isChannel() && !_peer->isMegagroup(); bool showFromName = !channelPost || _peer->asChannel()->addsSignature(); - bool silentPost = channelPost && _silent.checked(); + bool silentPost = channelPost && _silent->checked(); if (channelPost) { flags |= MTPDmessage::Flag::f_views; flags |= MTPDmessage::Flag::f_post; @@ -7528,7 +7536,7 @@ void HistoryWidget::onInlineResultSend(InlineBots::Result *result, UserData *bot result->addToHistory(_history, flags, messageId, messageFromId, messageDate, messageViaBotId, replyToId()); _history->sendRequestId = MTP::send(MTPmessages_SendInlineBotResult(MTP_flags(sendFlags), _peer->input, MTP_int(replyToId()), MTP_long(randomId), MTP_long(result->getQueryId()), MTP_string(result->getId())), App::main()->rpcDone(&MainWidget::sentUpdatesReceived), App::main()->rpcFail(&MainWidget::sendMessageFail), 0, 0, _history->sendRequestId); - App::main()->finishForwarding(_history, _silent.checked()); + App::main()->finishForwarding(_history, _silent->checked()); cancelReply(lastKeyboardUsed); App::historyRegRandom(randomId, newId); @@ -7557,7 +7565,7 @@ void HistoryWidget::onInlineResultSend(InlineBots::Result *result, UserData *bot HistoryWidget::PinnedBar::PinnedBar(MsgId msgId, HistoryWidget *parent) : msgId(msgId) -, cancel(parent, st::replyCancel) +, cancel(parent, st::historyReplyCancel) , shadow(parent, st::shadowColor) { } @@ -7632,7 +7640,7 @@ bool HistoryWidget::pinnedMsgVisibilityUpdated() { result = true; if (_scroll.scrollTop() != unreadBarTop()) { - _scroll.scrollToY(_scroll.scrollTop() + st::replyHeight); + _scroll.scrollToY(_scroll.scrollTop() + st::historyReplyHeight); } } else if (_pinnedBar->msgId != pinnedMsgId) { _pinnedBar->msgId = pinnedMsgId; @@ -7648,7 +7656,7 @@ bool HistoryWidget::pinnedMsgVisibilityUpdated() { destroyPinnedBar(); result = true; if (_scroll.scrollTop() != unreadBarTop()) { - _scroll.scrollToY(_scroll.scrollTop() - st::replyHeight); + _scroll.scrollToY(_scroll.scrollTop() - st::historyReplyHeight); } resizeEvent(0); } @@ -7687,7 +7695,7 @@ bool HistoryWidget::sendExistingDocument(DocumentData *doc, const QString &capti } bool channelPost = _peer->isChannel() && !_peer->isMegagroup(); bool showFromName = !channelPost || _peer->asChannel()->addsSignature(); - bool silentPost = channelPost && _silent.checked(); + bool silentPost = channelPost && _silent->checked(); if (channelPost) { flags |= MTPDmessage::Flag::f_views; flags |= MTPDmessage::Flag::f_post; @@ -7701,7 +7709,7 @@ bool HistoryWidget::sendExistingDocument(DocumentData *doc, const QString &capti _history->addNewDocument(newId.msg, flags, 0, replyToId(), date(MTP_int(unixtime())), showFromName ? MTP::authedId() : 0, doc, caption, MTPnullMarkup); _history->sendRequestId = MTP::send(MTPmessages_SendMedia(MTP_flags(sendFlags), _peer->input, MTP_int(replyToId()), MTP_inputMediaDocument(mtpInput, MTP_string(caption)), MTP_long(randomId), MTPnullMarkup), App::main()->rpcDone(&MainWidget::sentUpdatesReceived), App::main()->rpcFail(&MainWidget::sendMessageFail), 0, 0, _history->sendRequestId); - App::main()->finishForwarding(_history, _silent.checked()); + App::main()->finishForwarding(_history, _silent->checked()); cancelReplyAfterMediaSend(lastKeyboardUsed); if (doc->sticker()) App::main()->incrementSticker(doc); @@ -7742,7 +7750,7 @@ void HistoryWidget::sendExistingPhoto(PhotoData *photo, const QString &caption) } bool channelPost = _peer->isChannel() && !_peer->isMegagroup(); bool showFromName = !channelPost || _peer->asChannel()->addsSignature(); - bool silentPost = channelPost && _silent.checked(); + bool silentPost = channelPost && _silent->checked(); if (channelPost) { flags |= MTPDmessage::Flag::f_views; flags |= MTPDmessage::Flag::f_post; @@ -7756,7 +7764,7 @@ void HistoryWidget::sendExistingPhoto(PhotoData *photo, const QString &caption) _history->addNewPhoto(newId.msg, flags, 0, replyToId(), date(MTP_int(unixtime())), showFromName ? MTP::authedId() : 0, photo, caption, MTPnullMarkup); _history->sendRequestId = MTP::send(MTPmessages_SendMedia(MTP_flags(sendFlags), _peer->input, MTP_int(replyToId()), MTP_inputMediaPhoto(MTP_inputPhoto(MTP_long(photo->id), MTP_long(photo->access)), MTP_string(caption)), MTP_long(randomId), MTPnullMarkup), App::main()->rpcDone(&MainWidget::sentUpdatesReceived), App::main()->rpcFail(&MainWidget::sendMessageFail), 0, 0, _history->sendRequestId); - App::main()->finishForwarding(_history, _silent.checked()); + App::main()->finishForwarding(_history, _silent->checked()); cancelReplyAfterMediaSend(lastKeyboardUsed); App::historyRegRandom(randomId, newId); @@ -7818,7 +7826,7 @@ void HistoryWidget::onReplyToMessage() { updateBotKeyboard(); - if (!_field.isHidden()) _fieldBarCancel.show(); + if (!_field.isHidden()) _fieldBarCancel->show(); updateMouseTracking(); updateReplyToName(); resizeEvent(0); @@ -7871,7 +7879,7 @@ void HistoryWidget::onEditMessage() { updateBotKeyboard(); - if (!_field.isHidden()) _fieldBarCancel.show(); + if (!_field.isHidden()) _fieldBarCancel->show(); updateFieldPlaceholder(); updateMouseTracking(); updateReplyToName(); @@ -7964,7 +7972,7 @@ bool HistoryWidget::cancelReply(bool lastKeyboardUsed) { _replyToId = 0; mouseMoveEvent(0); if (!readyToForward() && (!_previewData || _previewData->pendingTill < 0) && !_kbReplyTo) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } @@ -8026,7 +8034,7 @@ void HistoryWidget::cancelEdit() { mouseMoveEvent(nullptr); if (!readyToForward() && (!_previewData || _previewData->pendingTill < 0) && !replyToId()) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } @@ -8089,7 +8097,7 @@ void HistoryWidget::previewCancel() { _previewLinks.clear(); updatePreview(); if (!_editMsgId && !_replyToId && !readyToForward() && !_kbReplyTo) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } } @@ -8155,7 +8163,7 @@ void HistoryWidget::gotPreview(QString links, const MTPMessageMedia &result, mtp void HistoryWidget::updatePreview() { _previewTimer.stop(); if (_previewData && _previewData->pendingTill >= 0) { - _fieldBarCancel.show(); + _fieldBarCancel->show(); updateMouseTracking(); if (_previewData->pendingTill) { _previewTitle.setText(st::msgServiceNameFont, lang(lng_preview_loading), _textNameOptions); @@ -8199,7 +8207,7 @@ void HistoryWidget::updatePreview() { _previewDescription.setText(st::msgFont, textClean(desc), _textDlgOptions); } } else if (!readyToForward() && !replyToId() && !_editMsgId) { - _fieldBarCancel.hide(); + _fieldBarCancel->hide(); updateMouseTracking(); } resizeEvent(0); @@ -8461,7 +8469,7 @@ void HistoryWidget::updateReplyEditTexts(bool force) { updateBotKeyboard(); if (!_field.isHidden() || _recording) { - _fieldBarCancel.show(); + _fieldBarCancel->show(); updateMouseTracking(); } updateReplyToName(); @@ -8505,21 +8513,21 @@ void HistoryWidget::drawField(Painter &p, const QRect &rect) { if (!_editMsgId && drawMsgText && drawMsgText->author()->nameVersion > _replyToNameVersion) { updateReplyToName(); } - backy -= st::replyHeight; - backh += st::replyHeight; + backy -= st::historyReplyHeight; + backh += st::historyReplyHeight; } else if (hasForward) { App::main()->fillForwardingInfo(from, text, serviceColor, preview); - backy -= st::replyHeight; - backh += st::replyHeight; + backy -= st::historyReplyHeight; + backh += st::historyReplyHeight; } else if (_previewData && _previewData->pendingTill >= 0) { - backy -= st::replyHeight; - backh += st::replyHeight; + backy -= st::historyReplyHeight; + backh += st::historyReplyHeight; } bool drawPreview = (_previewData && _previewData->pendingTill >= 0) && !_replyForwardPressed; p.fillRect(0, backy, width(), backh, st::taMsgField.bgColor); if (_editMsgId || _replyToId || (!hasForward && _kbReplyTo)) { - int32 replyLeft = st::replySkip; - p.drawSprite(QPoint(st::replyIconPos.x(), backy + st::replyIconPos.y()), _editMsgId ? st::editIcon : st::replyIcon); + int32 replyLeft = st::historyReplySkip; + (_editMsgId ? st::historyEditIcon : st::historyReplyIcon).paint(p, st::historyReplyIconPosition + QPoint(0, backy), width()); if (!drawPreview) { if (drawMsgText) { if (drawMsgText->getMedia() && drawMsgText->getMedia()->hasReplyPreview()) { @@ -8530,23 +8538,23 @@ void HistoryWidget::drawField(Painter &p, const QRect &rect) { } replyLeft += st::msgReplyBarSize.height() + st::msgReplyBarSkip - st::msgReplyBarSize.width() - st::msgReplyBarPos.x(); } - p.setPen(st::replyColor); + p.setPen(st::historyReplyColor); if (_editMsgId) { paintEditHeader(p, rect, replyLeft, backy); } else { - _replyToName.drawElided(p, replyLeft, backy + st::msgReplyPadding.top(), width() - replyLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + _replyToName.drawElided(p, replyLeft, backy + st::msgReplyPadding.top(), width() - replyLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); } p.setPen((((drawMsgText->toHistoryMessage() && drawMsgText->toHistoryMessage()->emptyText()) || drawMsgText->serviceMsg()) ? st::msgInDateFg : st::msgColor)->p); - _replyEditMsgText.drawElided(p, replyLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - replyLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + _replyEditMsgText.drawElided(p, replyLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - replyLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); } else { p.setFont(st::msgDateFont->f); p.setPen(st::msgInDateFg->p); - p.drawText(replyLeft, backy + st::msgReplyPadding.top() + (st::msgReplyBarSize.height() - st::msgDateFont->height) / 2 + st::msgDateFont->ascent, st::msgDateFont->elided(lang(lng_profile_loading), width() - replyLeft - _fieldBarCancel.width() - st::msgReplyPadding.right())); + p.drawText(replyLeft, backy + st::msgReplyPadding.top() + (st::msgReplyBarSize.height() - st::msgDateFont->height) / 2 + st::msgDateFont->ascent, st::msgDateFont->elided(lang(lng_profile_loading), width() - replyLeft - _fieldBarCancel->width() - st::msgReplyPadding.right())); } } } else if (from && text) { - int32 forwardLeft = st::replySkip; - p.drawSprite(QPoint(st::replyIconPos.x(), backy + st::replyIconPos.y()), st::forwardIcon); + int forwardLeft = st::historyReplySkip; + st::historyForwardIcon.paint(p, st::historyReplyIconPosition + QPoint(0, backy), width()); if (!drawPreview) { if (!preview->isNull()) { QRect to(forwardLeft, backy + st::msgReplyPadding.top(), st::msgReplyBarSize.height(), st::msgReplyBarSize.height()); @@ -8558,15 +8566,15 @@ void HistoryWidget::drawField(Painter &p, const QRect &rect) { } forwardLeft += st::msgReplyBarSize.height() + st::msgReplyBarSkip - st::msgReplyBarSize.width() - st::msgReplyBarPos.x(); } - p.setPen(st::replyColor->p); - from->drawElided(p, forwardLeft, backy + st::msgReplyPadding.top(), width() - forwardLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + p.setPen(st::historyReplyColor->p); + from->drawElided(p, forwardLeft, backy + st::msgReplyPadding.top(), width() - forwardLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); p.setPen((serviceColor ? st::msgInDateFg : st::msgColor)->p); - text->drawElided(p, forwardLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - forwardLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + text->drawElided(p, forwardLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - forwardLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); } } if (drawPreview) { - int32 previewLeft = st::replySkip + st::webPageLeft; - p.fillRect(st::replySkip, backy + st::msgReplyPadding.top(), st::webPageBar, st::msgReplyBarSize.height(), st::msgInReplyBarColor->b); + int32 previewLeft = st::historyReplySkip + st::webPageLeft; + p.fillRect(st::historyReplySkip, backy + st::msgReplyPadding.top(), st::webPageBar, st::msgReplyBarSize.height(), st::msgInReplyBarColor->b); if ((_previewData->photo && !_previewData->photo->thumb->isNull()) || (_previewData->document && !_previewData->document->thumb->isNull())) { ImagePtr replyPreview = _previewData->photo ? _previewData->photo->makeReplyPreview() : _previewData->document->makeReplyPreview(); if (!replyPreview->isNull()) { @@ -8580,10 +8588,10 @@ void HistoryWidget::drawField(Painter &p, const QRect &rect) { } previewLeft += st::msgReplyBarSize.height() + st::msgReplyBarSkip - st::msgReplyBarSize.width() - st::msgReplyBarPos.x(); } - p.setPen(st::replyColor->p); - _previewTitle.drawElided(p, previewLeft, backy + st::msgReplyPadding.top(), width() - previewLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + p.setPen(st::historyReplyColor->p); + _previewTitle.drawElided(p, previewLeft, backy + st::msgReplyPadding.top(), width() - previewLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); p.setPen(st::msgColor->p); - _previewDescription.drawElided(p, previewLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - previewLeft - _fieldBarCancel.width() - st::msgReplyPadding.right()); + _previewDescription.drawElided(p, previewLeft, backy + st::msgReplyPadding.top() + st::msgServiceNameFont->height, width() - previewLeft - _fieldBarCancel->width() - st::msgReplyPadding.right()); } } @@ -8676,7 +8684,7 @@ void HistoryWidget::drawPinnedBar(Painter &p) { Text *from = 0, *text = 0; bool serviceColor = false, hasForward = readyToForward(); ImagePtr preview; - p.fillRect(0, 0, width(), st::replyHeight, st::taMsgField.bgColor); + p.fillRect(0, 0, width(), st::historyReplyHeight, st::taMsgField.bgColor); QRect rbar(rtlrect(st::msgReplyBarSkip + st::msgReplyBarPos.x(), st::msgReplyPadding.top() + st::msgReplyBarPos.y(), st::msgReplyBarSize.width(), st::msgReplyBarSize.height(), width())); p.fillRect(rbar, st::msgInReplyBarColor); @@ -8691,7 +8699,7 @@ void HistoryWidget::drawPinnedBar(Painter &p) { } left += st::msgReplyBarSize.height() + st::msgReplyBarSkip - st::msgReplyBarSize.width() - st::msgReplyBarPos.x(); } - p.setPen(st::replyColor); + p.setPen(st::historyReplyColor); p.setFont(st::msgServiceNameFont); p.drawText(left, st::msgReplyPadding.top() + st::msgServiceNameFont->ascent, lang(lng_pinned_message)); diff --git a/Telegram/SourceFiles/historywidget.h b/Telegram/SourceFiles/historywidget.h index d5a81ba86..87999b2bb 100644 --- a/Telegram/SourceFiles/historywidget.h +++ b/Telegram/SourceFiles/historywidget.h @@ -23,6 +23,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "localimageloader.h" #include "ui/effects/rect_shadow.h" #include "ui/widgets/tooltip.h" +#include "ui/buttons/icon_button.h" #include "history/history_common.h" #include "history/field_autocomplete.h" #include "window/section_widget.h" @@ -508,18 +509,27 @@ private: }; -class SilentToggle : public FlatCheckbox, public Ui::AbstractTooltipShower { +class SilentToggle : public Ui::IconButton, public Ui::AbstractTooltipShower { public: - SilentToggle(QWidget *parent); - void mouseMoveEvent(QMouseEvent *e) override; - void mouseReleaseEvent(QMouseEvent *e) override; - void leaveEvent(QEvent *e) override; + + void setChecked(bool checked); + bool checked() const { + return _checked; + } // AbstractTooltipShower interface QString tooltipText() const override; QPoint tooltipPos() const override; +protected: + void mouseMoveEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; + void leaveEvent(QEvent *e) override; + +private: + bool _checked = false; + }; EntitiesInText entitiesFromTextTags(const TextWithTags::Tags &tags); @@ -885,7 +895,7 @@ private: Text _replyEditMsgText; mutable SingleTimer _updateEditTimeLeftDisplay; - IconedButton _fieldBarCancel; + ChildWidget<Ui::IconButton> _fieldBarCancel; void updateReplyEditTexts(bool force = false); struct PinnedBar { @@ -895,7 +905,7 @@ private: MsgId msgId = 0; HistoryItem *msg = nullptr; Text text; - ChildWidget<IconedButton> cancel; + ChildWidget<Ui::IconButton> cancel; ChildWidget<Ui::PlainShadow> shadow; }; std_::unique_ptr<PinnedBar> _pinnedBar; @@ -1075,7 +1085,7 @@ private: UserData *_inlineBot = nullptr; QString _inlineBotUsername; mtpRequestId _inlineBotResolveRequestId = 0; - std_::unique_ptr<IconedButton> _inlineBotCancel; + std_::unique_ptr<Ui::IconButton> _inlineBotCancel; void inlineBotResolveDone(const MTPcontacts_ResolvedPeer &result); bool inlineBotResolveFail(QString name, const RPCError &error); @@ -1096,7 +1106,7 @@ private: ChildWidget<Ui::IconButton> _botKeyboardShow; ChildWidget<Ui::IconButton> _botKeyboardHide; ChildWidget<Ui::IconButton> _botCommandStart; - SilentToggle _silent; + ChildWidget<SilentToggle> _silent; bool _cmdStartShown = false; MessageField _field; Animation _a_record, _a_recording; diff --git a/Telegram/SourceFiles/intro/intro.style b/Telegram/SourceFiles/intro/intro.style index e56d5f7b7..a6d8e2077 100644 --- a/Telegram/SourceFiles/intro/intro.style +++ b/Telegram/SourceFiles/intro/intro.style @@ -25,20 +25,15 @@ introErrLabel: flatLabel(labelDefFlat) { font: introErrFont; align: align(center); } -introBackButton: IconButton { +introBackButton: IconButton(defaultIconButton) { width: 40px; height: 40px; - opacity: 0.71; - overOpacity: 1.; - icon: icon { { size(40px, 40px), #eeeeee }, { "title_previous", #969696, point(12px, 12px) }, }; iconPosition: point(0px, 0px); downIconPosition: point(0px, 0px); - - duration: 150; } introBackPosition: point(32px, 32px); diff --git a/Telegram/SourceFiles/intro/introsignup.cpp b/Telegram/SourceFiles/intro/introsignup.cpp index 74034244f..153e470a4 100644 --- a/Telegram/SourceFiles/intro/introsignup.cpp +++ b/Telegram/SourceFiles/intro/introsignup.cpp @@ -138,7 +138,7 @@ void IntroSignup::paintEvent(QPaintEvent *e) { } else { p.fillRect(phRect, st::newGroupPhotoBg); } - p.drawSpriteCenter(phRect, st::newGroupPhotoIcon); + st::newGroupPhotoIcon.paintInCenter(p, phRect); } else { p.drawPixmap(_phLeft, _phTop, _photoSmall); } diff --git a/Telegram/SourceFiles/overviewwidget.cpp b/Telegram/SourceFiles/overviewwidget.cpp index e75fd1d1d..4bf11a7b8 100644 --- a/Telegram/SourceFiles/overviewwidget.cpp +++ b/Telegram/SourceFiles/overviewwidget.cpp @@ -21,12 +21,14 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "stdafx.h" #include "styles/style_overview.h" +#include "styles/style_dialogs.h" #include "boxes/addcontactbox.h" #include "boxes/confirmbox.h" #include "boxes/photocropbox.h" #include "ui/filedialog.h" #include "ui/widgets/popup_menu.h" #include "ui/widgets/tooltip.h" +#include "ui/buttons/icon_button.h" #include "window/top_bar_widget.h" #include "window/chat_background.h" #include "lang.h" @@ -52,7 +54,7 @@ OverviewInner::OverviewInner(OverviewWidget *overview, ScrollArea *scroll, PeerD , _channel(peerToChannel(_peer->id)) , _rowWidth(st::msgMinWidth) , _search(this, st::dlgFilter, lang(lng_dlg_filter)) -, _cancelSearch(this, st::btnCancelSearch) +, _cancelSearch(this, st::dialogsCancelSearch) , _itemsToBeLoaded(LinksOverviewPerPage * 2) , _width(st::wndMinWidth) { subscribe(FileDownload::ImageLoaded(), [this] { update(); }); @@ -73,14 +75,14 @@ OverviewInner::OverviewInner(OverviewWidget *overview, ScrollArea *scroll, PeerD mediaOverviewUpdated(); setMouseTracking(true); - connect(&_cancelSearch, SIGNAL(clicked()), this, SLOT(onCancelSearch())); + connect(_cancelSearch, SIGNAL(clicked()), this, SLOT(onCancelSearch())); connect(&_search, SIGNAL(cancelled()), this, SLOT(onCancel())); connect(&_search, SIGNAL(changed()), this, SLOT(onSearchUpdate())); _searchTimer.setSingleShot(true); connect(&_searchTimer, SIGNAL(timeout()), this, SLOT(onSearchMessages())); - _cancelSearch.hide(); + _cancelSearch->hide(); if (_type == OverviewLinks || _type == OverviewFiles) { _search.show(); } else { @@ -1280,7 +1282,7 @@ int32 OverviewInner::resizeToWidth(int32 nwidth, int32 scrollTop, int32 minHeigh _rowsLeft = (_width - _rowWidth) / 2; _search.setGeometry(_rowsLeft, st::linksSearchMargin.top(), _rowWidth, _search.height()); - _cancelSearch.moveToLeft(_rowsLeft + _rowWidth - _cancelSearch.width(), _search.y()); + _cancelSearch->moveToLeft(_rowsLeft + _rowWidth - _cancelSearch->width(), _search.y()); if (_type == OverviewPhotos || _type == OverviewVideos) { for (int32 i = 0, l = _items.size(); i < l; ++i) { @@ -1341,7 +1343,7 @@ void OverviewInner::switchType(MediaOverviewType type) { _search.updatePlaceholder(); onSearchUpdate(); } - _cancelSearch.hide(); + _cancelSearch->hide(); resizeToWidth(_width, 0, _minHeight, true); } @@ -1470,9 +1472,9 @@ void OverviewInner::onSearchUpdate() { _searchQueries.clear(); _searchQuery = QString(); _searchResults.clear(); - _cancelSearch.hide(); - } else if (_cancelSearch.isHidden()) { - _cancelSearch.show(); + _cancelSearch->hide(); + } else if (_cancelSearch->isHidden()) { + _cancelSearch->show(); } if (changed) { @@ -1494,7 +1496,7 @@ void OverviewInner::onCancel() { bool OverviewInner::onCancelSearch() { if (_search.isHidden()) return false; bool clearing = !_search.text().isEmpty(); - _cancelSearch.hide(); + _cancelSearch->hide(); _search.clear(); _search.updatePlaceholder(); onSearchUpdate(); diff --git a/Telegram/SourceFiles/overviewwidget.h b/Telegram/SourceFiles/overviewwidget.h index abd092a8d..32a7c7e47 100644 --- a/Telegram/SourceFiles/overviewwidget.h +++ b/Telegram/SourceFiles/overviewwidget.h @@ -34,6 +34,7 @@ class Date; namespace Ui { class PlainShadow; class PopupMenu; +class IconButton; } // namespace Ui class OverviewWidget; @@ -179,7 +180,7 @@ private: int32 setLayoutItem(int32 index, Overview::Layout::AbstractItem *item, int32 top); FlatInput _search; - IconedButton _cancelSearch; + ChildWidget<Ui::IconButton> _cancelSearch; QVector<MsgId> _results; int32 _itemsToBeLoaded; diff --git a/Telegram/SourceFiles/settings/settings.style b/Telegram/SourceFiles/settings/settings.style index e7f9881cb..7e3d6c00a 100644 --- a/Telegram/SourceFiles/settings/settings.style +++ b/Telegram/SourceFiles/settings/settings.style @@ -33,18 +33,16 @@ settingsFixedBarFont: font(14px semibold); settingsFixedBarFg: windowTextFg; settingsFixedBarTextLeft: 20px; settingsFixedBarTextTop: 16px; -settingsFixedBarClose: IconButton { +settingsFixedBarClose: IconButton(defaultIconButton) { width: settingsFixedBarHeight; height: settingsFixedBarHeight; opacity: 0.31; overOpacity: 0.5; - icon: icon {{ "settings_close", #000000, point(0px, 0px) }}; + icon: boxCancelIcon; iconPosition: point(20px, 20px); downIconPosition: point(20px, 20px); - - duration: 200; } settingsFixedBarShadowBg1: #00000021; settingsFixedBarShadowBg2: #0000000b; diff --git a/Telegram/SourceFiles/stickers/emoji_pan.cpp b/Telegram/SourceFiles/stickers/emoji_pan.cpp index ffa997456..c3475d53c 100644 --- a/Telegram/SourceFiles/stickers/emoji_pan.cpp +++ b/Telegram/SourceFiles/stickers/emoji_pan.cpp @@ -2427,14 +2427,14 @@ EmojiPanel::EmojiPanel(QWidget *parent, const QString &text, uint64 setId, bool , _setId(setId) , _special(special) , _deleteVisible(false) -, _delete(special ? 0 : new IconedButton(this, st::simpleClose)) { // Stickers::NoneSetId if in emoji +, _delete(special ? 0 : new Ui::IconButton(this, st::hashtagClose)) { // Stickers::NoneSetId if in emoji resize(st::emojiPanWidth, st::emojiPanHeader); setMouseTracking(true); setFocusPolicy(Qt::NoFocus); setText(text); if (_delete) { _delete->hide(); - _delete->moveToRight(st::emojiPanHeaderLeft - ((_delete->width() - st::simpleClose.icon.pxWidth()) / 2), (st::emojiPanHeader - _delete->height()) / 2, width()); + _delete->moveToRight(st::emojiPanHeaderLeft - ((_delete->width() - st::hashtagClose.icon.width()) / 2), (st::emojiPanHeader - _delete->height()) / 2, width()); connect(_delete, SIGNAL(clicked()), this, SLOT(onDelete())); } } @@ -2452,7 +2452,7 @@ void EmojiPanel::updateText() { int32 availw = st::emojiPanWidth - st::emojiPanHeaderLeft * 2; if (_deleteVisible) { if (!_special && _setId != Stickers::NoneSetId) { - availw -= st::simpleClose.icon.pxWidth() + st::emojiPanHeaderLeft; + availw -= st::hashtagClose.icon.width() + st::emojiPanHeaderLeft; } } else { auto switchText = ([this]() { diff --git a/Telegram/SourceFiles/stickers/emoji_pan.h b/Telegram/SourceFiles/stickers/emoji_pan.h index 3beab8728..7545ae805 100644 --- a/Telegram/SourceFiles/stickers/emoji_pan.h +++ b/Telegram/SourceFiles/stickers/emoji_pan.h @@ -459,7 +459,7 @@ private: QString _text, _fullText; uint64 _setId; bool _special, _deleteVisible; - IconedButton *_delete; + Ui::IconButton *_delete; }; diff --git a/Telegram/SourceFiles/stickers/stickers.style b/Telegram/SourceFiles/stickers/stickers.style index 4eea840ee..f5d08bb54 100644 --- a/Telegram/SourceFiles/stickers/stickers.style +++ b/Telegram/SourceFiles/stickers/stickers.style @@ -162,3 +162,12 @@ stickerIconMove: 400; stickerPreviewDuration: 150; stickerPreviewBg: #FFFFFFB0; stickerPreviewMin: 0.1; + +hashtagClose: IconButton(defaultIconButton) { + width: 30px; + height: 30px; + + icon: simpleCloseIcon; + iconPosition: point(10px, 10px); + downIconPosition: point(10px, 11px); +} diff --git a/Telegram/SourceFiles/ui/buttons/icon_button.cpp b/Telegram/SourceFiles/ui/buttons/icon_button.cpp index 2a562d289..9720e0288 100644 --- a/Telegram/SourceFiles/ui/buttons/icon_button.cpp +++ b/Telegram/SourceFiles/ui/buttons/icon_button.cpp @@ -40,8 +40,12 @@ void IconButton::paintEvent(QPaintEvent *e) { auto over = _a_over.current(getms(), (_state & StateOver) ? 1. : 0.); p.setOpacity(over * _st.overOpacity + (1. - over) * _st.opacity); + auto icon = (_iconOverride ? _iconOverride : &_st.icon); auto position = (_state & StateDown) ? _st.downIconPosition : _st.iconPosition; - (_iconOverride ? _iconOverride : &_st.icon)->paint(p, position, width()); + if (position.x() < 0) { + position.setX((width() - icon->width()) / 2); + } + icon->paint(p, position, width()); } void IconButton::onStateChanged(int oldState, ButtonStateChangeSource source) { diff --git a/Telegram/SourceFiles/ui/widgets/widgets.style b/Telegram/SourceFiles/ui/widgets/widgets.style index 959c7cc75..48c61dd98 100644 --- a/Telegram/SourceFiles/ui/widgets/widgets.style +++ b/Telegram/SourceFiles/ui/widgets/widgets.style @@ -167,6 +167,12 @@ defaultLabelSimple: LabelSimple { textFg: windowTextFg; } +defaultIconButton: IconButton { + opacity: 0.78; + overOpacity: 1.; + duration: 150; +} + widgetSlideDuration: 200; widgetFadeDuration: 200; diff --git a/Telegram/SourceFiles/window/notifications_manager_default.h b/Telegram/SourceFiles/window/notifications_manager_default.h index 490bad48b..a4ba92062 100644 --- a/Telegram/SourceFiles/window/notifications_manager_default.h +++ b/Telegram/SourceFiles/window/notifications_manager_default.h @@ -244,7 +244,7 @@ private: PeerData *_author; HistoryItem *_item; int _forwardedCount; - ChildWidget<IconedButton> _close; + ChildWidget<Ui::IconButton> _close; ChildWidget<BoxButton> _reply; ChildWidget<Background> _background = { nullptr }; ChildWidget<InputArea> _replyArea = { nullptr }; diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style index a7da80f3b..7f7cb09b2 100644 --- a/Telegram/SourceFiles/window/window.style +++ b/Telegram/SourceFiles/window/window.style @@ -37,7 +37,13 @@ notifyPhotoSize: 62px; notifyMacPhotoSize: 64px; notifyPhotoPos: point(9px, 9px); notifyClosePos: point(1px, 2px); -notifyClose: iconedButton(simpleClose) { +notifyClose: IconButton(defaultIconButton) { + width: 30px; + height: 30px; + + icon: simpleCloseIcon; + iconPosition: point(10px, 10px); + downIconPosition: point(10px, 11px); } notifyItemTop: 12px; notifyTextLeft: 12px; @@ -64,16 +70,11 @@ notifyReplyArea: InputArea(defaultInputArea) { borderActive: 0px; borderError: 0px; } -notifySendReply: IconButton { +notifySendReply: IconButton(defaultIconButton) { width: 36px; height: 36px; - opacity: 0.78; - overOpacity: 1.; - icon: icon {{ "notification_send", windowActiveBg, point(3px, 9px) }}; iconPosition: point(0px, 0px); downIconPosition: point(0px, 1px); - - duration: notifyFastAnim; }