/
diev
/
stelegramdesktop-tdesktop
Обзор
Документация
Войти
/
diev
/
stelegramdesktop-tdesktop
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
Telegram/SourceFiles/ui/controls/jump_down_button.cpp
67 строк
2 KB
John Preston
Apply dark theme to reply controls in stories.
20 июл 2023, 06:20
20 июл 2023, 06:20
75d2b59
Код
Авторство
О чём код?
/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #include "ui/controls/jump_down_button.h" #include "ui/effects/ripple_animation.h" #include "ui/unread_badge_paint.h" #include "styles/style_chat_helpers.h" namespace Ui { JumpDownButton::JumpDownButton( QWidget *parent, const style::TwoIconButton &st) : RippleButton(parent, st.ripple) , _st(st) { resize(_st.width, _st.height); setCursor(style::cur_pointer); hide(); } QImage JumpDownButton::prepareRippleMask() const { return Ui::RippleAnimation::EllipseMask( QSize(_st.rippleAreaSize, _st.rippleAreaSize)); } QPoint JumpDownButton::prepareRippleStartPosition() const { return mapFromGlobal(QCursor::pos()) - _st.rippleAreaPosition; } void JumpDownButton::paintEvent(QPaintEvent *e) { auto p = QPainter(this); const auto over = isOver(); const auto down = isDown(); ((over || down) ? _st.iconBelowOver : _st.iconBelow).paint(p, _st.iconPosition, width()); paintRipple(p, _st.rippleAreaPosition.x(), _st.rippleAreaPosition.y()); ((over || down) ? _st.iconAboveOver : _st.iconAbove).paint(p, _st.iconPosition, width()); if (_unreadCount > 0) { auto unreadString = QString::number(_unreadCount); Ui::UnreadBadgeStyle st; st.align = style::al_center; st.font = st::historyToDownBadgeFont; st.size = st::historyToDownBadgeSize; st.sizeId = Ui::UnreadBadgeSize::HistoryToDown; Ui::PaintUnreadBadge(p, unreadString, width(), 0, st, 4); } } void JumpDownButton::setUnreadCount(int unreadCount) { if (_unreadCount != unreadCount) { _unreadCount = unreadCount; update(); } } } // namespace Ui