From 19f4e50e3399638c1f25c290f8a23858fece9f39 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 7 Nov 2016 19:08:24 +0300 Subject: [PATCH] New compose area icons. --- Telegram/Resources/basic.style | 26 --- Telegram/Resources/colors.palette | 6 +- Telegram/Resources/icons/media_type_file.png | Bin 417 -> 203 bytes .../Resources/icons/media_type_file@2x.png | Bin 829 -> 337 bytes Telegram/Resources/icons/media_type_link.png | Bin 450 -> 0 bytes .../Resources/icons/media_type_link@2x.png | Bin 884 -> 0 bytes Telegram/Resources/icons/media_type_photo.png | Bin 451 -> 406 bytes .../Resources/icons/media_type_photo@2x.png | Bin 918 -> 841 bytes Telegram/Resources/icons/media_type_song.png | Bin 577 -> 0 bytes .../Resources/icons/media_type_song@2x.png | Bin 1050 -> 0 bytes Telegram/Resources/icons/media_type_video.png | Bin 302 -> 0 bytes .../Resources/icons/media_type_video@2x.png | Bin 605 -> 0 bytes Telegram/Resources/icons/media_type_voice.png | Bin 421 -> 0 bytes .../Resources/icons/media_type_voice@2x.png | Bin 779 -> 0 bytes .../Resources/icons/send_control_attach.png | Bin 0 -> 919 bytes .../icons/send_control_attach@2x.png | Bin 0 -> 1869 bytes .../icons/send_control_bot_command.png | Bin 400 -> 401 bytes .../icons/send_control_bot_command@2x.png | Bin 904 -> 706 bytes .../icons/send_control_bot_keyboard.png | Bin 308 -> 320 bytes .../icons/send_control_bot_keyboard@2x.png | Bin 643 -> 546 bytes .../icons/send_control_bot_keyboard_hide.png | Bin 160 -> 342 bytes .../send_control_bot_keyboard_hide@2x.png | Bin 263 -> 669 bytes .../Resources/icons/send_control_emoji.png | Bin 227 -> 438 bytes .../Resources/icons/send_control_emoji@2x.png | Bin 360 -> 747 bytes .../Resources/icons/send_control_record.png | Bin 408 -> 517 bytes .../icons/send_control_record@2x.png | Bin 680 -> 905 bytes .../Resources/icons/send_control_send.png | Bin 0 -> 598 bytes .../Resources/icons/send_control_send@2x.png | Bin 0 -> 1249 bytes Telegram/Resources/sample.tdesktop-theme | 6 +- Telegram/SourceFiles/dialogs/dialogs.style | 5 +- .../history/field_autocomplete.cpp | 2 +- Telegram/SourceFiles/history/history.style | 94 ++++++----- Telegram/SourceFiles/historywidget.cpp | 155 ++++++++---------- Telegram/SourceFiles/historywidget.h | 5 +- Telegram/SourceFiles/mainwidget.cpp | 15 +- .../settings/settings_scale_widget.cpp | 21 ++- .../settings/settings_scale_widget.h | 3 + .../ui/buttons/history_down_button.cpp | 2 +- Telegram/SourceFiles/ui/widgets/widgets.style | 2 +- 39 files changed, 168 insertions(+), 174 deletions(-) delete mode 100644 Telegram/Resources/icons/media_type_link.png delete mode 100644 Telegram/Resources/icons/media_type_link@2x.png delete mode 100644 Telegram/Resources/icons/media_type_song.png delete mode 100644 Telegram/Resources/icons/media_type_song@2x.png delete mode 100644 Telegram/Resources/icons/media_type_video.png delete mode 100644 Telegram/Resources/icons/media_type_video@2x.png delete mode 100644 Telegram/Resources/icons/media_type_voice.png delete mode 100644 Telegram/Resources/icons/media_type_voice@2x.png create mode 100644 Telegram/Resources/icons/send_control_attach.png create mode 100644 Telegram/Resources/icons/send_control_attach@2x.png create mode 100644 Telegram/Resources/icons/send_control_send.png create mode 100644 Telegram/Resources/icons/send_control_send@2x.png diff --git a/Telegram/Resources/basic.style b/Telegram/Resources/basic.style index 0e8d430329..58331cba58 100644 --- a/Telegram/Resources/basic.style +++ b/Telegram/Resources/basic.style @@ -680,32 +680,6 @@ msgWaveformOutActiveSelected: #6badad; msgWaveformOutInactive: #b3e2b4; msgWaveformOutInactiveSelected: #91c3c3; -sendPadding: 9px; -btnSend: flatButton { - duration: 200; - cursor: cursor(pointer); - - color: btnYesColor; - overColor: btnYesHover; - - bgColor: historySendBg; - overBgColor: historySendBgOver; - - width: -32px; - height: 46px; - - textTop: 12px; - overTextTop: 12px; - downTextTop: 13px; - - font: font(16px); - overFont: font(16px); -} -btnUnblock: flatButton(btnSend) { - color: #d15948; - overColor: #d15948; -} - historyScroll: flatScroll(scrollDef) { barColor: #89a0b47a; bgColor: #89a0b44c; diff --git a/Telegram/Resources/colors.palette b/Telegram/Resources/colors.palette index ac980b21ea..c102bf3ef1 100644 --- a/Telegram/Resources/colors.palette +++ b/Telegram/Resources/colors.palette @@ -169,13 +169,15 @@ emojiPanHeaderBg: #fffffff2 | emojiPanBg; historyComposeAreaBg: windowBg; historyComposeIconFg: menuIconFg; historyComposeIconFgOver: menuIconFgOver; +historySendIconFg: windowActiveBg; +historySendIconFgOver: windowActiveBg; historyPinnedBg: historyComposeAreaBg; historyReplyBg: historyComposeAreaBg; historyReplyCancelIconFg: cancelIconFg; historyReplyCancelIconFgOver: cancelIconFgOver; -historySendBg: historyComposeAreaBg; -historySendBgOver: #f5f5f5 | historySendBg; +historyComposeButtonBg: historyComposeAreaBg; +historyComposeButtonBgOver: #f5f5f5; historyTextInFg: windowTextFg; historyTextOutFg: windowTextFg; diff --git a/Telegram/Resources/icons/media_type_file.png b/Telegram/Resources/icons/media_type_file.png index dcc7996f18dc53f58420a1d783a6fa4e66cf5d75..37c310a39eafcf5739d0fc40abd996aebb7e91cf 100644 GIT binary patch delta 176 zcmV;h08js+1Iq!BBYyyrNkl&eT11BeLB3?#pns=5)jWoEoeN{J+?s_f67)PBK}5W)yD4geTI z=70fY9&jS}fF9}h-tJy&+m8O>|HDaMzyj_Awbtp&%vW{mOh eRBTwE{zX3jWX5fZU1uBs0000X01J_T zg^0*KB}0MkwY^zp`p_1>Klw@W0sw_CuAe7|LI{v^1`z>O1!jgABOu~*zutM?@3-0# z5oKn7ueIv3Ed815@RX8+LJ0mH5fA?m@xH*eZ60+87_y5o-hUHl;bs954MK>hBBHg{ z>jFI-5w(=!zNeI?HeM14Aq;T4)KZGpT2)nb+crNFW4tD?EQ^YWs;aK*dVpKhL^ODw zbN*YPg@Hs3(Vl=D>M7Ww)PQ`0)S`OT6PdXME7;y_fvRpU%Ri( za1gLf=CRfF8Grm!hNl^rpR>k#0H0s-tg+fEGW)C~Kfp(UzV>^#**6Q~l7NA1nEewz z3iOp=W8oqEC@||xW_FL;OTGx7XV7*cA`bAbk?slDNU%ydE6>LQMC7nq>tQrMfY1AY mh&&Us%tpf9=VdD2TEC@Ft#T6mn$`dS002ovPDHLkU;%>O5xKAc diff --git a/Telegram/Resources/icons/media_type_file@2x.png b/Telegram/Resources/icons/media_type_file@2x.png index 7df85a0b287bf745d68e7bf673d8fd103a47fa6c..c1e9fa77361b3924acc0b48672adcac4c86f56ae 100644 GIT binary patch delta 311 zcmV-70m%Nn2GIhLBYy!HNkl-ygZGU8dM2NhA1c>|qVgwI> z5Wxo^Lhu3z5d45h#5n-(5Yd2r-?IT;Awu(ikg3Nm^!<bS?|YJEzNzcFLv!9sb6J)+jw8v%{*$b= zsI`v&EAd3MZ7_?@x#Ww_^Ne*}A6*{RQ*qUP|0{I%1i;Em<*lxGh->=szTrL-QJRSf5u-Rf4rEDF=++(;N5+G3Vvvz^TFMXk_n)|`)r1VSXGskQlYK( zEdpGpRCw2ByiEr38_TksvY7|(o|1^K+ZzR*2$yyjqJO|sqBHdIq308j^cVTusW2|=R-MF*G1OXH1G@V+MPSI*2gfFh2@AH2_Bq>PRW*zfn2qrUG~!Ka)Il7QWAXTiHU_($O5DO6RJ7v5KWE=@xK zK&8}D_;~CRhdu^5!XFi*^2pHGnzL$fg z#Tn(Xr9mKq|Nbow4TB_=Wx5-tS58VCVxdEMIcla4i^u1eNd{;M4cue_DJh4 z##ArVs|C0h^r9#x9cG4)3jhEs4W^#Te*u14fcwd(ZCmfL?}HD$^<)(Q@LJPrtx-ye zLI^C&5~Y+c3wG_dfusV8q9A|c%?wWyFrt diff --git a/Telegram/Resources/icons/media_type_link.png b/Telegram/Resources/icons/media_type_link.png deleted file mode 100644 index 02b47d0e929ba9d5a1c580deb45ace071d8d7240..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)0h_?j&wTh=lu)-0ISssilRgZ0D#?Y2VK`6eA0~)q)aA5rBaD>U8h_wN1CQlu~_tY z4u=C(DivBR7U5=~sw%qOE;gGD!s>iJqgt){KaniU7z_qr=FpAZx?ZnnHk;1@*=!cu z?e?w4ZZR_&jfNK>%Q9@+{-8G#b{j&7+jZ|Hgz$Ko8Ld|9dC=UUVP=d*BbcV?8#Kc( z?q?jwLA_poo#bAx2WG~2JVrjB50&H_;B-2{vMm2yG?`3LE|>qbDh$KGe!qthBFIbb siH9ylQJ|`7pfB_;dRO23Wqu9d7yh^SlD{7Q)c^nh07*qoM6N<$f}^g=9{>OV diff --git a/Telegram/Resources/icons/media_type_link@2x.png b/Telegram/Resources/icons/media_type_link@2x.png deleted file mode 100644 index d10338d6efad695176ca3a6dcb121f6e5b3cc9a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmV-)1B?8LP)7{=f8-B0jBK~Z5Pcnc${_L{YTNujT+FBO`Qpct|ZREtdFk`3VgV57X)CDM^xK+KbyB=<*40~{|LQPFgw7(9j0K92oVSzR_Hb@WzP51w;W*Ej8b$54DS63HFl0+RH9hx@m z^z<}291aQwgQTiz`8CMGKQz6)z2x!68a$#j<1*uf3Dxp8?{{9{wkHFG(gPb3lnW2{n-djBvpGox#PLZN{3^K&dMEn$3o9B#K8Hk<9o z#Y9oW{QP`H-(s4!~P=0N$zt@YX-s1w;Ekf^p~o0000< KMNUMnLSTX%4xb7D diff --git a/Telegram/Resources/icons/media_type_photo.png b/Telegram/Resources/icons/media_type_photo.png index 520c9b5d861ae86af97ebaebf144f0681a59f352..1bda90336ab7e0004964806f704b267a50b489b6 100644 GIT binary patch delta 379 zcmV->0fhd;1C|4jB!68=L_t(YiOrR7io!4u#ozRk%_(F+>>+G=0x8}=@CHJ}L;0t8 z3!zZ(6h`mh+YhbbCKGz^Um7;i>2zYA=Z}Cc%y07E*8r(0?0>dfMFc>@E?TeGNYfN? z93zfnSZlG}ZX3f0AXx5vKEIYK!X!yJ91bZW1VHCpFb`kP;F(sd6#;NC81Qg7)bmwU zQB?_mMNzZ|j7B3yQFLd1Q(2Z25n5~81A4t4lO%b%Mv|&ZW6Vpyw};FQx+_>gnx+&H zR#o+|w%_k5B6Q5Mto;^kHX8z71+ER8^^}b(=1i%V1t( z07(`_L2E6IF*L?7%d+5~e+B&BRdGI_J2Us*-+dDR^E~h5Mm-*n9FND3Tl6md{hRz# ZeE^y#dZVNT0;d1~002ovPDHLkV1kJ5tN;K2 delta 425 zcmV;a0apH&1H%K5B!7xYL_t(YiQScCvs;j>aov8$9)Pcy#i-@=^`DSsuk)_)!7lGd71N}`YO z?+|p^SXC9b+b!qwIio0|l#*GNb%Hnnd7g7L8W8}4AmD5^d-Qj?T+$fxKA@^920=jI z_jx!R9_!cZm8;c?0Jz)j-Un@Koms`!|)9*=)`-_;5*#&EG%5CD@TVVb7Q^PKzro}TAX2*Eth+alcWplKSe*XtiMCJaMo zI7tpjcKUEGmkWxbKwZ~};}}VjKnUSH*BS7xKFYG}Eh4-uOY}aj2l&;W{{PS?xkgx( TESfz600000NkvXXu0mjfGbYLO diff --git a/Telegram/Resources/icons/media_type_photo@2x.png b/Telegram/Resources/icons/media_type_photo@2x.png index e2a1fa4dfff7cd63b315ef1f94a4d8b843dc912d..87a72b39e08d058416ab2cf75e355c8f704db5c4 100644 GIT binary patch delta 818 zcmV-21I_%F2gwGIB!3V|L_t(&f$f-2ODbO+#=oPWt6o4Vqit&T%_a$Y1ran>2nx+E z5NhQsXyc|AQ4LB$q^+YD(57WAO2|#S5S_}QrspnxzZveiXT+JKIC`%S95@d1obU6I z^N*2;2sFcrgdJd1%>lyJ93X6s1)y9m6M#UiTrQ8JG!gx`jeiO^UDqL^pPwJ>@9&RP z`~N0x-rCy2_xHCD004Y_ePMHRGaP`8jSYN$ehPxsc zQDvGYuCK45D2hJ-MN!b{bi&Tfsnh8Uf?yvs8jY~C4pg(*2#VjO(VlF$g-?)mL#G- z7KNy4wHgwM#L#^^nM|TyuM5}l7;`iL+qQ9Va1i(aDwRsGZ99Abukg`m6xnPRx~@al zb*!zeAsUT(LWBxXtJT;&S&~pJ7SV3Exp!Y)UXah{xqkpbr_ZMXCSe7+;fYZ}c##byBeS3FzcNwo?7?TIs-ri>Byw|iDq*kkiNF?I=bGh8) z0c2TrJ=tv5x6hHPs;)ni$p`}oA7rnuuWo;3WhJm*Q54Uyg6iMBN-Qoey8Xw;$H4xF zhX=QxNPi?mV~7K&s_ORd?(V4FZu|B=KR?s`{k`W{A`)7}=jZ2)FQ3o*_G+5Oc&pW_ z@FErl==b|bCX|)=1I@c=ZdAw73BjMFB~YM0jBq#yzH{rhoAG_!tQx$fHiDgQjU> zp-_nJq34K~kjZ4w^E@u&{Zy@1QIe#=16*8O2shtVrBWFzz~0{8z|12e20_5`I7J({ zySvN%%tw*yy12Qy86O~@&!c5o12@R4TCIk;TrLbyEEX{cf~37gmhbzR&1OFVhT)t4 zSEgwq0H6c_=zse@jE#-KFzN2@4rXR%Kn4Ke<{uv);pXNB9v&V50AO}@78Vy5A)QVO zt1&Y2*+dAtt*57_xV*gl?Tk?@7KN=N?RNX~H^3{`b#ZldHS*NAy}ivnB?|+vZ5t;i zC;J*rr_-n?O5e{kP2*}wga8miaBglcWNcz$0u94J*MD{CILC3YTCHL#l?sh56bk73 zesTc&`}?t0YtQqrR4RpXPEJmkYI6g)u8XoPQzNBPDbix-`+jI8O{G%U>2zY(=LR@D zJftRMSw_ckBIh<5jnG{%3?p{^E&%h6?CR=@#_Q|rpsH%*+@+-@&@_#nUteFd+F;*O z-rnBQczh*f$+_SSYczSxG=NlUvtTq6E zaT+CrgxUm6(<1dZp67*H4^>r}Hd8`Y;-jOZFMs__v)TN1yk%Las%j|5G)<=3LI8pw z_|h84vW&W}qiLGhZnx34Z8Qu6%jNQyhOS&LGuIZ@jS@mIpU=mA6@oiEJIsxoPyocg z{f(~cq2B1bV{~*BE0qd&O`!l?*|v?kuJ_#^sH%zw2M3`xn@3#$=>vdk8tbQ*mltpx z2Y3JgG))t}@4mmkhw15Q7#P5y)dlz&e{j6Mz9#J>w%*_00pJ6m(P$)UhDFV0lg60M zW{2wCC?NzhnN0ZYbS{^}TCK*kKmA`Kgy8x4d8i$cx)j5zpD_y!vwi`R)-OQP`U84w V0SQqC{5}8x002ovPDHLkV1i`@t!4lK diff --git a/Telegram/Resources/icons/media_type_song.png b/Telegram/Resources/icons/media_type_song.png deleted file mode 100644 index da6d751ab71632b4c77fc09038ed505417e14d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 577 zcmV-H0>1r;P)35QMwu_WS*9fYa$j zp-@0H8bv4+f+R_gKJH3nw35jry{qYTN;hAy-|wHgz!Mrbyh==FLSjYgQy=h*FbIG@jkeyjC6 z_8~wjmBMT`d&GJr%Oj>|`|&h@G4^i(@900kP?yW)Yya{z{VBWM4p9_wI2<5~;_m?j zK|rZgLN1qsEX!B*n}Fl-Xd2G*JO+aSJRZ+Y&tCwJ;~+^APNx$Bfq*HX(P-Qaw^%+~ zOpGzg=kwI>_YKFc%jLQn=Yc@LbX<44T>=2A)oOQ*MgUosO#$(EoRH0CO^sf!*YHy+ zm&-TL6pO`A-(s;a1<0~&2w;p+CX=C7t3~Venx@k!RjXABhr{2#$z*ajyi%zchW`W! zf6G%=#k7TLLr=w>(V=e*=}!3Vw@Ip=#mkIbCGIsO7b@Q0maSVYAub zcDupzJpR)Cb#rBb-Py+xr=_%JS;&6b^CQ-NeMiSzSw9334&6h$Nw38d5MPhrbZY18;Nfn+j? zv$HdZqKIfTidZa$TrQ{j2B4b2)zuYtcXzSBzmJQH3nY`tn(S7p2?T>dY;0_()vjt( z+eTkrUeszOiGSufP>H&L*3<>GrY@j0bpfrZ3usMUpjJFRJ(c}j^PiM|^Y(_%Y&Ju$ z*Q24K0oiO8cDudo_#Y#{vMk2N#xOZK2|*C5o~OA0MNycTn83oq0yvJ7JYRExm6a6) z0s-0cCEvuAUNFf)X?Q^9F7*8TtY}dH7#<$R^z^jiK3`r!EX#u9IJC61pja$|Wm%-t zX~m0D6os|5HN|~snl3Nk@pv#kK8~TGAyrRPO8b`{*2(4m{{EwY(P+f{{5<@AzvAX! zF*rD=N}s*Gy>|hg=W%j!^1mm8YEbDtr&Lx~S6^>pgTa7AB2km@0IB#lx*e;V>B(82H>LlgX$eV6|E$3%r%hW+O{WOC%bN zl1wH;9v&V@DwQG!2M1(kW`=Zjc7FWUODi6aD-OT4wIw@zY0)%ISe7MLtCcVeQ#o{L z&Cbp$7BCu(stCv`gTbIEd~a{BcHv(O#Ow7+4xY>9h#&}Bhkq3SKzu$Qspfvj=ksK7 zaglHwr*&`wfPDC?fljAGe}6wlMn>RpIAF0@001{PH;6`~*xA{ED2hm>QurzS1`6oC U<~Pwf_W%F@07*qoM6N<$f+No4z5oCK diff --git a/Telegram/Resources/icons/media_type_video.png b/Telegram/Resources/icons/media_type_video.png deleted file mode 100644 index 48a8321e1d0aa758513fb7613f6c2f572948bc32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 302 zcmV+}0nz@6P)Nkla)73B+@F0Bb?pcmokHV`Jd~#3rc}HSnicc39bAm?0zVF7wLw zlK0>zFEIcRPQ=HV=I?-qU^2##Wf?rrdwTOUO~~^cobvB01wlYf)BMnc5M=5eqGeg=x(=p!+e$mY zw(Yz6-|xZi50FwqDRo}Jx~_<#2yNTmUhvAIm1TM0rIfE}^7p4ANfO$&?W!4!F-p@E zj^jK%o_U_ZIY(7h2R;l#aLzFd0}Q;s%zqzn0iYY=%GmNK8vp4HM%7gw79xWwMsHR(Q@@s(MpV+M<(AkVbYgBup)W^B08+RFK8zTwl#!`#mw zSiURW*Zz1j^Lf^`R_^!Q?+$M6Wp?<`UAfryKzSnL7C3sy=nyD!CCjv9QAdErmr3^9 za;4i67u?NrzHD+nZuw}uP2TXj0c-Ugw!$n%(eE+>$@7(jx-N*l)s@t#L>GJ5^hqYm^=gZaG&5z&qJT>QZsr)s_5VNp)zv{kz+q#A%gT@{kYWXn4i_bfUbhJCZo9_Qvr~ORfBN>Zy^4YvZ!a7vFzB lIIu71QY-6)HW+%w|4)6LJKNKD{J>|N{7SsR$ diff --git a/Telegram/Resources/icons/media_type_voice.png b/Telegram/Resources/icons/media_type_voice.png deleted file mode 100644 index 66deec6dd67f4055196bcbbfdd554693ed143e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmV;W0b2fvP)^95p zfobl!_a23rb3{Z~I$CRzB%!Wr>bfRL613Kfb6;n^!F65Qw&fme+v2+J_XYAie^@>s z&+|or)u1wk^Z6`Fsi)lKa*_3VJvT0k0x(OKW5n6ad6p`}QK>>6L!^ z2b<02ZGkB~2y|U1+wE3%yPb%LoKC07;ei`^yRKUnI3AB8BC_A_MMUIqI7|u*+|WDB z-s8rc!Y~A&D2lNb1Oe9C(d4YP1VJ$JMNt3{hT&^&T2&PQQ54;p)9FO? zJDm>EHw*)UAV?IV34#C&!+4vU){Z05z;3rA`orOn=pT>ANFix33AUPs^eiE*+l7qc@*C!S8Hkuf~aqps_T z#p}9`JkLksr_*WVLZzuKl>t>%iR9Po6`Rdw>{v;XaJgLK;c)mFe>fa)xm=#cbP-h^JO60|W zi0FAD`5kdaq3jEWA>gsA)U0s#S%S(B9 zc#xx`Bbl0-lET8mPjmRm7a1AJ^71lo>-P4Rs}k9X_9r zqN1Xo3H}e?-riPj9U2-+SXkJ*`0nm*0OscAz86GCN3*rH1;EzU7HYK`5uvB22fN+Q z$;k=*{r!G9adB}xJUrlVIKCFd#Kf?@y$yiLWFjgm3K3y&a8N1e%gYOZUtv`$6;7v< z`}_OP1zN2Zv)K&5=H{jX9~v40;O6Frl9Ceg^743kdgA2dgpiOBLTYmEw85UI1EJS`ZOZQ&TxQIs(98Fnk907Yqyx z0C0A8Movx+B0^nV9X_8Afad0AM1-`oG;B5-0Q2+n1O^6vHE#ahBqk=}@py2%-OA1N zdc86|o0^&s5z^DsvD@tc%+Agd5D@U?EK>wkRaF2?Pfsg{si~=0EEd|@+7J;kGBR*D z901JB%=`rYpP;_J9)Pj2F~5Mf-_Ojq7c-Tp^Ti#0Sfus3hsFr7}v zj7Fo&`f%4J7K?G z&OlUD6h3|WBna2p*@?QkI_Pvd==FLuH#cK+bdb`2Jbg?uh2C+F`Oh>ng%dwV+vFf=rTtgI}jJ|7bkgLm)V zk#8b1Gt>PB;^N}a(b2&r@9XP>QmJ%FM=F(~s;Y|9>FMb~NJxnL48+F9qN}TmOWNDp zi^RmlY3T(71mNx4x163vqj8UcxVSjd^L>4N*s^8IjC3O-Bk}X+Pfl~iiWReKAR!?E zy}i90e0O&@HgDc681L`z52;k@w7yEE;7WHKQ>KAyy;rKREa z?b~QMbHYh1sgqGEOoBqk=Jr>AGi%8NuI?BH(W0MOdnN-FQ=<%NQR0s>!FRtAYgLMm@C7`QmA)rwuac9Hx?jvV3c9X6W{ z+qZ9b)G7Q6>FMd@Ty8WP5fKqVDqmPwNZ?CLOG)KduU?IomKH9~VzFTN?%f3F@ZrPU z4h4)Iz(m@->HthvVbNj|5(*@<)#zC7LxgHB+6R z=!;odSpde`X6@Rwq-~0dib$g3;$l+yh=>S$`SQgn_+!V8kw;6tUXP%lpvmAJ{}J!q zyB9GrF$BK2xR}5f6%~(;Hq=g*%><%Le5Cr+FoJzrB(gTTN*r?{Ll;O*^=va&J)UrCgolR*>G_FA1Yqo;UI_lw zsZ&H#r_;F#Ke++1Sd8-Wa*{}`R+F}o%jIZmYjdjdr%#_In$^|S2nYyp6@GF9LR+O; zttN3oF1)Y-`-9Y<%1^u-ibNtP6biwK#MZ4_iRRg}X9@iC=g(&fFKj@mRC0-G zYilug?p!X$-`}6iKh0({l9Q8(-nnz<2>i2W&s>^NxMX1BNzi7qVc))eB*xRz6MOdT zfz@gSFgC~%s{Hx$=LvjORTcdF{AL4Q*g$1v<#;ly)rzpNFoyye85wA5Y7(q`Zf-7t zfAZwXY*pT|fr+z8i^YP)ix*ESBD8}D!9RZd7{0!~vk5P3VB(QsWMstUG2z9F7YY2M zM~~bAFKpo8!Gm1#n>TMdEhscjsjRHTym|B70WWMIBqW4;sIgkDlg@4!8{1YdUAjcz zA3l6Yb}+XaV2t6$jT;@!(V|7H>_7I9gj<$@%BcvL9sqGXso`optQz znUk%Ok`gkJ_@@RKV_2|Y0rKS*d~F~^00000NkvXX Hu0mjfMBA=E literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/send_control_bot_command.png b/Telegram/Resources/icons/send_control_bot_command.png index f18a7c01a1d22a5d1910c97eb4a4597b40129a82..34cc9d6eb02cb8f106965bb64e867f5a2fe0936c 100644 GIT binary patch literal 401 zcmV;C0dD?@P)zIyKiwnFCN5qezbe1$I~3g@n-T zmqxPe@qdhr>q~ vNwT}<%!p$)|f00000NkvXXu0mjfdmOY@ literal 400 zcmV;B0dM|^P)k$>azYR(b$Kz&4eIcd+mXg3TNth*uD-ErbvRn|!x$6Ly!~ z)sXCiY39#o9>dHVNkS6VTAXtfMM0A&iUQ{xVHi?bl0=%OjiBEmP16S&hGE?q$1%p3 z&pSSC#u$<$sSRr_a?SyeBuOLedyC^30OuUa^BjO62wI^*5CD+pIjYirW#MMC0pNH% z{y1J+ucCv&fZOc`z;rt82CdHQdcER#UVF6H>v1}r09dcrzs_rfR@bg9OUC1IH|TD+ z17N@3|2gkvbTk@KmL&jD6m^5HRx1F`=QI6&zdh=C9+%4nfaP-e^oG2IP9_ro?)N*x z;jkMt%Q67A+wD{E3)KA%gHvMiIVwRPHy#RA{=8)fMG ue*J{uqn=9tQ2DDJqbO?iM}1_7B;Enm&xvZ8QgXlm0000j4 z*yo#k`2u*JM|^LrW!@K{Ua#Zfa3H>>X_g1TbzR~aMbWRlvhwBn5_h{@a=lnAa`~QI zMxfnplb1J+V^mf3=_8OEz<4|+enAjC*w+EQ@&U_j{COxjX4?X!P(SSr~w-su;&{;vcDr33fZ=dRd{(Q~!{G}Bh@y!2xUO3s0Mj&y$Ki0m zTCG+dfb_oGz_CW0E5AR^k1*nPYYiNz-F@{{d>J$ApoC! zp;zkz@M1XV+dHN1YXZe~nxf4YZY1C{sbB=Yt(ph%9UGg~rST2{OQLop_IoAD3 zXGv#8fb1itR;%^0Bc@iXb^j3)K*gSP+9dpv(+#455P0?uWd;j3;+NC07*qoM6N<$f(pS=m;e9( literal 904 zcmV;319$w1P)iGB^nvf@jki!M0W&B4Ke(Zm=b zEDo3yBZff}qef#vIM2X?@${BFkA1QHlas*V-hY2R_uk%cO9&xg4oWE`lS#Gky$uCK2lm&<`H%Rnh*c>V@XEG;cTxm@-P>|ZLE%dot>+#QtXc~Di=H$byg zRRx~sS_}Br44OzJEE}fNX_%Ut0znYE%^SxtI5-H?)6U1_?(p!CyuH2IH}#^T zr>CdLv(;+B#KgppJQyywK_ig}G@DK2d3JX8V;|3leq&>Ua2&SX+1YV!>}ExS!5}<7 zJ|e%{+gs@C>+7wGuCA_<;o)JF+uz?OpP!%3&E2f%#l;2kG7JO4;jk?)&lc0%+#F+m zbaZ6f&oj`2g9FBVety2UKt)l6_xE??Q!14lO(U~hSxjqdYa|#9qMR#_r0;TCQI6x_ z=H>=@JU>4}C=_zFqK-iq78V%OY&Po%(i6~=lM~dx)oQ`yS!@-Zf-LB`u6s=6U*+hTTwv};Njr`^}WBpx3#ZZg=-Z}CX+-IMU>my+jD1Mx02n8 zo}ZtievL*0Mn*&@T5{H>tn}4p#Zb9v%d~GGcyB)LIJT< ztJTi=ECE@TnY#dJpX^DJ1c5-nGq^w?0FoqiJ;;@1xzo1YA(P2iHuO`OOy>JdwLkDY z57}(iZ?-ROZEabpIlybU5JkUJ*lsuxlBqZo6&1P5bO><;!-*)2tG~tKWXW!JSwfU1Pa4VgxBkeUkwyU^ zp2#UJoO2Kngb+Y-SA-BCB5=;FlF&KFqbbXh>31k1B+2vnOlxft{vFm@Hcdm4Y}@vl zAcR1Y51FSh#*ifEc_siV03<)_tdu&WuwVU7_bz$wR|WLmZ_;kL`+{_~y1eMWX`5eg z6t7D#48v+aj^ifnme+OBQM}vqPu^|%Bj0K;O%nhh%d&^fjWGa#7$bn?i~7C?08~{4 zt@Unmtu^Yp1^{$jcR6RC=ZBBXqA0Et4a-~>5ylvIo5mO^B6QAOCY(xHp2Y`BW&9uV SDPo=g0000#>h2u-rj z%X?3f6cHk&M3OYdyd^cpkR($|L}~l{LX5GF6JxwwD|CktUDu&-Y*kuo58S{@>9Q>K zd0p4bwZhBsf6CvFe~UE62$CR)7~|zy;h$frU;Fm8)+C?#`q=j!05A+g^O$GGaRdNt z+Xgu2Y7k7*M5R+vl}=RW&Fs|nszBA-L{#xcqk_RA>Hi~*$-2qA!T-fIHu5r!d3DRF5?DKQK~boE*W zqA0>V&*#?KNuK8zMNzkbCBAtVDP_9>&Uqs_%QB>tA|a&h(@h$L5Tul1mSqiHob#rE z)9GX-rD^(h(Or?IsijQ_(KK+mT&yHY>FmPGpp;tLlv34NP`Y?NpRn8Qpk%+_!|U~e zB|r$Vv>+l7@_PbQ1`yFI3WDH$3O(r3_qiwWS{P)2F$P-e)+>P48W>}v)cAq`(CD?$ z(-pMVeP<17tw*V;N0+`qo7l~5!>u1u(^tQ3;-#<|n43Wc9*;-w`u%<%rN);(w^7Cz z7Ddt84vV5d#@Hw|FjX6!gRPA&mG3mLUFJM%V5%2NqqEXyBP%k6fno+|_A^Vv!|9*+~t^2gQU zYDIwV5mOw;vyGVIIQAbg0jzw;2k-%7R)Cccy6cf72?`-lDTT(Ew+lALpi&Bj5SS!M k=U%C<5^H5Sr`14y02~##wkZfwO#lD@07*qoM6N<$g1g7_WB>pF literal 643 zcmV-}0(||6P)sI2#9<&NraOQn;6V z7v$!Ke{vEy^vJKY$F!#iAq08jc^(KM;5ZJ1VF+oOLQ}fkZg4yv!EqcQgaFU;49~-8 z$7;2LAP5=*`%Xa+fU2tHpd816Wm&BO=4DwHa2&^i{wBz$EX$%nHBBpQXqqO>W-|~3 zp={p#*oMO)%;$43O|y_e)3mHD&+~9Pov4St?}IGMjlq?fEX&~gKE)D6QI=r3t~0%8 z1M(d6Bs$!w}H@ey5y+!Ju_eK@cdW zG))2J=R;XA#u(x_X68>E$AB@eJ&xh33R?8C_m|ckmsjrr_foIdLq*CpW7Kq9|I1(b zMe0E7R%Ouh`CR(!a=FwV$Ea%7D~bY1k}%mAMG+{9QhVHgXZ@$uWqs4?KfZ{=X$;VBvYXXA=LeTzej~dGD(tJ8+J*O7#_ngip!3k z=fQHh{5a%du>jBWn528uXAuxWm|g&6l|4}uzd8W;vGF_)q9~RYatR^NwpoB}+l39= zlx^GZoysmaj)To+(>B{n+wHdau;FQ{sV`002ovPDHLkV1jxyExP~! diff --git a/Telegram/Resources/icons/send_control_bot_keyboard_hide.png b/Telegram/Resources/icons/send_control_bot_keyboard_hide.png index 6ada764b54ed16d0f0bd9044ad91600d2a1688b9..ceaaccf73cffb9a36e91007f709b16526385de0d 100644 GIT binary patch literal 342 zcmV-c0jd6pP)$;A0UDv(hpMjJT>$=8d ztu-j6hs2apXsu)Zx~`B?9ycI_psFf_5Mq%rX158Y6vmjC7eYW;mV1NzoJfFwzfBngIL_(on7#o3LHkC*2;oO6+E z97l}f7-Q!g@;rYhf^&s%&N0t3UTvOdaL%u&?7a-LEQ7T+l3Qz$W!Y63U(@>I@xU}q on5GG7nqGb*bn9}L{r}JI2_12bkP5+Y#Q*>R07*qoM6N<$f@N5nJ^%m! literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#D!3HFcd~W{?q|!ZI978O6mrnNPI$*%z@;vX} ze-*hydQB6ywfwT;R{T-f?54U>CDbKkzif5EG-c!5M)Bpcx%I4kbCM6R>hDng5NPhV z-0}VHh|Z4qOwi>!MI7+{_h=MYyiZojV*3FbpH{SxOv$h@k5_ z_WM28%xblQqA1_}ilSh(T5L-I zyB*5qa$5800}v53O@rroTyxv)7TfKX``q(9XquMAe6|2Ygi@(=*W|r$rBW%Y`RoCR zC~})zW3$;nRnujP)tvOhimo&CE%kY2*=qr3Tez5m)zz%dC?v0=91rPK< z*WqmZVm7@2E7PqJI?J~qa02{h3;f9WJfDR3WNOe5g!E;a9@qsUeomJLS7GEI*m6J- zNJL}cy?F3C2NqPt6BcLCuq>Xm9EJy8@T@ibQwWt(%I+iUkk7Q=tzOsy9cBv=3~2xW N002ovPDHLkV1k)_aB2Vm diff --git a/Telegram/Resources/icons/send_control_emoji.png b/Telegram/Resources/icons/send_control_emoji.png index 65c52d50c90461d2aa9f1601a5c790d4d3a593df..5698c8421b2595abfcc33c1edae0c4961cd4fcd5 100644 GIT binary patch literal 438 zcmV;n0ZIOeP)G67IwScjGxcvPYs@qcsLxg_;fmb8b8*&+`u$V>3N=X zUH4^I*L9`mdD1k^CqDPF$N!=LpePExUXM7A+3)v+VMv;$Plfq>o?5L&qtPHq5>~4f z069P^io$xmX1CiBMG=N!kR%EB`yDAI#bS|ixy0=TOmMwknM@`O zheJlA5y#^ZP1C4UDx_&j9LJo`XX^DjoU5n%E|Son zT>ll$mtu^nwJOH=CBFE+?*P`o70|k0iYJbX~``ZIn{bFbo{YIWx~QIp;SU#}P>)gg{COGXucPNGTCQ dKoX~hKLM~mfGHVAAJzZ>002ovPDHLkV1nRvT7m!o diff --git a/Telegram/Resources/icons/send_control_emoji@2x.png b/Telegram/Resources/icons/send_control_emoji@2x.png index 773350b0034ed0900fb2bf76bb3ddbc886f43b11..8a1a772b5980a692f2c2335d8bb6c1d68650ce62 100644 GIT binary patch literal 747 zcmVQDrYVi7wO>|({iT8-4n!KwNOQd|VVt;MB-n~oyR#nri69UarfKo`-` zR7(rd3^rmwa^CP>3pJ)m>wEM)@W8j+oZNf(?z#6901!ijILzYT0=@HDk?>6zkH=9el~691A%uzGYdA#bTcP z-^cso$;k;nBA3f~@^iVIi+_50+EYN!7A!9>yJD-WtDgMNzAY^+^(xWZ10y3NfntO5 zeFapjRaZ>YG*ABZ^>v^eAK}@bL?S`kwmbbaO_P!&dGaMmqG_5PzHQrFSXda`gaDYy zWT9k)mrqgLwDivy)#!M#T%NN=zhJ}BB6aH=d_!!vP*}>-KCK`R;$S8^Db`35Tm1`e1Cs;ZL>k}^78U& zd~$NK%Ylw!!R&CJq=ygadB}0RaG%NJByi_8APK|L?RJPOiW;Wd>o?qtAnO# z!nSR+S}io2P1I^N)a!NBYBk8RjBGZGXfz7LF!22R?0o|Ocyx3`l5`x0g+hUXAoz}w z*AWDPg+hUjt>VMO!!H*zzF{bFir3XwL?A dY4H6V{{+zv#FES*@W}uG002ovPDHLkV1g~1YM}rC literal 360 zcmV-u0hj)XP);C5!aOHZNO*XVd4Q!xYI%_ZssaPEEjYDR&gbia z=uk&8@s3BkJL3cZVF9d`5cvrGvk(J-G)=MF?EnB>*Wq%x{QBreeo++UoTCSvb5s-s z;VWOkiSmsx^c}{Ss8E#ey$=fB`>0TizdE1K!4Af8jP57OFUvBRSqKsBD8^3!&=RgC z`27Aq2`Qy;yWKDh1B4K7ALV%ttu?H*P)a@T$yz%Lmy|MUzm#%jzqR&J12s((r1f+< z(cy5QEXyd%GTQI=bUYpdUR~EOATB!A3FL_t(Ijm?z3s;fX0g_p;lB4NNLeNgZXd;wp;(lRgNi}(;? zmnL;!8cmhP%0durQYf)7vTkvS98WR_E@|$94gT$qarRoH0U$om*Sm-N{T@k@;Cj8{ zdc7h^672VTC4}G0^E}pd&7Z34nx5zJ=l3swG)-TcpGwp8cYlBof^FL>0d3n-2(bdJ z_P{hvSeB*ySIe?snx=XaNrF@l<=y+YQ}`GCM*vOJJ_BsGTg>zPD@fBc%=5ek-0yeX z?{{dLhH08GO_LJvcswvo6NC_W_I))?1Ix0o+wCxpBQBSV5>ONc#&N`Mw}WL_XqpCJ zMNvT4bp$~G0Dp+%7=7QrH1~avIF11TK@dRKbreMbL{UVNEX#7Ssqgzd9*=C>mTlYe zcs$bg{l)HOS&}59C?X8Q;Q4$eNoHBb&1SRs+_r7nw!PeMHXCMHMv^?A&om6)hT$qSLI{Ro$UM(Ul2ujFb=`Fu9mk=Ra%7b}DJ7+ptAt7^={U~&I2(q+ z!{NZw>BPS8m!`h&c{-hVI2@kKRv#$Oa$T3hFmM=#@5_BDLpAfR>lRmbU8nSh5}@lk hZnxWVt`5?UgmXO1CS)i)s0=(0g$HY z%4uO35{BWbmv*Kp0A1I;+u0bi{8pAFzVB~r>-#=sSuQ+d%sLN@F$}{1fOC$vZOO8X zEX!!y7UvuQ!!X<~uLDJEO;Hq21Ena6N71&;Ii(a)6fKKU6rq%Qn2DP}xy2kV_aSnN bzca0z6v!)SXw00000NkvXXu0mjfx>&IZ diff --git a/Telegram/Resources/icons/send_control_record@2x.png b/Telegram/Resources/icons/send_control_record@2x.png index 7a45e6df279e2dd1e7a9f9ed7ece34eb144743cc..3eba00f2e6fabf1a07195ab3e0c9eb9057445127 100644 GIT binary patch delta 883 zcmV-(1C0Er1&IfcBYy)>NklCT%6n->?P@(N$Co{xu;vjCK-HL1R2Ux+q zlbb_rClQ*Z4&6Jnzo28G2$d8U2?2kAh)uzwqy{u0a=zhv&FgKnM)9S*FFtS~_ug~P z^N^g}d(ZU&Ap9WwKS{op08tbnNfK05g<%*l31;_~uxvjXDrIN7%CS%7WZ6pzO@C*bbx&NKNG4-XHU6VUB; zR~FFebUX?0O;vmcqScp*$z+0^ot>q2e@p-X_CUz8&gTWQyMN=9#}5FdQVIQjAN_tGrBdmS3AnhpK&R7j@z7{Aa!xY!dfjzuSr=d9 z)a!L;&NNK|Kz;zQZQD^Z`@Ct)#FH@@0WU8vO#kTU z2!bFu{VAs(0A62Torz#Dh(sd6IN#jd%zdScFquqneSOW0B@zh)gF&Y+%d+!K$H&KH zS(cNbvMdwFaZCmmi$%}bUn~|GUykEQmStz&vMfraQojq6Kp;SkMuQ2G&*wK*oaXa+ z#;(z5P=6p0U@N0+Hp>`knnsaG#1%{wMUo_mR8=LzFvu_rQdN~CNg`1cUG|YkgfvZK zVrR2icWK7+Jk@G7#<1CJQYaK!rP5_uC={Y*v&qD))oR4^{QTN5nM_iz*JB)7t=8=K z^4wCX6t!9{CRVT4qhvDqeQ}z}WN17dGmg5hQ-7sWAwdw95(|Prl}d$lU1ws9$79N5 zGTw^Qv$HeY-riz=f1eru`1ru{^D`bFAJOf0q3b$;{}(So5O8{Wij$KQ93CDrexIM8 zI6ptf{r&w{D!AUjw58K&YPZ`9GoFZOG#W7***vt{ZAz!p>)j88!(pmct27)Aza^Q6 z;cRe7)oPW(;qbE0wmhMt(I}P6Wl|J{27|#u(!pRrilR`tT&8F=>NR0k%kEe#M!8(h zMV`y$C>D#Y{I__zpqQIDUyg2GE+gjQ#}B1j0Y5Ha?Ihe3{sRe%0OK=3)T{si002ov JPDHLkV1f&6tP%hK delta 657 zcmV;C0&e|@2dD**BYy&KNklyrrIjhI^c94;#XX*zUH@W|bIvXNU?KZ6-+b;EoEZQBTrzZB$0&-B zMHEG->-r+D&+*tnQ4}#v)1G4%X_}%aitiO5iXxU}IqSSbS$~#GM9d#LpU)3F?{Ge! z-y=ZNw8hRlXqq-FU<)%i9*=WJUbdZ7SXI^2H&9j8>6|f5UeF2{50U`n-g6DbP?vVAjLFR+ce!t(H53qc{9|CrP=Xq*=yWO59 zXKh(-0Dx`NG=J2>$HxaXzh19T3t(+o?xtyAo98*TxZCZh`RR0eS^#Uya_4yt+ayV- z#lzu1&9f{6-}e_g_kAC-ESuy`k_3PdLZ#AmT_eYFRO-z0{6lqNhcr!*=Xr{Q<2bDA znmR`a`CA#W8-`)@@^?WH(DS@m=bq=GAP7Bs!!UXe3V&T`X4`gebBF{0P*D_gT^Ea@ z_&Q${1-h<_ilPkK2!haiNZYpm36LZS+qR_+gkiX(#GV{s7*gDA+oB{%ba85$X74&3 z$9dVg<2XHD(=>;xPm0U=Rd7z9@>u%k!}=NL|;9+Aq4U_hODX+CAyN zWMhB1x__?GwrwPYpe)N@HnJ=uAp~vP9(3F}A9+dpPauloU^t#d6h%`loAIl(EbC?G zmSxR_Y&xE@EKgqT5V}y^hiPogHYn~v2mw`9VZYyls;bmp9LJC(3B+*>m&@f*N?0V| r9>`=ibDfYe{C^qIDqt1x)A$235i<#ck(@LD015yANkvXXu0mjfW1}@U diff --git a/Telegram/Resources/icons/send_control_send.png b/Telegram/Resources/icons/send_control_send.png new file mode 100644 index 0000000000000000000000000000000000000000..6414c8bfaa3d896cf5b3636b05df309a7d185b4d GIT binary patch literal 598 zcmV-c0;&CpP)x3tR?+0q^ea7!HRQ3*zzk$^w^PGcVZejo989PM@+ z-oHP1y-LQCr&1l zwP!(+&1RElXJ_2n+M1rh(b3UH!Hq_Pr>Cd%cs#R*e0h1fR`BEFBU7mqg%Dpq({j1I zQt-pW1Cz<*@>TKt{Jd0ftyZIHnyXcXVHjVQ-DEOhwOVB&kyx+nj*pLL27i8j(y}bZ zVzJHY`uzNSD%f!xRw@-nqtQ)*34mSzkR%C?<3I=j%d$``7V+}(vhasm7VhosF_X#g k@bGZs6aTyZ>!R=G7hy^Lj%k*TdjJ3c07*qoM6N<$g4Rao14CyXWOy9@W9#g>>NIy^ZYo^8B+lu z{@|#U29TS-OTcEc;q2M7O0gU`1i&+A&hW#B4_sMU;rRGC8yXszY&+!T_d#D@A5*ir zxyi}NNj5e%Dh-&MKv!26B}wA$Y;A3EVq$`qFJD#~bbo=`+FFLg;S7Ofe*OAIm&?WG z=4PdVvkU0;dcJw{W>0}+5{U$-rl#1@(V;YWx&Q!^qpuV25eyg+MfE4R0|^OhjVXf(=~FJH2~y`5^cS{VVO(a6=+)dLBn zW^Qh-ls%GO;rIJx3y{Aj`|H=QOCge8@$~7_f(WFFc)ecUxN(DmAQWGqx3{;T0;!pw zpXaSxw~8xp;lc&RVzHu0BoYbwd_FoH4(fEe!V6ffR(}5cxo85Z@p`>e9V^+H5x5xpN0suUH`zZr;3!Kp>D-uaOI$j3h~rBnj*5>sVi3&uF*X?Xm=nMk7onQ%3#1 z0#~kF!Leh}=@EF2ylR&*sw=KcHkynp{bD=I2-Uq&B1c%U>lmzS4$ z_wHSaqPXuenso@BJ9kc2cgu;-=fmjeC|_twzei4JQj=b`Sa&&X=y1Yc&0#GTbr!+;nmeuj*X46uCA^W-~@I($j+ZX53N>< ze6z8!f${NiOiWDRLvd7T`IMBs9{FfuZNP$*PTuzW%QEGsMH;^JaX zLnRW4aBy&tH8nLQ8!G#h-v@TPouN=@U+^D4e(>?*$2@uRq|(rt0v#P4jK||y!M}X@ z!hwMS9zT9uY1q9d@u^d%pwXmnPQQKohG);7VP<9q;cys-H3Yz>rY3&>{+%TG>C-1Z zeE5)+m6eL$;T+0;AL{Dr*xTF7s;Vlbp>i$-`&B}z{9XT*_!ILF98_7buwoB@00000 LNkvXXu0mjf=Tuf? literal 0 HcmV?d00001 diff --git a/Telegram/Resources/sample.tdesktop-theme b/Telegram/Resources/sample.tdesktop-theme index 128f748a8a..87c9a5aee3 100644 --- a/Telegram/Resources/sample.tdesktop-theme +++ b/Telegram/Resources/sample.tdesktop-theme @@ -137,12 +137,14 @@ emojiPanHeaderBg: #fffffff2; // emojiPanBg; historyComposeAreaBg: windowBg; historyComposeIconFg: menuIconFg; historyComposeIconFgOver: menuIconFgOver; +historySendIconFg: windowActiveBg; +historySendIconFgOver: windowActiveBg; historyPinnedBg: historyComposeAreaBg; historyReplyBg: historyComposeAreaBg; historyReplyCancelIconFg: cancelIconFg; historyReplyCancelIconFgOver: cancelIconFgOver; -historySendBg: historyComposeAreaBg; -historySendBgOver: #f5f5f5; // historySendBg; +historyComposeButtonBg: historyComposeAreaBg; +historyComposeButtonBgOver: #f5f5f5; historyTextInFg: windowTextFg; historyTextOutFg: windowTextFg; historyCaptionInFg: historyTextInFg; diff --git a/Telegram/SourceFiles/dialogs/dialogs.style b/Telegram/SourceFiles/dialogs/dialogs.style index 437c2c7470..bc36e866d0 100644 --- a/Telegram/SourceFiles/dialogs/dialogs.style +++ b/Telegram/SourceFiles/dialogs/dialogs.style @@ -104,13 +104,12 @@ dialogsFilter: flatInput(inpDefGray) { textMrg: margins(32px, 3px, 32px, 3px); } dialogsCancelSearch: IconButton(dialogsMenuToggle) { - icon: icon {{ "dialogs_cancel_search", #a6a6a6, point(0px, 1px) }}; + icon: icon {{ "dialogs_cancel_search", dialogsMenuIconFg, point(0px, 1px) }}; + iconOver: icon {{ "dialogs_cancel_search", dialogsMenuIconFgOver, point(0px, 1px) }}; } dialogsMenu: DropdownMenu(defaultDropdownMenu) { menu: Menu(defaultMenu) { - skip: 8px; - itemIconPosition: point(15px, 8px); itemPadding: margins(56px, 10px, 56px, 12px); } diff --git a/Telegram/SourceFiles/history/field_autocomplete.cpp b/Telegram/SourceFiles/history/field_autocomplete.cpp index b4db5ee2fd..c0e21850fb 100644 --- a/Telegram/SourceFiles/history/field_autocomplete.cpp +++ b/Telegram/SourceFiles/history/field_autocomplete.cpp @@ -541,7 +541,7 @@ void FieldAutocompleteInner::paintEvent(QPaintEvent *e) { int32 atwidth = st::mentionFont->width('@'), hashwidth = st::mentionFont->width('#'); int32 mentionleft = 2 * st::mentionPadding.left() + st::mentionPhotoSize; int32 mentionwidth = width() - mentionleft - 2 * st::mentionPadding.right(); - int32 htagleft = st::historyAttachPhoto.width + st::historyComposeField.textMrg.left() - st::lineWidth, htagwidth = width() - st::mentionPadding.right() - htagleft - st::mentionScroll.width; + int32 htagleft = st::historyAttach.width + st::historyComposeField.textMrg.left() - st::lineWidth, htagwidth = width() - st::mentionPadding.right() - htagleft - st::mentionScroll.width; if (!_srows->isEmpty()) { int32 rows = rowscount(_srows->size(), _stickersPerRow); diff --git a/Telegram/SourceFiles/history/history.style b/Telegram/SourceFiles/history/history.style index d373a32825..8cccec7ab9 100644 --- a/Telegram/SourceFiles/history/history.style +++ b/Telegram/SourceFiles/history/history.style @@ -157,29 +157,61 @@ historyComposeField: flatTextarea { historyComposeFieldMaxHeight: 224px; // historyMinHeight: 56px; -historyAttachDocument: IconButton { +historySendPadding: 9px; +historySendRight: 2px; + +historyComposeButton: flatButton { + duration: 200; + cursor: cursor(pointer); + + color: btnYesColor; + overColor: btnYesHover; + + bgColor: historyComposeButtonBg; + overBgColor: historyComposeButtonBgOver; + + width: -32px; + height: 46px; + + textTop: 12px; + overTextTop: 12px; + downTextTop: 13px; + + font: font(16px); + overFont: font(16px); +} +historyUnblock: flatButton(historyComposeButton) { + color: #d15948; + overColor: #d15948; +} + +historySend: IconButton { width: 46px; height: 46px; - icon: icon {{ "media_type_file", historyComposeIconFg, point(2px, 2px) }}; - iconOver: icon {{ "media_type_file", historyComposeIconFgOver, point(2px, 2px) }}; + icon: icon {{ "send_control_send", historySendIconFg }}; + iconOver: icon {{ "send_control_send", historySendIconFgOver }}; - iconPosition: point(9px, 9px); - iconPositionDown: point(9px, 10px); + iconPosition: point(11px, 11px); + iconPositionDown: point(11px, 11px); } -historyAttachPhoto: IconButton(historyAttachDocument) { - icon: icon {{ "media_type_photo", historyComposeIconFg, point(2px, 2px) }}; - iconOver: icon {{ "media_type_photo", historyComposeIconFgOver, point(2px, 2px) }}; +historyAttach: IconButton(historySend) { + icon: icon {{ "send_control_attach", historyComposeIconFg }}; + iconOver: icon {{ "send_control_attach", historyComposeIconFgOver }}; } -historyAttachEmoji: IconButton(historyAttachDocument) { - width: 33px; +historyAttachFileIcon: icon {{ "media_type_file", historyComposeIconFg }}; +historyAttachFileIconOver: icon {{ "media_type_file", historyComposeIconFgOver }}; +historyAttachPhotoIcon: icon {{ "media_type_photo", historyComposeIconFg }}; +historyAttachPhotoIconOver: icon {{ "media_type_photo", historyComposeIconFgOver }}; + +historyAttachEmoji: IconButton(historyAttach) { icon: icon {{ "send_control_emoji", historyComposeIconFg }}; iconOver: icon {{ "send_control_emoji", historyComposeIconFgOver }}; - iconPosition: point(12px, 16px); - iconPositionDown: point(12px, 16px); + iconPosition: point(15px, 15px); + iconPositionDown: point(15px, 15px); } -historyEmojiCircle: size(19px, 19px); +historyEmojiCircle: size(20px, 20px); historyEmojiCirclePeriod: 1500; historyEmojiCircleDuration: 500; historyEmojiCircleTop: 13px; @@ -187,21 +219,18 @@ historyEmojiCircleLine: 2px; historyEmojiCircleFg: historyComposeIconFg; historyEmojiCircleFgOver: historyComposeIconFgOver; historyEmojiCirclePart: 3.5; -historyBotKeyboardShow: IconButton(historyAttachEmoji) { +historyBotKeyboardShow: IconButton(historySend) { icon: icon {{ "send_control_bot_keyboard", historyComposeIconFg }}; iconOver: icon {{ "send_control_bot_keyboard", historyComposeIconFgOver }}; - - iconPosition: point(6px, 12px); - iconPositionDown: point(6px, 12px); } -historyBotKeyboardHide: IconButton(historyAttachEmoji) { +historyBotKeyboardHide: IconButton(historySend) { icon: icon {{ "send_control_bot_keyboard_hide", historyComposeIconFg }}; iconOver: icon {{ "send_control_bot_keyboard_hide", historyComposeIconFgOver }}; - iconPosition: point(5px, 17px); - iconPositionDown: point(5px, 17px); + iconPosition: point(11px, 16px); + iconPositionDown: point(11px, 16px); } -historyBotCommandStart: IconButton(historyBotKeyboardShow) { +historyBotCommandStart: IconButton(historySend) { icon: icon {{ "send_control_bot_command", historyComposeIconFg }}; iconOver: icon {{ "send_control_bot_command", historyComposeIconFgOver }}; } @@ -220,27 +249,16 @@ historyRecordFont: font(13px); historyRecordDurationFg: #000000; historyRecordTextTop: 14px; +historyAttachDropdownMenu: DropdownMenu(defaultDropdownMenu) { + menu: Menu(defaultMenu) { + itemIconPosition: point(13px, 6px); + itemPadding: margins(54px, 11px, 54px, 11px); + } +} historyMediaTypeFile: icon {{ "media_type_file", menuIconFg, point(2px, 2px) }}; historyMediaTypeFileOver: icon {{ "media_type_file", menuIconFgOver, point(2px, 2px) }}; historyMediaTypePhoto: icon {{ "media_type_photo", menuIconFg, point(2px, 2px) }}; historyMediaTypePhotoOver: icon {{ "media_type_photo", menuIconFgOver, point(2px, 2px) }}; -historyMediaTypeVideo: icon {{ "media_type_video", menuIconFg, point(2px, 2px) }}; -historyMediaTypeVideoOver: icon {{ "media_type_video", menuIconFgOver, point(2px, 2px) }}; -historyMediaTypeSong: icon {{ "media_type_song", menuIconFg, point(0px, 0px) }}; -historyMediaTypeSongOver: icon {{ "media_type_song", menuIconFgOver, point(0px, 0px) }}; -historyMediaTypeVoice: icon {{ "media_type_voice", menuIconFg, point(2px, 2px) }}; -historyMediaTypeVoiceOver: icon {{ "media_type_voice", menuIconFgOver, point(2px, 2px) }}; -historyMediaTypeLink: icon {{ "media_type_link", menuIconFg, point(2px, 2px) }}; -historyMediaTypeLinkOver: icon {{ "media_type_link", menuIconFgOver, point(2px, 2px) }}; - -historyAttachDropdownMenu: DropdownMenu(defaultDropdownMenu) { - menu: Menu(defaultMenu) { - skip: 5px; - - itemIconPosition: point(12px, 6px); - itemPadding: margins(48px, 11px, 48px, 11px); - } -} historySilentToggle: IconButton(historyBotKeyboardShow) { icon: icon {{ "send_control_silent_off", historyComposeIconFg }}; diff --git a/Telegram/SourceFiles/historywidget.cpp b/Telegram/SourceFiles/historywidget.cpp index 08159e603d..4b1ef29607 100644 --- a/Telegram/SourceFiles/historywidget.cpp +++ b/Telegram/SourceFiles/historywidget.cpp @@ -1702,7 +1702,7 @@ void HistoryInner::toggleScrollDateShown() { _scrollDateShown = !_scrollDateShown; auto from = _scrollDateShown ? 0. : 1.; auto to = _scrollDateShown ? 1. : 0.; - _scrollDateOpacity.start([this] { repaintScrollDateCallback(); }, from, to, st::historyAttachPhoto.duration); + _scrollDateOpacity.start([this] { repaintScrollDateCallback(); }, from, to, st::historyAttach.duration); } void HistoryInner::repaintScrollDateCallback() { @@ -2303,7 +2303,7 @@ void HistoryInner::onParentGeometryChanged() { } MessageField::MessageField(HistoryWidget *history, const style::flatTextarea &st, const QString &ph, const QString &val) : FlatTextarea(history, st, ph, val), history(history) { - setMinHeight(st::btnSend.height - 2 * st::sendPadding); + setMinHeight(st::historySend.height - 2 * st::historySendPadding); setMaxHeight(st::historyComposeFieldMaxHeight); } @@ -2995,13 +2995,12 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) , _historyToEnd(this) , _fieldAutocomplete(this) , _reportSpamPanel(this) -, _send(this, lang(lng_send_button), st::btnSend) -, _unblock(this, lang(lng_unblock_button), st::btnUnblock) -, _botStart(this, lang(lng_bot_start), st::btnSend) -, _joinChannel(this, lang(lng_channel_join), st::btnSend) -, _muteUnmute(this, lang(lng_channel_mute), st::btnSend) -, _attachDocument(this, st::historyAttachDocument) -, _attachPhoto(this, st::historyAttachPhoto) +, _send(this, st::historySend) +, _unblock(this, lang(lng_unblock_button), st::historyUnblock) +, _botStart(this, lang(lng_bot_start), st::historyComposeButton) +, _joinChannel(this, lang(lng_channel_join), st::historyComposeButton) +, _muteUnmute(this, lang(lng_channel_mute), st::historyComposeButton) +, _attachToggle(this, st::historyAttach) , _attachEmoji(this, st::historyAttachEmoji) , _botKeyboardShow(this, st::historyBotKeyboardShow) , _botKeyboardHide(this, st::historyBotKeyboardHide) @@ -3035,8 +3034,18 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) connect(_joinChannel, SIGNAL(clicked()), this, SLOT(onJoinChannel())); connect(_muteUnmute, SIGNAL(clicked()), this, SLOT(onMuteUnmute())); connect(_silent, SIGNAL(clicked()), this, SLOT(onBroadcastSilentChange())); - connect(_attachDocument, SIGNAL(clicked()), this, SLOT(onDocumentSelect())); - connect(_attachPhoto, SIGNAL(clicked()), this, SLOT(onPhotoSelect())); + _attachToggle->setClickedCallback([this] { + if (cDefaultAttach() == dbidaPhoto) { + onPhotoSelect(); + } else { + onDocumentSelect(); + } + }); + if (cDefaultAttach() == dbidaPhoto) { + _attachToggle->setIcon(&st::historyAttachPhotoIcon, &st::historyAttachPhotoIconOver); + } else { + _attachToggle->setIcon(&st::historyAttachFileIcon, &st::historyAttachFileIconOver); + } connect(_field, SIGNAL(submitted(bool)), this, SLOT(onSend(bool))); connect(_field, SIGNAL(cancelled()), this, SLOT(onCancel())); connect(_field, SIGNAL(tabbed()), this, SLOT(onFieldTabbed())); @@ -3112,16 +3121,14 @@ HistoryWidget::HistoryWidget(QWidget *parent) : TWidget(parent) _reportSpamPanel.move(0, 0); _reportSpamPanel.hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _attachEmoji->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); _silent->hide(); _botCommandStart->hide(); - _attachDocument->installEventFilter(_attachType); - _attachPhoto->installEventFilter(_attachType); + _attachToggle->installEventFilter(_attachType); _attachEmoji->installEventFilter(_emojiPan); connect(_botKeyboardShow, SIGNAL(clicked()), this, SLOT(onKbToggle())); @@ -4502,8 +4509,7 @@ void HistoryWidget::updateControlsVisibility() { _fieldAutocomplete->hide(); _field->hide(); _fieldBarCancel->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _attachEmoji->hide(); _silent->hide(); _historyToEnd->hide(); @@ -4561,13 +4567,11 @@ void HistoryWidget::updateControlsVisibility() { _send->hide(); if (_inlineBotCancel) _inlineBotCancel->hide(); _botStart->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _silent->hide(); _kbScroll.hide(); _fieldBarCancel->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _attachEmoji->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); @@ -4597,8 +4601,7 @@ void HistoryWidget::updateControlsVisibility() { _botKeyboardShow->hide(); _botKeyboardHide->hide(); _botCommandStart->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _silent->hide(); _kbScroll.hide(); _fieldBarCancel->hide(); @@ -4626,8 +4629,7 @@ void HistoryWidget::updateControlsVisibility() { _botKeyboardShow->hide(); _botKeyboardHide->hide(); _botCommandStart->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _silent->hide(); if (_kbShown) { _kbScroll.show(); @@ -4664,13 +4666,7 @@ void HistoryWidget::updateControlsVisibility() { } } } - if (cDefaultAttach() == dbidaPhoto) { - _attachDocument->hide(); - _attachPhoto->show(); - } else { - _attachDocument->show(); - _attachPhoto->hide(); - } + _attachToggle->show(); if (hasSilentToggle()) { _silent->show(); } else { @@ -4696,13 +4692,11 @@ void HistoryWidget::updateControlsVisibility() { _botStart->hide(); _joinChannel->hide(); _muteUnmute->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _silent->hide(); _kbScroll.hide(); _fieldBarCancel->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _attachEmoji->hide(); _botKeyboardShow->hide(); _botKeyboardHide->hide(); @@ -5456,8 +5450,7 @@ void HistoryWidget::showAnimated(Window::SlideDirection direction, const Window: _kbScroll.hide(); _reportSpamPanel.hide(); _historyToEnd->hide(); - _attachDocument->hide(); - _attachPhoto->hide(); + _attachToggle->hide(); _attachEmoji->hide(); _fieldAutocomplete->hide(); _silent->hide(); @@ -5545,7 +5538,7 @@ void HistoryWidget::animStop() { } void HistoryWidget::step_record(float64 ms, bool timer) { - float64 dt = ms / st::btnSend.duration; + float64 dt = ms / st::historyComposeButton.duration; if (dt >= 1 || !_send->isHidden() || isBotStart() || isBlocked()) { _a_record.stop(); a_recordDown.finish(); @@ -5571,15 +5564,13 @@ void HistoryWidget::step_recording(float64 ms, bool timer) { } else { a_recordingLevel.update(dt, anim::linear); } - if (timer) update(_attachDocument->geometry()); + if (timer) update(_attachToggle->geometry()); } void HistoryWidget::onPhotoSelect() { if (!_history) return; - _attachDocument->clearState(); - _attachDocument->hide(); - _attachPhoto->show(); + _attachToggle->setIcon(&st::historyAttachPhotoIcon, &st::historyAttachPhotoIconOver); _attachType->hideFast(); if (cDefaultAttach() != dbidaPhoto) { @@ -5605,9 +5596,7 @@ void HistoryWidget::onPhotoSelect() { void HistoryWidget::onDocumentSelect() { if (!_history) return; - _attachPhoto->clearState(); - _attachPhoto->hide(); - _attachDocument->show(); + _attachToggle->setIcon(&st::historyAttachFileIcon, &st::historyAttachFileIconOver); _attachType->hideFast(); if (cDefaultAttach() != dbidaDocument) { @@ -5663,7 +5652,7 @@ 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::historyReplySkip, _field->y() - st::sendPadding - st::historyReplyHeight, width() - st::historyReplySkip - _fieldBarCancel->width(), st::historyReplyHeight).contains(pos) && (_editMsgId || replyToId()); + bool inReplyEdit = QRect(st::historyReplySkip, _field->y() - st::historySendPadding - st::historyReplyHeight, width() - st::historyReplySkip - _fieldBarCancel->width(), st::historyReplyHeight).contains(pos) && (_editMsgId || replyToId()); bool inPinnedMsg = QRect(0, 0, width(), st::historyReplyHeight).contains(pos) && _pinnedBar; if (inRecord != _inRecord) { _inRecord = inRecord; @@ -5692,7 +5681,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::historyReplyHeight, width(), st::historyReplyHeight); + update(0, _field->y() - st::historySendPadding - st::historyReplyHeight, width(), st::historyReplyHeight); } if (_attachDrag != DragStateNone || !_attachDragPhoto->isHidden() || !_attachDragDocument->isHidden()) { _attachDrag = DragStateNone; @@ -6417,47 +6406,47 @@ void HistoryWidget::updateOnlineDisplayTimer() { } void HistoryWidget::moveFieldControls() { - int w = width(), h = height(), right = w, bottom = h, keyboardHeight = 0; - int maxKeyboardHeight = st::historyComposeFieldMaxHeight - _field->height(); + auto keyboardHeight = 0; + auto bottom = height(); + auto maxKeyboardHeight = st::historyComposeFieldMaxHeight - _field->height(); _keyboard.resizeToWidth(width(), maxKeyboardHeight); if (_kbShown) { keyboardHeight = qMin(_keyboard.height(), maxKeyboardHeight); bottom -= keyboardHeight; - _kbScroll.setGeometry(0, bottom, w, keyboardHeight); + _kbScroll.setGeometry(0, bottom, width(), keyboardHeight); } -// _attachType ----------------------------------------------------------- _emojiPan --------- _fieldBarCancel +// _attachToggle --------------------------------------------------------- _emojiPan --------- _fieldBarCancel // (_attachDocument|_attachPhoto) _field (_silent|_cmdStart|_kbShow) (_kbHide|_attachEmoji) [_broadcast] _send // (_botStart|_unblock|_joinChannel|_muteUnmute) - int buttonsBottom = bottom - _attachDocument->height(); - _attachDocument->move(0, buttonsBottom); - _attachPhoto->move(0, buttonsBottom); - _field->move(_attachDocument->width(), bottom - _field->height() - st::sendPadding); - _send->move(right - _send->width(), buttonsBottom); + auto buttonsBottom = bottom - _attachToggle->height(); + auto left = 0; + _attachToggle->moveToLeft(left, buttonsBottom); left += _attachToggle->width(); + _field->moveToLeft(left, bottom - _field->height() - st::historySendPadding); + auto right = st::historySendRight; + _send->moveToRight(right, buttonsBottom); right += _send->width(); if (_inlineBotCancel) _inlineBotCancel->move(_send->pos()); - right -= _send->width(); - _attachEmoji->move(right - _attachEmoji->width(), buttonsBottom); - _botKeyboardHide->move(right - _botKeyboardHide->width(), buttonsBottom); - right -= _attachEmoji->width(); - _botKeyboardShow->move(right - _botKeyboardShow->width(), buttonsBottom); - _botCommandStart->move(right - _botCommandStart->width(), buttonsBottom); - _silent->move(right - _silent->width(), buttonsBottom); + _attachEmoji->moveToRight(right, buttonsBottom); + _botKeyboardHide->moveToRight(right, buttonsBottom); right += _botKeyboardHide->width(); + _botKeyboardShow->moveToRight(right, buttonsBottom); + _botCommandStart->moveToRight(right, buttonsBottom); + _silent->moveToRight(right, buttonsBottom); - right = w; - _fieldBarCancel->move(right - _fieldBarCancel->width(), _field->y() - st::sendPadding - _fieldBarCancel->height()); - _attachType->move(0, _attachDocument->y() - _attachType->height()); + _fieldBarCancel->moveToRight(0, _field->y() - st::historySendPadding - _fieldBarCancel->height()); + _attachType->moveToLeft(0, _attachToggle->y() - _attachType->height()); _emojiPan->moveBottom(_attachEmoji->y()); - _botStart->setGeometry(0, bottom - _botStart->height(), w, _botStart->height()); - _unblock->setGeometry(0, bottom - _unblock->height(), w, _unblock->height()); - _joinChannel->setGeometry(0, bottom - _joinChannel->height(), w, _joinChannel->height()); - _muteUnmute->setGeometry(0, bottom - _muteUnmute->height(), w, _muteUnmute->height()); + auto fullWidthButtonRect = QRect(0, bottom - _botStart->height(), width(), _botStart->height()); + _botStart->setGeometry(fullWidthButtonRect); + _unblock->setGeometry(fullWidthButtonRect); + _joinChannel->setGeometry(fullWidthButtonRect); + _muteUnmute->setGeometry(fullWidthButtonRect); } void HistoryWidget::updateFieldSize() { bool kbShowShown = _history && !_kbShown && _keyboard.hasMarkup(); - int fieldWidth = width() - _attachDocument->width(); + int fieldWidth = width() - _attachToggle->width(); fieldWidth -= _send->width(); fieldWidth -= _attachEmoji->width(); if (kbShowShown) fieldWidth -= _botKeyboardShow->width(); @@ -6525,14 +6514,14 @@ void HistoryWidget::onCheckFieldAutocomplete() { void HistoryWidget::updateFieldPlaceholder() { if (_editMsgId) { _field->setPlaceholder(lang(lng_edit_message_text)); - _send->setText(lang(lng_settings_save)); +// _send->setText(lang(lng_settings_save)); } else { 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)); } - _send->setText(lang(lng_send_button)); +// _send->setText(lang(lng_send_button)); } } @@ -7097,7 +7086,7 @@ void HistoryWidget::updateListSize(bool initial, bool loadedDown, const ScrollCh newScrollHeight -= _unblock->height(); } else { if (_canSendMessages) { - newScrollHeight -= (_field->height() + 2 * st::sendPadding); + newScrollHeight -= (_field->height() + 2 * st::historySendPadding); } if (_editMsgId || replyToId() || readyToForward() || (_previewData && _previewData->pendingTill >= 0)) { newScrollHeight -= st::historyReplyHeight; @@ -7400,7 +7389,7 @@ void HistoryWidget::updateToEndVisibility() { } void HistoryWidget::mousePressEvent(QMouseEvent *e) { - _replyForwardPressed = QRect(0, _field->y() - st::sendPadding - st::historyReplyHeight, st::historyReplySkip, st::historyReplyHeight).contains(e->pos()); + _replyForwardPressed = QRect(0, _field->y() - st::historySendPadding - st::historyReplyHeight, st::historyReplySkip, st::historyReplyHeight).contains(e->pos()); if (_replyForwardPressed && !_fieldBarCancel->isHidden()) { updateField(); } else if (_inRecord && cHasAudioCapture()) { @@ -8480,7 +8469,7 @@ void HistoryWidget::updateField() { } void HistoryWidget::drawField(Painter &p, const QRect &rect) { - int32 backy = _field->y() - st::sendPadding, backh = _field->height() + 2 * st::sendPadding; + int32 backy = _field->y() - st::historySendPadding, backh = _field->height() + 2 * st::historySendPadding; Text *from = 0, *text = 0; bool serviceColor = false, hasForward = readyToForward(); ImagePtr preview; @@ -8644,20 +8633,20 @@ void HistoryWidget::drawRecording(Painter &p) { p.setRenderHint(QPainter::HighQualityAntialiasing); float64 delta = qMin(float64(a_recordingLevel.current()) / 0x4000, 1.); int32 d = 2 * qRound(st::historyRecordSignalMin + (delta * (st::historyRecordSignalMax - st::historyRecordSignalMin))); - p.drawEllipse(_attachPhoto->x() + (_attachEmoji->width() - d) / 2, _attachPhoto->y() + (_attachPhoto->height() - d) / 2, d, d); + p.drawEllipse(_attachToggle->x() + (_attachEmoji->width() - d) / 2, _attachToggle->y() + (_attachToggle->height() - d) / 2, d, d); p.setRenderHint(QPainter::HighQualityAntialiasing, false); QString duration = formatDurationText(_recordingSamples / AudioVoiceMsgFrequency); p.setFont(st::historyRecordFont); p.setPen(st::historyRecordDurationFg); - p.drawText(_attachPhoto->x() + _attachEmoji->width(), _attachPhoto->y() + st::historyRecordTextTop + st::historyRecordFont->ascent, duration); + p.drawText(_attachToggle->x() + _attachEmoji->width(), _attachToggle->y() + st::historyRecordTextTop + st::historyRecordFont->ascent, duration); - int32 left = _attachPhoto->x() + _attachEmoji->width() + st::historyRecordFont->width(duration) + ((_send->width() - st::historyRecordVoice.width()) / 2); + int32 left = _attachToggle->x() + _attachEmoji->width() + st::historyRecordFont->width(duration) + ((_send->width() - st::historyRecordVoice.width()) / 2); int32 right = width() - _send->width(); p.setPen(anim::pen(st::historyRecordCancel, st::historyRecordCancelActive, a_recordCancelActive.current())); - p.drawText(left + (right - left - _recordCancelWidth) / 2, _attachPhoto->y() + st::historyRecordTextTop + st::historyRecordFont->ascent, lang(lng_record_cancel)); + p.drawText(left + (right - left - _recordCancelWidth) / 2, _attachToggle->y() + st::historyRecordTextTop + st::historyRecordFont->ascent, lang(lng_record_cancel)); } void HistoryWidget::drawPinnedBar(Painter &p) { @@ -8766,12 +8755,12 @@ void HistoryWidget::paintEvent(QPaintEvent *e) { } if (_scroll.isHidden()) { p.setClipRect(_scroll.geometry()); - HistoryLayout::paintEmpty(p, width(), height() - _field->height() - 2 * st::sendPadding); + HistoryLayout::paintEmpty(p, width(), height() - _field->height() - 2 * st::historySendPadding); } } else { style::font font(st::msgServiceFont); int32 w = font->width(lang(lng_willbe_history)) + st::msgPadding.left() + st::msgPadding.right(), h = font->height + st::msgServicePadding.top() + st::msgServicePadding.bottom() + 2; - QRect tr((width() - w) / 2, (height() - _field->height() - 2 * st::sendPadding - h) / 2, w, h); + QRect tr((width() - w) / 2, (height() - _field->height() - 2 * st::historySendPadding - h) / 2, w, h); HistoryLayout::ServiceMessagePainter::paintBubble(p, tr.x(), tr.y(), tr.width(), tr.height()); p.setPen(st::msgServiceColor->p); diff --git a/Telegram/SourceFiles/historywidget.h b/Telegram/SourceFiles/historywidget.h index 8af783d46c..1af2d8003c 100644 --- a/Telegram/SourceFiles/historywidget.h +++ b/Telegram/SourceFiles/historywidget.h @@ -1099,15 +1099,14 @@ private: ReportSpamPanel _reportSpamPanel; - ChildWidget _send; + ChildWidget _send; ChildWidget _unblock; ChildWidget _botStart; ChildWidget _joinChannel; ChildWidget _muteUnmute; mtpRequestId _unblockRequest = 0; mtpRequestId _reportSpamRequest = 0; - ChildWidget _attachDocument; - ChildWidget _attachPhoto; + ChildWidget _attachToggle; ChildWidget _attachEmoji; ChildWidget _botKeyboardShow; ChildWidget _botKeyboardHide; diff --git a/Telegram/SourceFiles/mainwidget.cpp b/Telegram/SourceFiles/mainwidget.cpp index 3f9ff7e99c..80c4cc1d55 100644 --- a/Telegram/SourceFiles/mainwidget.cpp +++ b/Telegram/SourceFiles/mainwidget.cpp @@ -22,7 +22,6 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "mainwidget.h" #include "styles/style_dialogs.h" -#include "styles/style_history.h" #include "ui/buttons/peer_avatar_button.h" #include "ui/buttons/round_button.h" #include "ui/widgets/shadow.h" @@ -76,7 +75,7 @@ MainWidget::MainWidget(QWidget *parent) : TWidget(parent) , _topBar(this) , _playerPlaylist(this, Media::Player::Panel::Layout::OnlyPlaylist) , _playerPanel(this, Media::Player::Panel::Layout::Full) -, _mediaType(this, st::historyAttachDropdownMenu) +, _mediaType(this, st::defaultDropdownMenu) , _api(new ApiWrap(this)) { MTP::setGlobalDoneHandler(rpcDone(&MainWidget::updateReceived)); _ptsWaiter.setRequesting(true); @@ -1386,12 +1385,12 @@ void MainWidget::mediaOverviewUpdated(PeerData *peer, MediaOverviewType type) { for (int32 i = 0; i < OverviewCount; ++i) { if (mask & (1 << i)) { switch (i) { - case OverviewPhotos: _mediaType->addAction(lang(lng_media_type_photos), this, SLOT(onPhotosSelect()), &st::historyMediaTypePhoto, &st::historyMediaTypePhotoOver); break; - case OverviewVideos: _mediaType->addAction(lang(lng_media_type_videos), this, SLOT(onVideosSelect()), &st::historyMediaTypeVideo, &st::historyMediaTypeVideoOver); break; - case OverviewMusicFiles: _mediaType->addAction(lang(lng_media_type_songs), this, SLOT(onSongsSelect()), &st::historyMediaTypeSong, &st::historyMediaTypeSongOver); break; - case OverviewFiles: _mediaType->addAction(lang(lng_media_type_files), this, SLOT(onDocumentsSelect()), &st::historyMediaTypeFile, &st::historyMediaTypeFileOver); break; - case OverviewVoiceFiles: _mediaType->addAction(lang(lng_media_type_audios), this, SLOT(onAudiosSelect()), &st::historyMediaTypeVoice, &st::historyMediaTypeVoiceOver); break; - case OverviewLinks: _mediaType->addAction(lang(lng_media_type_links), this, SLOT(onLinksSelect()), &st::historyMediaTypeLink, &st::historyMediaTypeLinkOver); break; + case OverviewPhotos: _mediaType->addAction(lang(lng_media_type_photos), this, SLOT(onPhotosSelect())); break; + case OverviewVideos: _mediaType->addAction(lang(lng_media_type_videos), this, SLOT(onVideosSelect())); break; + case OverviewMusicFiles: _mediaType->addAction(lang(lng_media_type_songs), this, SLOT(onSongsSelect())); break; + case OverviewFiles: _mediaType->addAction(lang(lng_media_type_files), this, SLOT(onDocumentsSelect())); break; + case OverviewVoiceFiles: _mediaType->addAction(lang(lng_media_type_audios), this, SLOT(onAudiosSelect())); break; + case OverviewLinks: _mediaType->addAction(lang(lng_media_type_links), this, SLOT(onLinksSelect())); break; } } } diff --git a/Telegram/SourceFiles/settings/settings_scale_widget.cpp b/Telegram/SourceFiles/settings/settings_scale_widget.cpp index 710bd4a390..a2971788ea 100644 --- a/Telegram/SourceFiles/settings/settings_scale_widget.cpp +++ b/Telegram/SourceFiles/settings/settings_scale_widget.cpp @@ -81,10 +81,6 @@ void ScaleWidget::onAutoChosen() { } void ScaleWidget::setScale(DBIScale newScale) { - if (cConfigScale() == newScale) return; - - cSetConfigScale(newScale); - Local::writeSettings(); if (newScale == dbisAuto && !_auto->checked()) { _auto->setChecked(true); } else if (newScale != dbisAuto && _auto->checked()) { @@ -94,10 +90,17 @@ void ScaleWidget::setScale(DBIScale newScale) { if (_scale->activeSection() != newScale - 1) { _scale->setActiveSection(newScale - 1); } - if (cEvalScale(cConfigScale()) != cEvalScale(cRealScale())) { - auto box = new ConfirmBox(lang(lng_settings_need_restart), lang(lng_settings_restart_now), st::defaultBoxButton, lang(lng_settings_restart_later)); + + if (cEvalScale(newScale) != cEvalScale(cRealScale())) { + _newScale = newScale; + + auto box = new ConfirmBox(lang(lng_settings_need_restart), lang(lng_settings_restart_now), st::defaultBoxButton, lang(lng_cancel)); connect(box, SIGNAL(confirmed()), this, SLOT(onRestartNow())); + connect(box, SIGNAL(cancelled()), this, SLOT(onCancel())); Ui::showLayer(box); + } else { + cSetConfigScale(newScale); + Local::writeSettings(); } } @@ -116,7 +119,13 @@ void ScaleWidget::scaleChanged() { } void ScaleWidget::onRestartNow() { + cSetConfigScale(_newScale); + Local::writeSettings(); App::restart(); } +void ScaleWidget::onCancel() { + setScale(cRealScale()); +} + } // namespace Settings diff --git a/Telegram/SourceFiles/settings/settings_scale_widget.h b/Telegram/SourceFiles/settings/settings_scale_widget.h index 1f975a7265..c75cacf6f7 100644 --- a/Telegram/SourceFiles/settings/settings_scale_widget.h +++ b/Telegram/SourceFiles/settings/settings_scale_widget.h @@ -38,6 +38,7 @@ public: private slots: void onAutoChosen(); void onRestartNow(); + void onCancel(); private: void scaleChanged(); @@ -47,6 +48,8 @@ private: ChildWidget _auto = { nullptr }; ChildWidget _scale = { nullptr }; + DBIScale _newScale = dbisAuto; + }; } // namespace Settings diff --git a/Telegram/SourceFiles/ui/buttons/history_down_button.cpp b/Telegram/SourceFiles/ui/buttons/history_down_button.cpp index bb1fc740bb..832f890402 100644 --- a/Telegram/SourceFiles/ui/buttons/history_down_button.cpp +++ b/Telegram/SourceFiles/ui/buttons/history_down_button.cpp @@ -143,7 +143,7 @@ EmojiButton::EmojiButton(QWidget *parent, const style::IconButton &st) : Button( void EmojiButton::paintEvent(QPaintEvent *e) { Painter p(this); - uint64 ms = getms(); + auto ms = getms(); p.fillRect(e->rect(), st::historyComposeAreaBg); diff --git a/Telegram/SourceFiles/ui/widgets/widgets.style b/Telegram/SourceFiles/ui/widgets/widgets.style index 40604159d4..2945416cd1 100644 --- a/Telegram/SourceFiles/ui/widgets/widgets.style +++ b/Telegram/SourceFiles/ui/widgets/widgets.style @@ -206,7 +206,7 @@ discreteSliderDuration: 200; defaultMenuArrow: icon {{ "dropdown_submenu_arrow", #373737 }}; defaultMenu: Menu { - skip: 5px; + skip: 8px; itemBg: windowBg; itemBgOver: windowOverBg;