Show "Unlock emoji" button for premium sets.

This commit is contained in:
John Preston
2022-07-18 17:15:27 +03:00
parent bb7249f280
commit bf286cf175
4 changed files with 70 additions and 35 deletions
@@ -1159,31 +1159,6 @@ void ReactionPreview::paintEffect(QPainter &p) {
return CreateGradientButton(parent, Ui::Premium::ButtonGradientStops());
}
[[nodiscard]] object_ptr<Ui::GradientButton> CreateUnlockButton(
QWidget *parent,
rpl::producer<QString> text) {
auto result = CreatePremiumButton(parent);
const auto &st = st::premiumPreviewBox.button;
result->resize(result->width(), st.height);
const auto label = Ui::CreateChild<Ui::FlatLabel>(
result.data(),
std::move(text),
st::premiumPreviewButtonLabel);
label->setAttribute(Qt::WA_TransparentForMouseEvents);
rpl::combine(
result->widthValue(),
label->widthValue()
) | rpl::start_with_next([=](int outer, int width) {
label->moveToLeft(
(outer - width) / 2,
st::premiumPreviewBox.button.textTop,
outer);
}, label->lifetime());
return result;
}
[[nodiscard]] object_ptr<Ui::RpWidget> CreateSwitch(
not_null<Ui::RpWidget*> parent,
not_null<rpl::variable<PremiumPreview>*> selected) {
@@ -1793,3 +1768,28 @@ void DoubledLimitsPreviewBox(
});
Ui::Premium::ShowListBox(box, std::move(entries));
}
object_ptr<Ui::GradientButton> CreateUnlockButton(
QWidget *parent,
rpl::producer<QString> text) {
auto result = CreatePremiumButton(parent);
const auto &st = st::premiumPreviewBox.button;
result->resize(result->width(), st.height);
const auto label = Ui::CreateChild<Ui::FlatLabel>(
result.data(),
std::move(text),
st::premiumPreviewButtonLabel);
label->setAttribute(Qt::WA_TransparentForMouseEvents);
rpl::combine(
result->widthValue(),
label->widthValue()
) | rpl::start_with_next([=](int outer, int width) {
label->moveToLeft(
(outer - width) / 2,
st::premiumPreviewBox.button.textTop,
outer);
}, label->lifetime());
return result;
}