/* 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 template class object_ptr; class PeerData; namespace Data { struct CreditsHistoryEntry; } // namespace Data namespace Window { class SessionController; } // namespace Window namespace Ui { class GenericBox; class RpWidget; class VerticalLayout; } // namespace Ui namespace Settings { void FillCreditOptions( not_null controller, not_null container, int minCredits, Fn paid); [[nodiscard]] not_null AddBalanceWidget( not_null parent, rpl::producer balanceValue, bool rightAlign); void AddWithdrawalWidget( not_null container, not_null controller, not_null peer, rpl::producer secondButtonUrl, rpl::producer availableBalanceValue, rpl::producer dateValue, rpl::producer lockedValue, rpl::producer usdValue); void ReceiptCreditsBox( not_null box, not_null controller, PeerData *premiumBot, const Data::CreditsHistoryEntry &e); [[nodiscard]] object_ptr GenericEntryPhoto( not_null parent, Fn(Fn update)> callback, int photoSize); [[nodiscard]] object_ptr HistoryEntryPhoto( not_null parent, not_null photo, int photoSize); [[nodiscard]] object_ptr PaidMediaThumbnail( not_null parent, not_null photo, PhotoData *second, int totalCount, int photoSize); void SmallBalanceBox( not_null box, not_null controller, int creditsNeeded, UserId botId, Fn paid); } // namespace Settings