From 3c1866f52d88f9430341f9a9f1ed3dbbb3b794ea Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 27 Apr 2021 16:03:12 +0400 Subject: [PATCH] Allow to change some styles in CallButton. --- ui/widgets/call_button.cpp | 16 ++++++++++++++++ ui/widgets/call_button.h | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/ui/widgets/call_button.cpp b/ui/widgets/call_button.cpp index 638c67e..f1991d0 100644 --- a/ui/widgets/call_button.cpp +++ b/ui/widgets/call_button.cpp @@ -26,6 +26,10 @@ CallButton::CallButton( : RippleButton(parent, stFrom.button.ripple) , _stFrom(&stFrom) , _stTo(stTo) { + init(); +} + +void CallButton::init() { resize(_stFrom->button.width, _stFrom->button.height); _bgMask = RippleAnimation::ellipseMask(QSize(_stFrom->bgSize, _stFrom->bgSize)); @@ -221,6 +225,18 @@ void CallButton::setColorOverrides(rpl::producer &&colors) { }, lifetime()); } +void CallButton::setStyle( + const style::CallButton &stFrom, + const style::CallButton *stTo) { + if (_stFrom == &stFrom && _stTo == stTo) { + return; + } + _stFrom = &stFrom; + _stTo = stTo; + init(); + update(); +} + QPoint CallButton::prepareRippleStartPosition() const { return mapFromGlobal(QCursor::pos()) - _stFrom->button.rippleAreaPosition; } diff --git a/ui/widgets/call_button.h b/ui/widgets/call_button.h index cb65c57..7823483 100644 --- a/ui/widgets/call_button.h +++ b/ui/widgets/call_button.h @@ -31,6 +31,10 @@ public: void setText(rpl::producer text); void setColorOverrides(rpl::producer &&colors); + void setStyle( + const style::CallButton &stFrom, + const style::CallButton *stTo = nullptr); + protected: void paintEvent(QPaintEvent *e) override; @@ -40,6 +44,7 @@ protected: QPoint prepareRippleStartPosition() const override; private: + void init(); QPoint iconPosition(not_null st) const; void mixIconMasks();