From 42e544abff73aa389c12513894d355a0daaae75e Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 28 Oct 2016 11:02:45 +0300 Subject: [PATCH] All icons were moved from sprites to separate icon files. --- Telegram/Resources/art/sprite.png | Bin 5286 -> 775 bytes Telegram/Resources/art/sprite_200x.png | Bin 10769 -> 2825 bytes Telegram/Resources/basic.style | 11 ++-- Telegram/Resources/icons/emoji_delete.png | Bin 0 -> 131 bytes Telegram/Resources/icons/emoji_delete@2x.png | Bin 0 -> 182 bytes Telegram/Resources/icons/emoji_delete_bg.png | Bin 0 -> 137 bytes .../Resources/icons/emoji_delete_bg@2x.png | Bin 0 -> 243 bytes .../Resources/icons/emoji_switch_left.png | Bin 0 -> 145 bytes .../Resources/icons/emoji_switch_left@2x.png | Bin 0 -> 236 bytes .../Resources/icons/emoji_switch_right.png | Bin 0 -> 145 bytes .../Resources/icons/emoji_switch_right@2x.png | Bin 0 -> 213 bytes .../inline_bot_layout_internal.cpp | 6 +- Telegram/SourceFiles/mediaview.cpp | 54 +++++++++++------- Telegram/SourceFiles/stickers/emoji_pan.cpp | 24 ++++---- Telegram/SourceFiles/stickers/stickers.style | 13 ++--- Telegram/SourceFiles/window/window.style | 2 - 16 files changed, 61 insertions(+), 49 deletions(-) create mode 100644 Telegram/Resources/icons/emoji_delete.png create mode 100644 Telegram/Resources/icons/emoji_delete@2x.png create mode 100644 Telegram/Resources/icons/emoji_delete_bg.png create mode 100644 Telegram/Resources/icons/emoji_delete_bg@2x.png create mode 100644 Telegram/Resources/icons/emoji_switch_left.png create mode 100644 Telegram/Resources/icons/emoji_switch_left@2x.png create mode 100644 Telegram/Resources/icons/emoji_switch_right.png create mode 100644 Telegram/Resources/icons/emoji_switch_right@2x.png diff --git a/Telegram/Resources/art/sprite.png b/Telegram/Resources/art/sprite.png index d76672e0b11f672fbcdc43c98d539ad48c70b9e1..5c0c7a7ac15a78aadeb00b712a4e2f958c7c724c 100644 GIT binary patch literal 775 zcmeAS@N?(olHy`uVBq!ia0y~yVC(_ny&P;n5jJ^8Ck6(lbDl1aAr*7po-^cSFyLS? zkaJPWo0Y~XDR4{PKsEJLlA@$}>QwcwQN>FVdQ&MBb@ E08Dllvj6}9 literal 5286 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 diff --git a/Telegram/Resources/basic.style b/Telegram/Resources/basic.style index cc07382ad..e3c5f77eb 100644 --- a/Telegram/Resources/basic.style +++ b/Telegram/Resources/basic.style @@ -1363,10 +1363,6 @@ radialLine: 3px; radialDuration: 350; radialPeriod: 3000; radialBgOpacity: 0.4; -radialDownload: sprite(346px, 0px, 50px, 50px); -radialDownloadOpacity: 0.8; -radialCancel: sprite(378px, 50px, 18px, 18px); -radialCancelOpacity: 1.0; downloadPathSkip: 10px; @@ -1488,3 +1484,10 @@ profileTopBarBackIcon: icon {{ "title_previous", profileTopBarBackIconFg }}; boxCancelIcon: icon {{ "box_cancel", #000000 }}; historyReplyCancelIcon: icon {{ "box_cancel", #adadad }}; + +notifyBg: white; +notifyFadeRight: icon {{ "fade_horizontal_right", notifyBg }}; + +emojiPanCategories: #f7f7f7; +stickerIconLeft: icon {{ "fade_horizontal_left", emojiPanCategories }}; +stickerIconRight: icon {{ "fade_horizontal_right", emojiPanCategories }}; diff --git a/Telegram/Resources/icons/emoji_delete.png b/Telegram/Resources/icons/emoji_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..8023fa4239288690840881fb33506c7229d1c148 GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kFHaZ85RHj*`#rfB6nK~y|NkF6 z&um^x7xy;Xt%+>2)Hqd_r9bf9u$OT;kLL}x17_=e5+fV9_izR7IbP0l+XkKhT1Ka literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/emoji_delete@2x.png b/Telegram/Resources/icons/emoji_delete@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bae82620aca7ef381c0e863294fc36683c98a73b GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjwVp1HAs(G~Lml}JC~zG9``^D- z%6g}c6xEyu mOWwJAqtRyz0l@=bq|60kwqO2~IP*WyYz9wPKbLh*2~7azdo-*7 literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/emoji_delete_bg@2x.png b/Telegram/Resources/icons/emoji_delete_bg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..08c32768571e0f9152b4cf9e21e59c28b467450f GIT binary patch literal 243 zcmVBQer8Ez4yz~-aAVvOeuZbmM4~&y~0CyPO1O^002ovPDHLkV1oE`VRQfh literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/emoji_switch_left.png b/Telegram/Resources/icons/emoji_switch_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c4b3f9089f5c9fa2f05da7cd2de6db5b57ad0d2f GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^96-#&!3HGb=lz)rq#`_B9780g)=oIcd%%E$+4riV z;3GxMg*w90JL;}WW$ vUP-OFr8G_V??g_k>vJyrU;OU!?08$x71Q`0%t-MA+QH!I>gTe~DWM4f0`@g# literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/emoji_switch_left@2x.png b/Telegram/Resources/icons/emoji_switch_left@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..63c5dc067c68f9112a8123b3b7e641d0c3980f73 GIT binary patch literal 236 zcmVi%1m62~rq)GL zb3zDtUJvI?(_|AI!7)a4&XolP_`kpap9_rev7iFp3o7AXK?A%A8sU%N0;~_*kn2Y% zN&3FG2^uA~BBhkhB=#zwNa`+AN=b)dunCNkwg)9ko&Z=X$~?~y5sc%w&bqF{vMgJX mYIj0X0qCpr_wSJ0eZK*G=#7uARLa}{00005o(<^SS^K-+#2S08D+QH!I>gTe~DWM4fx4tz^ literal 0 HcmV?d00001 diff --git a/Telegram/Resources/icons/emoji_switch_right@2x.png b/Telegram/Resources/icons/emoji_switch_right@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5230585da16b18a8bc78483214f41bd1b19ab98d GIT binary patch literal 213 zcmV;`04o29P)} zf?hkdR=&#wNhxuR5rKd~$Z`olwuck44>%ylpb>JOngQ~;K^Gz4zv&m`em2`y{ig&G z@i)<6J_1C9b57qNIm{a%=j<^rfPk3@nE|4d;y14)sH)e@2Y}rwx32Xk^SY@uYgRtM P00000NkvXXu0mjfz>rjA literal 0 HcmV?d00001 diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp index 3dd81b3df..ed7b1e7db 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp @@ -199,16 +199,16 @@ void Gif::paint(Painter &p, const QRect &clip, const PaintContext *context) cons if (_delete && (_state & StateFlag::Over)) { float64 deleteOver = _a_deleteOver.current(context->ms, (_state & StateFlag::DeleteOver) ? 1 : 0); - QPoint deletePos = QPoint(_width - st::stickerPanDelete.pxWidth(), 0); + QPoint deletePos = QPoint(_width - st::stickerPanDelete.width(), 0); p.setOpacity(deleteOver + (1 - deleteOver) * st::stickerPanDeleteOpacity); - p.drawSpriteLeft(deletePos, _width, st::stickerPanDelete); + st::stickerPanDelete.paint(p, deletePos, _width); p.setOpacity(1); } } void Gif::getState(ClickHandlerPtr &link, HistoryCursorState &cursor, int x, int y) const { if (x >= 0 && x < _width && y >= 0 && y < st::inlineMediaHeight) { - if (_delete && (rtl() ? _width - x : x) >= _width - st::stickerPanDelete.pxWidth() && y < st::stickerPanDelete.pxHeight()) { + if (_delete && (rtl() ? _width - x : x) >= _width - st::stickerPanDelete.width() && y < st::stickerPanDelete.height()) { link = _delete; } else { link = _send; diff --git a/Telegram/SourceFiles/mediaview.cpp b/Telegram/SourceFiles/mediaview.cpp index 6b497473f..fd3538c89 100644 --- a/Telegram/SourceFiles/mediaview.cpp +++ b/Telegram/SourceFiles/mediaview.cpp @@ -19,9 +19,9 @@ Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org */ #include "stdafx.h" -#include "lang.h" - #include "mediaview.h" + +#include "lang.h" #include "mainwidget.h" #include "mainwindow.h" #include "application.h" @@ -30,6 +30,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org #include "media/media_clip_reader.h" #include "media/view/media_clip_controller.h" #include "styles/style_mediaview.h" +#include "styles/style_history.h" #include "media/media_audio.h" #include "history/history_media_types.h" @@ -501,8 +502,9 @@ void MediaView::step_radial(uint64 ms, bool timer) { _radial.stop(); return; } + auto wasAnimating = _radial.animating(); _radial.update(radialProgress(), !radialLoading(), ms + radialTimeShift()); - if (timer && _radial.animating()) { + if (timer && (wasAnimating || _radial.animating())) { update(radialRect()); } if (_doc && _doc->loaded() && _doc->size < MediaViewImageSizeLimit && (!_radial.animating() || _doc->isAnimation() || _doc->isVideo())) { @@ -1649,7 +1651,7 @@ void MediaView::paintEvent(QPaintEvent *e) { } } else { if (_docRect.intersects(r)) { - p.fillRect(_docRect, st::mvDocBg->b); + p.fillRect(_docRect, st::mvDocBg); if (_docIconRect.intersects(r)) { bool radial = false; float64 radialOpacity = 0; @@ -1815,30 +1817,40 @@ void MediaView::paintEvent(QPaintEvent *e) { void MediaView::paintDocRadialLoading(Painter &p, bool radial, float64 radialOpacity) { float64 o = overLevel(OverIcon); - if (radial) { - if (!_doc->loaded() && radialOpacity < 1) { - p.setOpacity((o * 1. + (1 - o) * st::radialDownloadOpacity) * (1 - radialOpacity)); - p.drawSpriteCenter(_docIconRect, st::radialDownload); - } - + if (radial || (_doc && !_doc->loaded())) { QRect inner(QPoint(_docIconRect.x() + ((_docIconRect.width() - st::radialSize.width()) / 2), _docIconRect.y() + ((_docIconRect.height() - st::radialSize.height()) / 2)), st::radialSize); + p.setPen(Qt::NoPen); - p.setBrush(st::black); - p.setOpacity(radialOpacity * st::radialBgOpacity); + if (o == 0.) { + p.setOpacity(_doc->loaded() ? radialOpacity : 1.); + p.setBrush(st::msgDateImgBg); + } else if (o == 1.) { + p.setOpacity(_doc->loaded() ? radialOpacity : 1.); + p.setBrush(st::msgDateImgBgOver); + } else { + p.setOpacity((st::msgDateImgBg->c.alphaF() * (1 - o)) + (st::msgDateImgBgOver->c.alphaF() * o)); + p.setBrush(st::black); + } p.setRenderHint(QPainter::HighQualityAntialiasing); p.drawEllipse(inner); p.setRenderHint(QPainter::HighQualityAntialiasing, false); - p.setOpacity((o * 1. + (1 - o) * st::radialCancelOpacity) * radialOpacity); - p.drawSpriteCenter(_docIconRect, st::radialCancel); - p.setOpacity(1); - - QRect arc(inner.marginsRemoved(QMargins(st::radialLine, st::radialLine, st::radialLine, st::radialLine))); - _radial.draw(p, arc, st::radialLine, st::white); - } else if (_doc && !_doc->loaded()) { - p.setOpacity((o * 1. + (1 - o) * st::radialDownloadOpacity)); - p.drawSpriteCenter(_docIconRect, st::radialDownload); + p.setOpacity(1.); + auto icon = ([radial, this]() -> const style::icon* { + if (radial || _doc->loading()) { + return &st::historyFileInCancel; + } + return &st::historyFileInDownload; + })(); + if (icon) { + icon->paintInCenter(p, inner); + } + if (radial) { + p.setOpacity(1); + QRect arc(inner.marginsRemoved(QMargins(st::radialLine, st::radialLine, st::radialLine, st::radialLine))); + _radial.draw(p, arc, st::radialLine, st::white); + } } } diff --git a/Telegram/SourceFiles/stickers/emoji_pan.cpp b/Telegram/SourceFiles/stickers/emoji_pan.cpp index c3475d53c..e1252378c 100644 --- a/Telegram/SourceFiles/stickers/emoji_pan.cpp +++ b/Telegram/SourceFiles/stickers/emoji_pan.cpp @@ -1137,9 +1137,9 @@ void StickerPanInner::paintSticker(Painter &p, Set &set, int y, int index) { if (hover > 0 && set.id == Stickers::RecentSetId && _custom.at(index)) { float64 xHover = set.hovers[set.pack.size() + index]; - QPoint xPos = pos + QPoint(st::stickerPanSize.width() - st::stickerPanDelete.pxWidth(), 0); + QPoint xPos = pos + QPoint(st::stickerPanSize.width() - st::stickerPanDelete.width(), 0); p.setOpacity(hover * (xHover + (1 - xHover) * st::stickerPanDeleteOpacity)); - p.drawSpriteLeft(xPos, width(), st::stickerPanDelete); + st::stickerPanDelete.paint(p, xPos, width()); p.setOpacity(1); } } @@ -2197,7 +2197,7 @@ void StickerPanInner::updateSelected() { } else { if (set.id == Stickers::RecentSetId && _custom[selIndex]) { int inx = sx - (selIndex % StickerPanPerRow) * st::stickerPanSize.width(), iny = p.y() - y - ((selIndex / StickerPanPerRow) * st::stickerPanSize.height()); - if (inx >= st::stickerPanSize.width() - st::stickerPanDelete.pxWidth() && iny < st::stickerPanDelete.pxHeight()) { + if (inx >= st::stickerPanSize.width() - st::stickerPanDelete.width() && iny < st::stickerPanDelete.height()) { selIndex += set.pack.size(); } } @@ -2531,14 +2531,14 @@ void EmojiSwitchButton::updateText(const QString &inlineBotUsername) { void EmojiSwitchButton::paintEvent(QPaintEvent *e) { Painter p(this); - p.setFont(st::emojiPanHeaderFont->f); - p.setPen(st::emojiSwitchColor->p); + p.setFont(st::emojiPanHeaderFont); + p.setPen(st::emojiSwitchColor); if (_toStickers) { p.drawTextRight(st::emojiSwitchSkip, st::emojiPanHeaderTop, width(), _text, _textWidth); - p.drawSpriteRight(QPoint(st::emojiSwitchImgSkip - st::emojiSwitchStickers.pxWidth(), (st::emojiPanHeader - st::emojiSwitchStickers.pxHeight()) / 2), width(), st::emojiSwitchStickers); + st::emojiSwitchStickers.paint(p, width() - st::emojiSwitchImgSkip, (st::emojiPanHeader - st::emojiSwitchStickers.height()) / 2, width()); } else { - p.drawTextRight(st::emojiSwitchImgSkip - st::emojiSwitchEmoji.pxWidth(), st::emojiPanHeaderTop, width(), lang(lng_switch_emoji), _textWidth); - p.drawSpriteRight(QPoint(st::emojiSwitchSkip + _textWidth - st::emojiSwitchEmoji.pxWidth(), (st::emojiPanHeader - st::emojiSwitchEmoji.pxHeight()) / 2), width(), st::emojiSwitchEmoji); + p.drawTextRight(st::emojiSwitchImgSkip - st::emojiSwitchEmoji.width(), st::emojiPanHeaderTop, width(), lang(lng_switch_emoji), _textWidth); + st::emojiSwitchEmoji.paint(p, width() - st::emojiSwitchSkip - _textWidth, (st::emojiPanHeader - st::emojiSwitchEmoji.height()) / 2, width()); } } @@ -2803,15 +2803,15 @@ void EmojiPan::paintEvent(QPaintEvent *e) { p.setOpacity(1.); p.fillRect(selx, _iconsTop + st::emojiCategory.height - st::stickerIconPadding, st::emojiCategory.width, st::stickerIconSel, st::stickerIconSelColor); - float64 o_left = snap(float64(_iconsX.current()) / st::stickerIconLeft.pxWidth(), 0., 1.); + float64 o_left = snap(float64(_iconsX.current()) / st::stickerIconLeft.width(), 0., 1.); if (o_left > 0) { p.setOpacity(o_left); - p.drawSpriteLeft(QRect(_iconsLeft, _iconsTop, st::stickerIconLeft.pxWidth(), st::emojiCategory.height), width(), st::stickerIconLeft); + st::stickerIconLeft.fill(p, rtlrect(_iconsLeft, _iconsTop, st::stickerIconLeft.width(), st::emojiCategory.height, width())); } - float64 o_right = snap(float64(_iconsMax - _iconsX.current()) / st::stickerIconRight.pxWidth(), 0., 1.); + float64 o_right = snap(float64(_iconsMax - _iconsX.current()) / st::stickerIconRight.width(), 0., 1.); if (o_right > 0) { p.setOpacity(o_right); - p.drawSpriteRight(QRect(width() - _iconsLeft - 7 * st::emojiCategory.width, _iconsTop, st::stickerIconRight.pxWidth(), st::emojiCategory.height), width(), st::stickerIconRight); + st::stickerIconRight.fill(p, rtlrect(width() - _iconsLeft - 7 * st::emojiCategory.width, _iconsTop, st::stickerIconRight.width(), st::emojiCategory.height, width())); } } } else if (_stickersShown) { diff --git a/Telegram/SourceFiles/stickers/stickers.style b/Telegram/SourceFiles/stickers/stickers.style index f5d08bb54..2d2c67324 100644 --- a/Telegram/SourceFiles/stickers/stickers.style +++ b/Telegram/SourceFiles/stickers/stickers.style @@ -101,8 +101,6 @@ emojiSymbolsActive: icon {{ "emoji_symbols", #58b2ed }}; emojiSavedGifs: icon {{ "emoji_gif", #b3b3b3 }}; emojiSavedGifsActive: icon {{ "emoji_gif", #58b2ed }}; -emojiPanCategories: #f7f7f7; - emojiCategory: IconButton { width: 42px; height: 46px; @@ -144,20 +142,21 @@ emojiColorsSepColor: #d5d5d5; emojiSwitchSkip: 27px; emojiSwitchImgSkip: 21px; -emojiSwitchStickers: sprite(318px, 328px, 8px, 12px); -emojiSwitchEmoji: sprite(310px, 328px, 8px, 12px); emojiSwitchColor: #42a8db; +emojiSwitchStickers: icon {{ "emoji_switch_right", emojiSwitchColor }}; +emojiSwitchEmoji: icon {{ "emoji_switch_left", emojiSwitchColor }}; stickerPanSize: size(64px, 64px); stickerPanPadding: 11px; -stickerPanDelete: sprite(128px, 132px, 12px, 12px); +stickerPanDelete: icon { + { "emoji_delete_bg", #000000cc }, + { "emoji_delete", #ffffff }, +}; stickerPanDeleteOpacity: 0.5; stickerIconPadding: 5px; stickerIconOpacity: 0.7; stickerIconSel: 2px; stickerIconSelColor: #58b2ed; -stickerIconLeft: sprite(342px, 72px, 40px, 1px); -stickerIconRight: sprite(342px, 73px, 40px, 1px); stickerIconMove: 400; stickerPreviewDuration: 150; stickerPreviewBg: #FFFFFFB0; diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style index 7f7cb09b2..378c81bae 100644 --- a/Telegram/SourceFiles/window/window.style +++ b/Telegram/SourceFiles/window/window.style @@ -29,7 +29,6 @@ titleIcon: icon { }; titleCounterPosition: point(17px, 17px); -notifyBg: white; notifyBorder: #f1f1f1; notifyBorderWidth: 1px; notifySlowHide: 4000; @@ -60,7 +59,6 @@ notifyActionsDuration: 200; notifyHideAll: RoundButton(defaultBoxButton) { } -notifyFadeRight: icon {{ "fade_horizontal_right", notifyBg }}; notifyReplyArea: InputArea(defaultInputArea) { font: normalFont; textMargins: margins(8px, 8px, 8px, 6px);