/* 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 "base/object_ptr.h" class DocumentData; namespace ChatHelpers { class Show; } // namespace ChatHelpers namespace Data { struct ReactionId; } // namespace Data namespace Ui { class BoxContent; class GenericBox; class GradientButton; } // namespace Ui namespace Window { class SessionController; } // namespace Window namespace Main { class Session; } // namespace Main void ShowStickerPreviewBox( std::shared_ptr show, not_null document); void DoubledLimitsPreviewBox( not_null box, not_null session); void UpgradedStoriesPreviewBox( not_null box, not_null session); enum class PremiumFeature { // Premium features. Stories, DoubleLimits, MoreUpload, FasterDownload, VoiceToText, NoAds, EmojiStatus, InfiniteReactions, Stickers, AnimatedEmoji, AdvancedChatManagement, ProfileBadge, AnimatedUserpics, RealTimeTranslation, Wallpapers, TagsForMessages, LastSeen, MessagePrivacy, Business, // Business features. BusinessLocation, BusinessHours, QuickReplies, GreetingMessage, AwayMessage, BusinessBots, kCount, }; void ShowPremiumPreviewBox( not_null controller, PremiumFeature section, Fn)> shown = nullptr); void ShowPremiumPreviewBox( std::shared_ptr show, PremiumFeature section, Fn)> shown = nullptr, bool hideSubscriptionButton = false); void ShowPremiumPreviewToBuy( not_null controller, PremiumFeature section, Fn hiddenCallback = nullptr); void PremiumUnavailableBox(not_null box); [[nodiscard]] object_ptr CreateUnlockButton( QWidget *parent, rpl::producer text);