/* 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 #include "window/section_widget.h" namespace Window { class ConnectionState; } // namespace Window namespace Info { class Memento; class MoveMemento; class Controller; class WrapWidget; enum class Wrap; class SectionWidget final : public Window::SectionWidget { public: SectionWidget( QWidget *parent, not_null window, Wrap wrap, not_null memento); SectionWidget( QWidget *parent, not_null window, Wrap wrap, not_null memento); Dialogs::RowDescriptor activeChat() const override; bool hasTopBarShadow() const override; QPixmap grabForShowAnimation( const Window::SectionSlideParams ¶ms) override; bool showInternal( not_null memento, const Window::SectionShow ¶ms) override; std::shared_ptr createMemento() override; object_ptr moveContentToLayer( QRect bodyGeometry) override; rpl::producer<> removeRequests() const override; // Float player interface. bool floatPlayerHandleWheelEvent(QEvent *e) override; QRect floatPlayerAvailableRect() override; protected: void doSetInnerFocus() override; void showFinishedHook() override; void showAnimatedHook( const Window::SectionSlideParams ¶ms) override; void paintEvent(QPaintEvent *e) override; private: void init(); object_ptr _content; object_ptr _topBarSurrogate = { nullptr }; std::unique_ptr _connecting; }; } // namespace Info