/* 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 */ #pragma once #include "ui/effects/round_checkbox.h" namespace tr { template struct phrase; } // namespace tr enum lngtag_count : int; namespace Data { struct SubscriptionOption; } // namespace Data namespace style { struct RoundImageCheckbox; struct PremiumOption; struct TextStyle; } // namespace style namespace Ui { class GenericBox; class RadiobuttonGroup; class VerticalLayout; namespace Premium { void AddBubbleRow( not_null parent, rpl::producer<> showFinishes, int min, int current, int max, bool premiumPossible, std::optional> phrase, const style::icon *icon); void AddLimitRow( not_null parent, QString max, QString min = {}); void AddLimitRow( not_null parent, int max, std::optional> phrase, int min = 0); struct AccountsRowArgs final { std::shared_ptr group; const style::RoundImageCheckbox &st; const style::TextStyle &stName; const style::color &stNameFg; struct Entry final { QString name; Ui::RoundImageCheckbox::PaintRoundImage paintRoundImage; }; std::vector entries; }; void AddAccountsRow( not_null parent, AccountsRowArgs &&args); [[nodiscard]] QGradientStops LimitGradientStops(); [[nodiscard]] QGradientStops ButtonGradientStops(); [[nodiscard]] QGradientStops LockGradientStops(); [[nodiscard]] QGradientStops FullHeightGradientStops(); [[nodiscard]] QGradientStops GiftGradientStops(); struct ListEntry final { rpl::producer subtitle; rpl::producer description; int leftNumber = 0; int rightNumber = 0; std::optional customRightText; }; void ShowListBox( not_null box, std::vector entries); void AddGiftOptions( not_null parent, std::shared_ptr group, std::vector gifts, const style::PremiumOption &st, bool topBadges = false); } // namespace Premium } // namespace Ui