/* 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 "editor/scene_item_base.h" namespace Data { class DocumentMedia; } // namespace Data namespace Lottie { class SinglePlayer; } // namespace Lottie class DocumentData; namespace Editor { class ItemSticker : public ItemBase { public: enum { Type = ItemBase::Type + 2 }; ItemSticker( not_null document, rpl::producer zoomValue, std::shared_ptr zPtr, int size, int x, int y); void paint( QPainter *p, const QStyleOptionGraphicsItem *option, QWidget *widget) override; MTPInputDocument sticker() const; int type() const override; private: const not_null _document; const std::shared_ptr _mediaView; struct { std::unique_ptr player; rpl::lifetime lifetime; } _lottie; QPixmap _pixmap; rpl::lifetime _loadingLifetime; }; } // namespace Editor